diff --git a/vim/.config/nvim/lua/mappings.lua b/vim/.config/nvim/lua/mappings.lua index cbf0f59..e7863a5 100644 --- a/vim/.config/nvim/lua/mappings.lua +++ b/vim/.config/nvim/lua/mappings.lua @@ -50,8 +50,8 @@ map('v', '<', '', '>gv') -- vim-easy-align -map('x', 'ga', ':EasyAlign') -- TODO: this should allow for gaip, but does not -map('v', 'ga', ':EasyAlign') +vim.keymap.set("n", "ga", "(EasyAlign)") +vim.keymap.set("x", "ga", "(EasyAlign)") -- nvim-tree.lua nmap('n', ':NvimTreeToggle') diff --git a/vim/.config/nvim/lua/plugins/cmp.lua b/vim/.config/nvim/lua/plugins/cmp.lua new file mode 100644 index 0000000..ca61c23 --- /dev/null +++ b/vim/.config/nvim/lua/plugins/cmp.lua @@ -0,0 +1,19 @@ +local cmp = require('cmp') +local cmp_action = require('lsp-zero').cmp_action() + +require('luasnip.loaders.from_vscode').lazy_load() + +cmp.setup({ + sources = { + {name = 'path'}, + {name = 'nvim_lsp'}, + {name = 'buffer', keyword_length = 3}, + {name = 'luasnip', keyword_length = 2}, + }, + mapping = { + -- `Enter` key to confirm completion + [''] = cmp.mapping.confirm({select = false}), + [''] = cmp_action.luasnip_supertab(), + [''] = cmp_action.luasnip_shift_supertab(), + } +}) diff --git a/vim/.config/nvim/lua/plugins/init.lua b/vim/.config/nvim/lua/plugins/init.lua index d034df7..9d11024 100644 --- a/vim/.config/nvim/lua/plugins/init.lua +++ b/vim/.config/nvim/lua/plugins/init.lua @@ -70,8 +70,9 @@ packer.startup(function() -- Vimscript use { 'junegunn/vim-easy-align', - opt = true, - cmd = { 'EasyAlign' } + -- opt = false, + -- event = { 'BufRead', 'BufNewFile' }, + -- cmd = { 'EasyAlign' } } use 'christoomey/vim-tmux-navigator' @@ -97,7 +98,7 @@ packer.startup(function() use { 'VonHeikemen/lsp-zero.nvim', - branch = 'v2.x', + branch = 'v3.x', requires = { -- LSP Support {'neovim/nvim-lspconfig'}, -- Required @@ -132,5 +133,6 @@ packer.startup(function() end) require('plugins.lsp') +require('plugins.cmp') require('plugins.comment') require('plugins.gitsigns') diff --git a/vim/.config/nvim/lua/plugins/lsp.lua b/vim/.config/nvim/lua/plugins/lsp.lua index c63bb0b..50e0cf4 100644 --- a/vim/.config/nvim/lua/plugins/lsp.lua +++ b/vim/.config/nvim/lua/plugins/lsp.lua @@ -1,29 +1,35 @@ -local lsp = require('lsp-zero').preset({}) +local lsp_zero = require('lsp-zero') +local lspconfig = require('lspconfig') -lsp.on_attach(function(_, bufnr) - lsp.default_keymaps({buffer = bufnr}) +lsp_zero.on_attach(function(client, bufnr) + -- see :help lsp-zero-keybindings + -- to learn the available actions + lsp_zero.default_keymaps({buffer = bufnr}) end) --- (Optional) Configure lua language server for neovim -require('lspconfig').lua_ls.setup(lsp.nvim_lua_ls()) +require('mason').setup({}) +require('mason-lspconfig').setup({ + ensure_installed = {}, + handlers = { lsp_zero.default_setup }, +}) -lsp.setup() -local cmp = require('cmp') -local cmp_action = require('lsp-zero').cmp_action() - -require('luasnip.loaders.from_vscode').lazy_load() - -cmp.setup({ - sources = { - {name = 'path'}, - {name = 'nvim_lsp'}, - {name = 'buffer', keyword_length = 3}, - {name = 'luasnip', keyword_length = 2}, - }, - mapping = { - -- `Enter` key to confirm completion - [''] = cmp.mapping.confirm({select = false}), - [''] = cmp_action.luasnip_supertab(), - [''] = cmp_action.luasnip_shift_supertab(), +lspconfig.solargraph.setup({ + -- there's a very weird problem with mason-provided solargraph + -- so instead I'm using the one from asdf + cmd = { os.getenv( "HOME" ) .. "/.asdf/shims/solargraph", 'stdio' }, + settings = { + solargraph = { + autoformat = true, + completion = true, + diagnostic = true, + folding = true, + references = true, + rename = true, + symbols = true + } } }) + +lspconfig.lua_ls.setup(lsp_zero.nvim_lua_ls()) + +lsp_zero.setup() diff --git a/vim/.config/nvim/plugin/packer_compiled.lua b/vim/.config/nvim/plugin/packer_compiled.lua index 3874155..7e34555 100644 --- a/vim/.config/nvim/plugin/packer_compiled.lua +++ b/vim/.config/nvim/plugin/packer_compiled.lua @@ -241,11 +241,8 @@ _G.packer_plugins = { url = "https://github.com/nvim-telescope/telescope.nvim" }, ["vim-easy-align"] = { - commands = { "EasyAlign" }, - loaded = false, - needs_bufread = false, - only_cond = false, - path = "/Users/madundead/.local/share/nvim/site/pack/packer/opt/vim-easy-align", + loaded = true, + path = "/Users/madundead/.local/share/nvim/site/pack/packer/start/vim-easy-align", url = "https://github.com/junegunn/vim-easy-align" }, ["vim-fugitive"] = { @@ -356,20 +353,6 @@ pcall(vim.api.nvim_create_user_command, 'TSPlaygroundToggle', function(cmdargs) require('packer.load')({'playground'}, {}, _G.packer_plugins) return vim.fn.getcompletion('TSPlaygroundToggle ', 'cmdline') end}) -pcall(vim.api.nvim_create_user_command, 'EasyAlign', function(cmdargs) - require('packer.load')({'vim-easy-align'}, { cmd = 'EasyAlign', l1 = cmdargs.line1, l2 = cmdargs.line2, bang = cmdargs.bang, args = cmdargs.args, mods = cmdargs.mods }, _G.packer_plugins) - end, - {nargs = '*', range = true, bang = true, complete = function() - require('packer.load')({'vim-easy-align'}, {}, _G.packer_plugins) - return vim.fn.getcompletion('EasyAlign ', 'cmdline') - end}) -pcall(vim.api.nvim_create_user_command, 'StartupTime', function(cmdargs) - require('packer.load')({'vim-startuptime'}, { cmd = 'StartupTime', l1 = cmdargs.line1, l2 = cmdargs.line2, bang = cmdargs.bang, args = cmdargs.args, mods = cmdargs.mods }, _G.packer_plugins) - end, - {nargs = '*', range = true, bang = true, complete = function() - require('packer.load')({'vim-startuptime'}, {}, _G.packer_plugins) - return vim.fn.getcompletion('StartupTime ', 'cmdline') - end}) pcall(vim.api.nvim_create_user_command, 'NvimTreeToggle', function(cmdargs) require('packer.load')({'nvim-tree.lua'}, { cmd = 'NvimTreeToggle', l1 = cmdargs.line1, l2 = cmdargs.line2, bang = cmdargs.bang, args = cmdargs.args, mods = cmdargs.mods }, _G.packer_plugins) end, @@ -384,6 +367,13 @@ pcall(vim.api.nvim_create_user_command, 'NvimTreeFindFile', function(cmdargs) require('packer.load')({'nvim-tree.lua'}, {}, _G.packer_plugins) return vim.fn.getcompletion('NvimTreeFindFile ', 'cmdline') end}) +pcall(vim.api.nvim_create_user_command, 'StartupTime', function(cmdargs) + require('packer.load')({'vim-startuptime'}, { cmd = 'StartupTime', l1 = cmdargs.line1, l2 = cmdargs.line2, bang = cmdargs.bang, args = cmdargs.args, mods = cmdargs.mods }, _G.packer_plugins) + end, + {nargs = '*', range = true, bang = true, complete = function() + require('packer.load')({'vim-startuptime'}, {}, _G.packer_plugins) + return vim.fn.getcompletion('StartupTime ', 'cmdline') + end}) time([[Defining lazy-load commands]], false) vim.cmd [[augroup packer_load_aucmds]]