Files
nvim/lua/configs/lspconfig.lua
T
2025-04-05 10:09:03 -05:00

77 lines
1.6 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.ts_ls.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.setup{
on_attach = on_attach,
on_init = on_init,
capabilities = capabilities,
init_options = {
settings = {
}
},
}