neovim/lua/lsp-config.lua

74 lines
1.7 KiB
Lua

require("mason").setup()
require("mason-lspconfig").setup {
ensure_installed = {
"pyright",
"gopls",
"lua_ls",
"clangd",
"ts_ls",
"marksman",
"yamlls",
"cmake",
"dockerls",
"jsonls",
"lemminx",
"taplo",
"html",
"cssls",
"bashls",
"awk_ls",
"texlab",
},
}
-- Load all the LSP servers
local lspconfig = require "lspconfig"
lspconfig.pyright.setup {}
-- lspconfig.csharp_ls.setup {}
lspconfig.lua_ls.setup {
settings = {
Lua = {
completion = {
callSnippet = "Replace"
}
}
}
}
lspconfig.clangd.setup {}
lspconfig.marksman.setup {}
lspconfig.yamlls.setup {}
lspconfig.ts_ls.setup {}
-- lspconfig.cmake.setup {}
lspconfig.dockerls.setup {}
-- lspconfig.jdtls.setup {}
lspconfig.jsonls.setup {}
lspconfig.lemminx.setup {}
lspconfig.taplo.setup {}
lspconfig.html.setup {}
lspconfig.cssls.setup {}
lspconfig.bashls.setup {}
lspconfig.texlab.setup {}
lspconfig.awk_ls.setup {}
-- Enable inlay hints
vim.lsp.inlay_hint.enable(true)
-- Swift LSP
local swift_lsp = vim.api.nvim_create_augroup("swift_lsp", { clear = true })
vim.api.nvim_create_autocmd("FileType", {
pattern = { "swift" },
callback = function()
local root_dir = vim.fs.dirname(vim.fs.find({
"Package.swift",
".git",
}, { upward = true })[1])
local client = vim.lsp.start({
name = "sourcekit-lsp",
cmd = { "sourcekit-lsp" },
root_dir = root_dir,
})
vim.lsp.buf_attach_client(0, client)
end,
group = swift_lsp,
})