Files
nvim/lua/configs/lspconfig.lua
T
2024-09-08 20:45:18 -05:00

71 lines
1.5 KiB
Lua

-- EXAMPLE
local on_attach = require("nvchad.configs.lspconfig").on_attach
local on_init = require("nvchad.configs.lspconfig").on_init
local capabilities = require("nvchad.configs.lspconfig").capabilities
local lspconfig = require "lspconfig"
local servers = { "html", "cssls", "clangd" }
local util = require "lspconfig/util"
-- lsps with default config
for _, lsp in ipairs(servers) do
lspconfig[lsp].setup {
on_attach = on_attach,
on_init = on_init,
capabilities = capabilities,
}
end
-- typescript
lspconfig.tsserver.setup {
on_attach = on_attach,
on_init = on_init,
capabilities = capabilities,
}
-- python
lspconfig.basedpyright.setup{
on_attach = on_attach,
on_init = on_init,
capabilities = capabilities,
filetypes = { "python" },
settings = {
basedpyright = {
typeCheckingMode = "standard",
}
}
}
lspconfig.gopls.setup {
on_attach = on_attach,
capabilities = capabilities,
cmd = {"gopls"},
filetypes = { "go", "gomod", "gowork", "gotmpl" },
root_dir = util.root_pattern("go.work", "go.mod", ".git"),
settings = {
gopls = {
completeUnimported = true,
usePlaceholders = true,
analyses = {
unusedParameters = true,
}
}
}
}
---- ruff_lsp and pyright compatibility
local on_attach = function(client, bufnr)
if client.name == 'ruff_lsp' then
-- hover in favor of Pyright
client.server_capabilities.hoverProvider = false
end
end
lspconfig.ruff_lsp.setup{
on_attach = on_attach,
on_init = on_init,
capabilities = capabilities,
}