@@ -101,32 +101,40 @@ vim.lsp.config("*", {
101101
102102-- A mapping from lsp server name to the executable name
103103local enabled_lsp_servers = {
104- pyright = " delance-langserver" ,
105- ruff = " ruff" ,
106- lua_ls = " lua-language-server" ,
107- -- clangd = "clangd",
108- vimls = " vim-language-server" ,
109- bashls = " bash-language-server" ,
110- yamlls = " yaml-language-server" ,
111- gopls = " gopls" ,
104+ bashls = { exe = " bash-language-server" , optional = true },
105+
106+ -- clangd = { exe = "clangd", optional = true },
107+
108+ -- to install codebook, run `brew install codebook-lsp`
109+ -- codebook = { exe = "codebook-lsp", optional = true },
110+
112111 -- the server can be install via homebrew: brew install golangci-lint-langserver
113112 -- golangci-lint also needs to be installed: https://github.com/golangci/golangci-lint
114- golangci_lint_ls = " golangci-lint-langserver" ,
113+ golangci_lint_ls = { exe = " golangci-lint-langserver" , optional = true },
114+ gopls = { exe = " gopls" , optional = false },
115115
116- -- to install codebook, run `brew install codebook-lsp`
117- -- codebook = "codebook-lsp"
116+ lua_ls = { exe = " lua-language-server" , optional = false },
117+
118+ pyright = { exe = " delance-langserver" , optional = false },
119+ ruff = { exe = " ruff" , optional = false },
120+
121+ vimls = { exe = " vim-language-server" , optional = true },
122+ yamlls = { exe = " yaml-language-server" , optional = true },
118123}
119124
120- for server_name , lsp_executable in pairs (enabled_lsp_servers ) do
121- if utils .executable (lsp_executable ) then
125+ for server_name , server_info in pairs (enabled_lsp_servers ) do
126+ if utils .executable (server_info . exe ) then
122127 vim .lsp .enable (server_name )
123128 else
124- local msg = string.format (
125- " Executable '%s' for server '%s' not found! Server will not be enabled" ,
126- lsp_executable ,
127- server_name
128- )
129- vim .notify (msg , vim .log .levels .WARN , { title = " Nvim-config" })
129+ -- only warn about missing non-optional LSP to avoid noise
130+ if not server_info .optional then
131+ local msg = string.format (
132+ " Executable '%s' for LSP server '%s' not found! LSP Server will not be enabled" ,
133+ server_info .exe ,
134+ server_name
135+ )
136+ vim .notify (msg , vim .log .levels .WARN , { title = " Nvim-config" })
137+ end
130138 end
131139end
132140
0 commit comments