82 lines
1.8 KiB
Lua
82 lines
1.8 KiB
Lua
local config = require "plugins.configs.lspconfig"
|
|
local on_attach = config.on_attach
|
|
local capabilities = config.capabilities
|
|
|
|
local custom_on_attach = function(client, bufnr)
|
|
on_attach(client, bufnr)
|
|
|
|
if client.name == "ts_ls" then
|
|
vim.api.nvim_buf_create_user_command(bufnr, "OrganizeImports", function()
|
|
local params = {
|
|
command = "_typescript.organizeImports",
|
|
arguments = { vim.api.nvim_buf_get_name(0) },
|
|
}
|
|
client:request("workspace/executeCommand", params)
|
|
end, { desc = "Organize Imports" })
|
|
end
|
|
end
|
|
|
|
vim.lsp.config("ts_ls", {
|
|
on_attach = custom_on_attach,
|
|
capabilities = capabilities,
|
|
init_options = {
|
|
preferences = {
|
|
disablesuggestions = true,
|
|
},
|
|
},
|
|
})
|
|
vim.lsp.enable "ts_ls"
|
|
|
|
vim.lsp.config("terraformls", {
|
|
on_attach = on_attach,
|
|
capabilities = capabilities,
|
|
})
|
|
vim.lsp.enable "terraformls"
|
|
|
|
vim.lsp.config("tflint", {
|
|
on_attach = on_attach,
|
|
capabilities = capabilities,
|
|
})
|
|
vim.lsp.enable "tflint"
|
|
|
|
vim.lsp.config("gopls", {
|
|
on_attach = on_attach,
|
|
capabilities = capabilities,
|
|
cmd = { "gopls" },
|
|
filetypes = { "go", "gomod", "gowork", "gotempl" },
|
|
root_markers = { "go.mod", "go.work" },
|
|
settings = {
|
|
gopls = {
|
|
completeUnimported = true,
|
|
usePlaceholders = true,
|
|
analyses = {
|
|
unusedparams = true,
|
|
},
|
|
},
|
|
},
|
|
})
|
|
vim.lsp.enable "gopls"
|
|
|
|
vim.lsp.config("pyright", {
|
|
on_attach = on_attach,
|
|
capabilities = capabilities,
|
|
filetypes = { "python" },
|
|
})
|
|
vim.lsp.enable "pyright"
|
|
|
|
vim.lsp.config("nil_ls", {
|
|
on_attach = on_attach,
|
|
capabilities = capabilities,
|
|
cmd = { "nil" },
|
|
filetypes = { "nix" },
|
|
settings = {
|
|
["nil"] = {
|
|
testSetting = 42,
|
|
formatting = {
|
|
command = { "nixfmt" },
|
|
},
|
|
},
|
|
},
|
|
})
|
|
vim.lsp.enable "nil_ls"
|