72 lines
1.6 KiB
Lua
72 lines
1.6 KiB
Lua
local default = {
|
|
capabilities = require('cmp_nvim_lsp').default_capabilities()
|
|
}
|
|
|
|
local servers = {
|
|
java_language_server = { cmd = { "java-language-server" } },
|
|
ocamllsp = {},
|
|
pyright = {},
|
|
basedpyright = {},
|
|
lua_ls = {},
|
|
clangd = {
|
|
capabilities = {
|
|
documentFormattingProvider = false,
|
|
documentRangeFormattingProvider = false,
|
|
textDocument = { formatting = { dynamicRegistration = false } }
|
|
},
|
|
},
|
|
ccls = {
|
|
init_options = {
|
|
highlight = {
|
|
rainbow = 10,
|
|
},
|
|
},
|
|
},
|
|
-- jedi_language_server = {},
|
|
nixd = {},
|
|
nil_ls = {},
|
|
ltex = {
|
|
filetypes = { "latex", "typst", "typ", "bib", "markdown", "plaintex", "tex" },
|
|
settings = {
|
|
ltex = {
|
|
language = "fr",
|
|
enabled = { "latex", "typst", "typ", "bib", "markdown", "plaintex", "tex" },
|
|
},
|
|
},
|
|
},
|
|
elixirls = {
|
|
cmd = { "elixir-ls" },
|
|
},
|
|
rust_analyzer = {},
|
|
glslls = {
|
|
cmd = { "glslls", "--target-env", "opengl", "--stdin" },
|
|
},
|
|
qmlls = {},
|
|
tinymist = {},
|
|
}
|
|
|
|
local enabled = {}
|
|
|
|
for server, config in pairs(servers) do
|
|
local lsp = require("lspconfig")[server]
|
|
|
|
local config_merged = vim.tbl_deep_extend("keep", config, default, lsp.document_config.default_config)
|
|
if config_merged.cmd ~= nil then
|
|
if vim.fn.executable(config_merged.cmd[1]) == 1 then
|
|
enabled[server] = config_merged
|
|
end
|
|
end
|
|
end
|
|
|
|
for server, config in pairs(enabled) do
|
|
vim.lsp.enable(server, config)
|
|
end
|
|
|
|
|
|
vim.diagnostic.config({
|
|
virtual_text = false,
|
|
-- signs = true,
|
|
underline = true,
|
|
-- update_in_insert = false,
|
|
-- severity_sort = false,
|
|
})
|