diff options
Diffstat (limited to 'modules/tools/editor/neovim/plugins/config/lsp-config.lua')
| -rw-r--r-- | modules/tools/editor/neovim/plugins/config/lsp-config.lua | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/modules/tools/editor/neovim/plugins/config/lsp-config.lua b/modules/tools/editor/neovim/plugins/config/lsp-config.lua deleted file mode 100644 index cca4116..0000000 --- a/modules/tools/editor/neovim/plugins/config/lsp-config.lua +++ /dev/null @@ -1,75 +0,0 @@ -local lspconfig = require("lspconfig"); - -local filetype_to_lsp = { - lua = { server = "lua_ls", executable = "lua-language-server" }, - cpp = { server = "clangd", executable = "clangd" }, - c = { server = "clangd", executable = "clangd" }, - python = { server = "pyright", executable = "pyright-langserver" }, - javascript = { server = "tsserver", executable = "typescript-language-server" }, - typescript = { server = "tsserver", executable = "typescript-language-server" }, - go = { server = "gopls", executable = "gopls" }, - html = { server = "html", executable = "vscode-html-language-server" }, - css = { server = "cssls", executable = "vscode-css-language-server" }, - json = { server = "jsonls", executable = "vscode-json-language-server" }, - bash = { server = "bashls", executable = "bash-language-server" }, - graphql = { server = "graphql", executable = "graphql-lsp" }, - dockerfile = { server = "dockerls", executable = "docker-langserver" }, - php = { server = "phpactor", executable = "phpactor" }, - rust = { server = "rust_analyzer", executable = "rust-analyzer" }, - haskell = { server = "hls", executable = "haskell-language-server-wrapper" }, - deno = { server = "denols", executable = "deno" }, - vim = { server = "vimls", executable = "vim-language-server" }, - elixir = { server = "elixirls", executable = "elixir-ls" }, - clojure = { server = "clojure_lsp", executable = "clojure-lsp" }, - scala = { server = "scala_metals", executable = "metals" }, - ruby = { server = "sorbet", executable = "srb" }, - zig = { server = "zls", executable = "zls" }, - kotlin = { server = "kotlin_language_server", executable = "kotlin-language-server" }, - java = { server = "jdtls", executable = "jdtls" }, - dart = { server = "dartls", executable = "dart" }, - yaml = { server = "yamlls", executable = "yaml-language-server" }, - perl = { server = "perlls", executable = "perl" }, - r = { server = "r_language_server", executable = "R" }, - tex = { server = "texlab", executable = "texlab" }, - swift = { server = "sourcekit", executable = "sourcekit-lsp" }, - svelte = { server = "svelteserver", executable = "svelteserver" }, - terraform = { server = "terraformls", executable = "terraform-ls" }, - vue = { server = "vls", executable = "vls" }, - markdown = { server = "marksman", executable = "marksman" }, - yaml = { server = "yamlls", executable = "yaml-language-server" }, -}; - --- Keeping track of all the lsps that have been already configured -local lsp_setup_done = {}; - --- Function to setup LSP based on filetype -local function setup_lsp(filetype) - local lsp = filetype_to_lsp[filetype]; - if lsp ~= nil and not lsp_setup_done[lsp.server] then - lsp_setup_done[lsp.server] = true; - if vim.fn.executable(lsp.executable) == 1 then - lspconfig[lsp.server].setup({}); - end - end -end - -vim.api.nvim_create_autocmd("FileType", { - pattern = "*", -- Match all file types - callback = function() - setup_lsp(vim.bo.filetype); -- Call the setup_lsp function only if the filetype is in the mapping - end, -}); - --- Show diagnostics in a floating window when hovering over the line -vim.api.nvim_create_autocmd("CursorHold", { - callback = function() - vim.diagnostic.open_float(nil, { focusable = false }) - end, -}) - -local lsp_keymap_opts = { noremap = true, silent = true }; - -vim.keymap.set("n", "<leader>d", vim.lsp.buf.definition, lsp_keymap_opts); -vim.keymap.set("n", "<leader>i", vim.lsp.buf.implementation, lsp_keymap_opts); -vim.keymap.set("n", "<leader>r", vim.lsp.buf.references, lsp_keymap_opts); -vim.keymap.set("n", "<leader>k", vim.lsp.buf.hover, lsp_keymap_opts); |
