From ee74c266bbe2f297e621f5e9f2e39668c28630a0 Mon Sep 17 00:00:00 2001 From: cxxsucks Date: Sat, 20 May 2023 10:06:38 +0800 Subject: [PATCH] Template for use system installed language server --- init.lua | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/init.lua b/init.lua index c77ff26c..6ae69121 100644 --- a/init.lua +++ b/init.lua @@ -419,8 +419,8 @@ end local servers = { -- clangd = {}, -- gopls = {}, - -- pyright = {}, - -- rust_analyzer = {}, + -- pyright = {}, + -- rust_analyzer = {}, -- tsserver = {}, lua_ls = { @@ -431,6 +431,22 @@ local servers = { }, } +local system_server_cmds = { + -- clangd = { 'clangd' }, + -- gopls = { '/usr/local/bin/gopls' }, + -- pyright = { 'pyright' }, + -- rust_analyzer = { 'rust-analyzer' }, + -- tsserver = { 'tsserver' }, + -- lua_ls = { 'lua-language-server' }, +} + +local mason_server_install = {} +for server_name, _ in pairs(servers) do + if system_server_cmds[server_name] == nil then + table.insert(mason_server_install, server_name) + end +end + -- Setup neovim lua configuration require('neodev').setup() @@ -442,7 +458,7 @@ capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities) local mason_lspconfig = require 'mason-lspconfig' mason_lspconfig.setup { - ensure_installed = vim.tbl_keys(servers), + ensure_installed = mason_server_install } mason_lspconfig.setup_handlers { @@ -455,6 +471,15 @@ mason_lspconfig.setup_handlers { end, } +for server_name, launch_cmd in pairs(system_server_cmds) do + require('lspconfig')[server_name].setup { + capabilities = capabilities, + on_attach = on_attach, + settings = servers[server_name], + cmd = launch_cmd, + } +end + -- nvim-cmp setup local cmp = require 'cmp' local luasnip = require 'luasnip'