From 2fe776a3866b49dc6bde0b5315c777855a195838 Mon Sep 17 00:00:00 2001 From: siduck76 Date: Tue, 11 May 2021 09:12:49 +0530 Subject: [PATCH] nvim-lspconfig : fix some mistakes! --- lua/nvim-lspconfig.lua | 59 ++++++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 28 deletions(-) diff --git a/lua/nvim-lspconfig.lua b/lua/nvim-lspconfig.lua index 13a111e..01655ab 100644 --- a/lua/nvim-lspconfig.lua +++ b/lua/nvim-lspconfig.lua @@ -1,8 +1,7 @@ function on_attach(client) - local function map(...) + local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end - local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end @@ -10,44 +9,48 @@ function on_attach(client) buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc") -- Mappings. - local opts = {noremap = true, silent = true, normal = true} - map("gD", "lua vim.lsp.buf.declaration()", opts) - map("gd", "lua vim.lsp.buf.definition()", opts) - map("K", "lua vim.lsp.buf.hover()", opts) - map("gi", "lua vim.lsp.buf.implementation()", opts) - map("", "lua vim.lsp.buf.signature_help()", opts) - map("wa", "lua vim.lsp.buf.add_workspace_folder()", opts) - map("wr", "lua vim.lsp.buf.remove_workspace_folder()", opts) - map("wl", "lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))", opts) - map("D", "lua vim.lsp.buf.type_definition()", opts) - map("rn", "lua vim.lsp.buf.rename()", opts) - map("gr", "lua vim.lsp.buf.references()", opts) - map("e", "lua vim.lsp.diagnostic.show_line_diagnostics()", opts) - map("[d", "lua vim.lsp.diagnostic.goto_prev()", opts) - map("]d", "lua vim.lsp.diagnostic.goto_next()", opts) - map("q", "lua vim.lsp.diagnostic.set_loclist()", opts) + local opts = {noremap = true, silent = true} + + 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", "", "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", "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) -- Set some keybinds conditional on server capabilities if client.resolved_capabilities.document_formatting then - map("f", "lua vim.lsp.buf.formatting()", opts) + buf_set_keymap("n", "f", "lua vim.lsp.buf.formatting()", opts) elseif client.resolved_capabilities.document_range_formatting then - map("f", "lua vim.lsp.buf.range_formatting()", opts) + buf_set_keymap("n", "f", "lua vim.lsp.buf.range_formatting()", opts) end end -local lspconf = require "lspconfig" -local servers = {"html", "cssls", "tsserver", "pyright", "bashls", "vls", "clangd", "ccls"} +local lspconf = require("lspconfig") -for k, lang in pairs(servers) do +-- these langs require same lspconfig so put em all in a table and loop through! +local servers = {"html", "cssls", "tsserver", "pyright", "bashls", "clangd", "ccls"} + +for _, lang in ipairs(servers) do lspconf[lang].setup { + on_attach = on_attach, root_dir = vim.loop.cwd } end --- vls example -local vls_binary = '/usr/local/bin/vls' -require'lspconfig'.vls.setup { - cmd = {vls_binary}, +-- vls conf example +local vls_binary = "/usr/local/bin/vls" +lspconf.vls.setup { + cmd = {vls_binary} } -- lua lsp settings @@ -56,7 +59,7 @@ USER = "/home/" .. vim.fn.expand("$USER") local sumneko_root_path = USER .. "/.config/lua-language-server" local sumneko_binary = USER .. "/.config/lua-language-server/bin/Linux/lua-language-server" -require "lspconfig".sumneko_lua.setup { +lspconf.sumneko_lua.setup { cmd = {sumneko_binary, "-E", sumneko_root_path .. "/main.lua"}, root_dir = function() return vim.loop.cwd()