-- New LSP configuration (since neovim 0.11+) return { 'mason-org/mason-lspconfig.nvim', dependencies = { 'mason-org/mason.nvim', 'neovim/nvim-lspconfig', 'WhoIsSethDaniel/mason-tool-installer.nvim', }, config = function() require("mason").setup({ ui = { icons = { package_installed = "✓", package_pending = "➜", package_uninstalled = "✗", } } }) require("mason-tool-installer").setup({ ensure_installed = { "prettier", "ruff", "stylua", "tree-sitter-cli", } }) require("mason-lspconfig").setup({ ensure_installed = { "cssls", "html", "jsonls", "lua_ls", "marksman", "ty", "ruff", "yamlls", }, }) vim.lsp.config.marksman = { filetypes = { "markdown", "quarto" }, root_dir = vim.fs.root(0, { ".git", ".marksman.toml", "._quarto.yml" }) } vim.lsp.config.jsonls = { settings = { json = { schemas = require('schemastore').json.schemas(), validate = { enable = true }, } } } vim.lsp.config('*', { capabilities = require('cmp_nvim_lsp').default_capabilities(), }) end }