return { { "williamboman/mason.nvim", config = function() require("mason").setup() end, }, { "williamboman/mason-lspconfig.nvim", config = function() require("mason-lspconfig").setup({ ensure_installed = { "lua_ls", "rust_analyzer", "tsserver", "ts_ls", "tinymist", -- "typst_lsp", "html", "r_language_server", --[[ "vscode-html-language-server" ]] }, }) end, }, { "neovim/nvim-lspconfig", config = function() local capabilities = require("cmp_nvim_lsp").default_capabilities() -- After setting up mason-lspconfig you may set up servers via lspconfig require("lspconfig").lua_ls.setup({ capabilities = capabilities }) -- require("lspconfig").rust_analyzer.setup({capabilities = capabilities}) require("lspconfig").r_language_server.setup({ capabilities = capabilities }) require("lspconfig").html.setup({ capabilities = capabilities }) require("lspconfig").tinymist.setup({ capabilities = capabilities, offset_encoding = "utf-8", root_dir = function(filename, bufnr) return vim.fn.getcwd() end, settings = { tinymist = { settings = { formatterMode = "typstfmt", }, }, }, }) -- require("lspconfig").typst_lsp.setup({ -- capabilities = capabilities, -- offset_encoding = "utf-8", -- -- settings = { -- exportPdf = "never", -- Choose onType, onSave or never. -- experimentalFormatterMode = "on", -- -- serverPath = "" -- Normally, there is no need to uncomment it. -- }, -- }) -- require("lspconfig").tinymist.setup({ -- offset_encoding = "utf-8", -- settings = { -- formatterMode = "typstyle", -- exportPdf = "onSave", -- }, -- }) require("lspconfig").ts_ls.setup({ -- capabilities = capabilities, init_options = { plugins = {}, }, filetypes = { "javascript", "javascript.jsx", "typescript", "typescriptreact", "typescript.tsx", }, }) -- You must make sure volar is setup -- e.g. require'lspconfig'.volar.setup{} -- See volar's section for more information end, }, }