diff --git a/nvim/m-housh/lua/user/plugin/lsp.lua b/nvim/m-housh/lua/user/plugin/lsp.lua index 0e57bec..156eac7 100755 --- a/nvim/m-housh/lua/user/plugin/lsp.lua +++ b/nvim/m-housh/lua/user/plugin/lsp.lua @@ -49,18 +49,27 @@ return { vim.api.nvim_create_autocmd('LspAttach', { group = vim.api.nvim_create_augroup('my-lsp-attach', { clear = true }), callback = function(event) + -- Helper function to create a keymap. local map = function(keys, func, desc) vim.keymap.set('n', keys, func, { buffer = true, desc = 'LSP: ' .. desc }) end + -- Mappings. -- See `:help vim.lsp.*` for documentation on any of the below functions + + map('[d', 'lua vim.lsp.diagnostic.goto_prev()', 'Goto previous') + map(']d', 'lua vim.lsp.diagnostic.goto_next()', 'Goto next') map('ca', vim.lsp.buf.code_action, '[C]ode [A]ction') + map('D', vim.lsp.buf.type_definition, 'Type [D]efinition') + map('f', vim.lsp.buf.format, '[F]ormat') + map('rn', vim.lsp.buf.rename, '[R]e[n]ame') map('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration') map('gd', telescope_builtin.lsp_definitions, '[G]oto [D]efinition') map('gi', telescope_builtin.lsp_implementations, '[G]oto, [I]mplementation') map('gr', telescope_builtin.lsp_references, '[G]oto [R]eferences') map('gt', telescope_builtin.lsp_type_definitions, '[T]ype Definitions') map('K', vim.lsp.buf.hover, 'Hover Documentation') + -- -- buf_set_keymap('n', '', 'lua vim.lsp.buf.signature_help()', opts) -- buf_set_keymap("n", "wa", -- "lua vim.lsp.buf.add_workspace_folder()", opts) @@ -69,55 +78,12 @@ return { -- buf_set_keymap("n", "wl", -- "lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))", -- opts) --- buf_set_keymap("n", "D", --- "lua vim.lsp.buf.type_definition()", opts) --- buf_set_keymap("n", "rn", "lua vim.lsp.buf.rename()", opts) --- opts) -- buf_set_keymap("n", "e", "lua vim.lsp.diagnostic.show_line_diagnostics()", opts) --- buf_set_keymap("n", "[d", "lua vim.lsp.diagnostic.goto_prev()", opts) --- buf_set_keymap("n", "]d", "lua vim.lsp.diagnostic.goto_next()", opts) -- buf_set_keymap("n", "q", "lua vim.lsp.diagnostic.set_loclist()", opts) --- buf_set_keymap("n", "f", "lua vim.lsp.buf.formatting()", opts) vim.api.nvim_buf_set_option(event.buf, 'omnifunc', 'v:lua.vim.lsp.omnifunc') end, }) - -- Use an on_attach function to only map the following keys - -- after the language server attaches to the current buffer --- local on_attach = function(_, bufnr) --- local function buf_set_keymap(...) --- vim.api.nvim_buf_set_keymap(bufnr, ...) --- end --- -- Mappings. --- local opts = {noremap = true, silent = true} --- -- See `:help vim.lsp.*` for documentation on any of the below functions --- buf_set_keymap("n", "gD", "lua vim.lsp.buf.declaration()", opts) --- buf_set_keymap("n", "gd", "lua vim.lsp.buf.definition()", opts) --- buf_set_keymap("n", "K", "lua vim.lsp.buf.hover()", opts) --- buf_set_keymap("n", "gi", "lua vim.lsp.buf.implementation()", opts) --- buf_set_keymap("n", "gT", vim.lsp.buf.type_definition, opts) --- -- buf_set_keymap('n', '', 'lua vim.lsp.buf.signature_help()', opts) --- buf_set_keymap("n", "wa", --- "lua vim.lsp.buf.add_workspace_folder()", opts) --- buf_set_keymap("n", "wr", --- "lua vim.lsp.buf.remove_workspace_folder()", opts) --- buf_set_keymap("n", "wl", --- "lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))", --- opts) --- buf_set_keymap("n", "D", --- "lua vim.lsp.buf.type_definition()", opts) --- buf_set_keymap("n", "rn", "lua vim.lsp.buf.rename()", opts) --- buf_set_keymap("n", "ca", "lua vim.lsp.buf.code_action()", --- opts) --- buf_set_keymap("n", "gr", "lua vim.lsp.buf.references()", opts) --- buf_set_keymap("n", "e", "lua vim.lsp.diagnostic.show_line_diagnostics()", opts) --- buf_set_keymap("n", "[d", "lua vim.lsp.diagnostic.goto_prev()", opts) --- buf_set_keymap("n", "]d", "lua vim.lsp.diagnostic.goto_next()", opts) --- buf_set_keymap("n", "q", "lua vim.lsp.diagnostic.set_loclist()", opts) --- buf_set_keymap("n", "f", "lua vim.lsp.buf.formatting()", opts) --- vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') --- end - -- Use a loop to conveniently call 'setup' on multiple servers and -- map buffer local keybindings when the language server attaches local capabilities = vim.lsp.protocol.make_client_capabilities() @@ -141,7 +107,6 @@ return { for _, lsp in ipairs(servers) do nvim_lsp[lsp].setup { - --on_attach = on_attach, capabilities = capabilities, settings = { gopls = {