55 lines
1.5 KiB
Lua
55 lines
1.5 KiB
Lua
local on_attach = require("plugins.configs.lspconfig").on_attach
|
|
local capabilities = require("plugins.configs.lspconfig").capabilities
|
|
local lspconfig = require "lspconfig"
|
|
local util = require "lspconfig/util"
|
|
|
|
-- if you just want default config for the servers then put them in a table
|
|
local servers = { "html", "cssls", "ts_ls", "clangd" }
|
|
|
|
for _, lsp in ipairs(servers) do
|
|
lspconfig[lsp].setup {
|
|
on_attach = on_attach,
|
|
capabilities = capabilities,
|
|
}
|
|
end
|
|
|
|
lspconfig.gopls.setup {
|
|
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,
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
lspconfig.ts_ls.setup {
|
|
filetypes = { "javascript", "typescript", "typescriptreact", "typescript.tsx" },
|
|
capabilities = require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities()),
|
|
on_attach = function(client, bufnr)
|
|
local opts = { noremap = true, silent = true }
|
|
vim.api.nvim_buf_set_keymap(bufnr, "n", "<leader>f", "<cmd>lua vim.lsp.buf.format()<CR>", opts)
|
|
end,
|
|
}
|
|
|
|
-- lspconfig.rust_analyzer.setup({
|
|
-- on_attach = on_attach,
|
|
-- capabilities = capabilities,
|
|
-- filetypes = {"rust"},
|
|
-- root_dir = util.root_pattern("Cargo.toml"),
|
|
-- settings = {},
|
|
-- ['rust-analyzer'] = {
|
|
-- cargo = {
|
|
-- allFeatures = true,
|
|
-- }
|
|
-- }
|
|
-- })
|
|
|
|
--
|
|
-- lspconfig.pyright.setup { blabla}
|