diff --git a/custom-snippets/snippets/xml.json b/custom-snippets/snippets/xml.json index 3da2e55a..2e3ccc71 100644 --- a/custom-snippets/snippets/xml.json +++ b/custom-snippets/snippets/xml.json @@ -68,5 +68,68 @@ "" ], "description": "Maven POM Plugin Execution" + }, + "Google Format Plugin": { + "prefix": "mvnfmt", + "body": [ + "", + " com.coveo", + " fmt-maven-plugin", + " ${fmt-maven-plugin.version}", + " ", + " ", + " google-java-format", + " ", + " check", + " ", + " ", + " ", + " ", + "" + ], + "description": "Google Format Plugin" + }, + "Shade Plugin": { + "prefix": "mvnshade", + "body": [ + "", + " org.apache.maven.plugins", + " maven-shade-plugin", + " ${maven-shade-plugin.version}", + " ", + " true", + " ", + " ", + " *:*", + " ", + " META-INF/*.SF", + " META-INF/*.DSA", + " META-INF/*.RSA", + " ", + " ", + " ", + " ", + " ", + " ", + " shade", + " package", + " ", + " shade", + " ", + " ", + " ", + " ", + " ", + " ${mainClass}", + " ", + " ", + " ", + " ", + " ", + "" + ], + "description": "Maven Shade Plugin" } } diff --git a/ftplugin/tf.lua b/ftplugin/tf.lua new file mode 100644 index 00000000..ed7f6bb9 --- /dev/null +++ b/ftplugin/tf.lua @@ -0,0 +1,3 @@ +vim.opt.tabstop = 2 +vim.opt.softtabstop = 2 +vim.opt.shiftwidth = 2 diff --git a/init.lua b/init.lua index bde7247f..810d73aa 100644 --- a/init.lua +++ b/init.lua @@ -93,6 +93,9 @@ vim.g.maplocalleader = ' ' -- Set to true if you have a Nerd Font installed vim.g.have_nerd_font = true +-- disable some key in sql extensions +vim.g.ftplugin_sql_omni_key = '' + -- [[ Setting options ]] -- See `:help vim.opt` -- NOTE: You can change these options as you wish! @@ -141,6 +144,7 @@ vim.opt.splitbelow = false -- and `:help 'listchars'` vim.opt.list = true vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '␣' } +vim.keymap.set('n', '', ':set invlist', { desc = 'Toggle list chars' }) -- Preview substitutions live, as you type! vim.opt.inccommand = 'split' @@ -157,6 +161,8 @@ vim.opt.shiftwidth = 4 vim.opt.smarttab = true vim.opt.expandtab = true +vim.opt.foldenable = false + -- [[ Basic Keymaps ]] -- See `:help vim.keymap.set()` @@ -367,6 +373,7 @@ require('lazy').setup({ -- Enable telescope extensions, if they are installed pcall(require('telescope').load_extension, 'fzf') pcall(require('telescope').load_extension, 'ui-select') + pcall(require('telescope').load_extension, 'rest') -- See `:help telescope.builtin` local builtin = require 'telescope.builtin' @@ -523,6 +530,8 @@ require('lazy').setup({ end, }) + vim.lsp.set_log_level 'off' + -- LSP servers and clients are able to communicate to each other what features they support. -- By default, Neovim doesn't support everything that is in the LSP Specification. -- When you add nvim-cmp, luasnip, etc. Neovim now has *more* capabilities. @@ -541,7 +550,18 @@ require('lazy').setup({ -- For example, to see the options for `lua_ls`, you could go to: https://luals.github.io/wiki/settings/ local servers = { clangd = {}, - gopls = {}, + gopls = { + settings = { + gopls = { + buildFlags = { '-tags=wireinject' }, + standaloneTags = { + 'ignore', + 'wireinject', + '!wireinject', + }, + }, + }, + }, rust_analyzer = {}, tsserver = {}, @@ -620,8 +640,10 @@ require('lazy').setup({ -- You can use a sub-list to tell conform to run *until* a formatter -- is found. java = { 'google-java-format' }, - javascript = { 'prettier' }, - typescript = { 'prettier' }, + javascript = { 'eslint_d', 'prettier' }, + javascriptreact = { 'eslint_d', 'prettier' }, + typescript = { 'eslint_d', 'prettier' }, + typescriptreact = { 'eslint_d', 'prettier' }, go = { 'gofmt', 'goimports', 'golines', 'gofumpt' }, }, }, @@ -722,6 +744,13 @@ require('lazy').setup({ { name = 'path' }, }, } + + cmp.setup.filetype({ 'sql', 'sqlite', 'mysql' }, { + sources = { + { name = 'vim-dadbod-completion' }, + { name = 'buffer' }, + }, + }) end, }, @@ -730,15 +759,23 @@ require('lazy').setup({ -- change the command in the config to whatever the name of that colorscheme is -- -- If you want to see what colorschemes are already installed, you can use `:Telescope colorscheme` - 'catppuccin/nvim', - name = 'catppuccin', - lazy = false, -- make sure we load this during startup if it is your main colorscheme - priority = 1000, -- make sure to load this before all the other start plugins + -- 'catppuccin/nvim', + -- name = 'catppuccin', + -- lazy = false, -- make sure we load this during startup if it is your main colorscheme + -- priority = 1000, -- make sure to load this before all the other start plugins + -- config = function() + -- -- Load the colorscheme here + -- vim.cmd.colorscheme 'catppuccin-mocha' + -- -- You can configure highlights by doing something like + -- vim.cmd.hi 'Comment gui=none' + -- end, + -- }, + -- + -- { + 'ellisonleao/gruvbox.nvim', + priority = 1000, config = function() - -- Load the colorscheme here - vim.cmd.colorscheme 'catppuccin-mocha' - -- You can configure highlights by doing something like - vim.cmd.hi 'Comment gui=none' + vim.cmd.colorscheme 'gruvbox' end, }, @@ -842,26 +879,8 @@ require('lazy').setup({ }, { 'lewis6991/gitsigns.nvim' }, - { - 'nvim-tree/nvim-tree.lua', - config = function() - vim.g.loaded_netrw = 1 - vim.g.loaded_netrwPlugin = 1 - - require('nvim-tree').setup { - view = { - adaptive_size = true, - }, - filters = { - dotfiles = true, - }, - } - - vim.keymap.set('n', '', ':NvimTreeFindFileToggle') - end, - }, { 'simrat39/symbols-outline.nvim' }, - { 'github/copilot.vim' }, + -- { 'github/copilot.vim' }, { 'alexghergh/nvim-tmux-navigation', config = function() @@ -879,7 +898,79 @@ require('lazy').setup({ end, }, { 'mfussenegger/nvim-jdtls' }, + { + 'nvim-neo-tree/neo-tree.nvim', + version = '*', + dependencies = { + 'nvim-lua/plenary.nvim', + 'nvim-tree/nvim-web-devicons', -- not strictly required, but recommended + 'MunifTanjim/nui.nvim', + }, + config = function() + require('neo-tree').setup {} + vim.keymap.set('n', '', ':Neotree toggle') + end, + }, + { + 'junegunn/goyo.vim', + config = function() + vim.g.goyo_width = 120 + + vim.keymap.set('n', 'z', ':Goyo') + end, + }, + { 'tpope/vim-dadbod' }, + { 'kristijanhusak/vim-dadbod-completion' }, + { 'kristijanhusak/vim-dadbod-ui' }, + { + 'stevearc/oil.nvim', + dependencies = { 'nvim-tree/nvim-web-devicons' }, + config = function() + require('oil').setup { + columns = { 'icon' }, + keymaps = { + [''] = false, + [''] = 'actions.select_split', + view_options = { + show_hidden = true, + }, + }, + } + vim.keymap.set('n', '-', ':Oil', { desc = 'Open parent directory' }) + vim.keymap.set('n', '-', require('oil').toggle_float) + end, + }, + { 'tpope/vim-dotenv' }, + { + 'vhyrro/luarocks.nvim', + priority = 1000, + config = true, + opts = { + rocks = { 'lua-curl', 'nvim-nio', 'mimetypes', 'xml2lua' }, + }, + }, + { + 'rest-nvim/rest.nvim', + ft = 'http', + dependencies = { 'luarocks.nvim' }, + config = function() + require('rest-nvim').setup { + env_file = '.env', + env_pattern = '\\.env$', + env_edit_command = 'tabedit', + keybinds = { + { + 'rr', + 'Rest run', + 'Run request under cursor', + }, + }, + } + + vim.keymap.set('n', 'se', require('telescope').extensions.rest.select_env, { desc = '[S]elect [E]nvironment file' }) + end, + }, -- The following two comments only work if you have downloaded the kickstart repo, not just copy pasted the -- init.lua. If you want these files, they are in the repository, so you can just download them and -- put them in the right spots if you want.