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, })