From 0fc639f10fb0db39f1ed0f054153928bec116098 Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Thu, 14 Oct 2021 14:41:19 +0200 Subject: [PATCH] Added lsp on_attach function --- .config/nvim/lua/plugins.lua | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/.config/nvim/lua/plugins.lua b/.config/nvim/lua/plugins.lua index 3c7d0b6..48d1f67 100644 --- a/.config/nvim/lua/plugins.lua +++ b/.config/nvim/lua/plugins.lua @@ -109,17 +109,46 @@ g.tagbar_autoclose = 1 nmap("tr", ":TagbarToggle") -- neovim/neovim-lspconfig +local function on_attach(client, bufnr) + local opts = { + silent = true, + noremap = true, + } + local function buf_nmap(mapping, cmd) vim.api.nvim_buf_set_keymap(bufnr, "n", mapping, cmd, opts) end + + -- Jump to definition + buf_nmap("gd", "lua vim.lsp.buf.definition()") + -- Format current buffer on write + vim.api.nvim_command([[autocmd BufWritePre lua vim.lsp.buf.formatting_seq_sync()]]) + -- Show diagnostics for current line + buf_nmap("dd", "lua vim.lsp.diagnostic.show_line_diagnostics()") + -- Jump between diagnostic messages + buf_nmap("dj", "lua vim.lsp.diagnostic.goto_next()") + buf_nmap("dk", "lua vim.lsp.diagnostic.goto_previous()") + -- Rename symbol under cursor + buf_nmap("dr", "lua vim.lsp.buf.rename()") + -- Show hover info + buf_nmap("df", "lua vim.lsp.buf.hover()") +end + -- Comes with clang -require'lspconfig'.clangd.setup{} +require'lspconfig'.clangd.setup{on_attach = on_attach} -- NPM: dockerfile-language-server-nodejs require'lspconfig'.dockerls.setup{} -- Pacman: haskell-language-server -- AUR: haskell-language-server-bin -- GH: https://github.com/haskell/haskell-language-server -require'lspconfig'.hls.setup{} +require'lspconfig'.hls.setup{ + on_attach = on_attach, + settings = { + haskell = { + formattingProvider = "stylish-haskell" + } + } +} -- Pacman: rust-analyzer -- GH: https://github.com/rust-analyzer/rust-analyzer -require'lspconfig'.rust_analyzer.setup{} +require'lspconfig'.rust_analyzer.setup{on_attach = on_attach} -- Installed using R shell: -- `install.packages('languageserver')` -- GH: https://github.com/REditorSupport/languageserver