return { -- lang server management { "neovim/nvim-lspconfig", dependencies = { "williamboman/mason-lspconfig.nvim", { "mrcjkb/rustaceanvim", version = "^6", lazy = false, }, { "hrsh7th/cmp-nvim-lsp", config = function() Capabilities = require("cmp_nvim_lsp").default_capabilities() Capabilities.textDocument.foldingRange = { dynamicRegistration = false, lineFoldingOnly = true, } end, }, }, config = function() require("mason-lspconfig").setup({ automatic_setup = true, ensure_installed = { "bashls", "clangd", "dockerls", "gopls", "html", "jsonls", "lemminx", "ltex", "lua_ls", "marksman", "nimls", "pyright", "r_language_server", "sqlls", "texlab", -- "tsserver", "yamlls", }, }) local default_flags = { debounce_text_changes = 150, allow_incremental_sync = true, progress = true, } local servers = { ltex = { settings = { ltex = { -- language = "de-DE", enabled = { "latex", "markdown" }, dictionary = Dictionaries, }, }, }, lua_ls = { settings = { lua = { diagnostics = { globals = { "vim" } }, telemetry = { enable = false }, }, }, }, pyright = {} } for name, config in pairs(servers) do vim.lsp.config(name, vim.tbl_extend("force", config, { on_attach = on_attach, capabilities = Capabilities, flags = default_flags, })) end end, }, }