@@ -52,24 +52,25 @@ please REMOVE your LSP configuration (rust_analyzer.lua) from the `servers` dire
5252 end
5353
5454 local ok , custom_handler = pcall (require , " user.configs.lsp-servers." .. lsp_name )
55+ local predefined_ok , predefined = pcall (require , " completion.servers." .. lsp_name )
5556 -- Use preset if there is no user definition
5657 if not ok then
57- ok , custom_handler = pcall (require , " completion.servers." .. lsp_name )
58+ ok , custom_handler = predefined_ok , predefined
59+ else
60+ if type (custom_handler ) == " table" and type (predefined ) == " table" then
61+ custom_handler = vim .tbl_deep_extend (" force" , predefined , custom_handler )
62+ end
5863 end
64+
5965 if not ok then
6066 -- Default to use factory config for server(s) that doesn't include a spec
6167 nvim_lsp [lsp_name ].setup (opts )
62- return
6368 elseif type (custom_handler ) == " function" then
6469 --- Case where language server requires its own setup
6570 --- Make sure to call require("lspconfig")[lsp_name].setup() in the function
6671 --- See `clangd.lua` for example.
6772 custom_handler (opts )
6873 elseif type (custom_handler ) == " table" then
69- local predefined_ok , predefined = pcall (require , " completion.servers." .. lsp_name )
70- if predefined_ok then
71- opts = vim .tbl_deep_extend (" force" , opts , predefined )
72- end
7374 nvim_lsp [lsp_name ].setup (vim .tbl_deep_extend (" force" , opts , custom_handler ))
7475 else
7576 vim .notify (
0 commit comments