local lsp_capabilities = require("cmp_nvim_lsp").default_capabilities() local default_setup = function(server) require("lspconfig")[server].setup({ capabilities = lsp_capabilities, }) end -- enable mason and configure icons require("mason").setup({ ui = { icons = { package_installed = "✓", package_pending = "➜", package_uninstalled = "✗", }, }, }) require("mason-lspconfig").setup({ ensure_installed = {}, handlers = { default_setup, -- lua_ls = function() -- require("lspconfig").eslint.setup({ -- capabilities = lsp_capabilities, -- args = { -- "--no-warn-ignored", -- <-- this is the key argument -- "--format", -- "json", -- "--stdin", -- "--stdin-filename", -- function() -- return vim.api.nvim_buf_get_name(0) -- end, -- }, -- }) -- end, }, }) local cmp = require("cmp") cmp.setup({ sources = { { name = "nvim_lsp" }, }, mapping = cmp.mapping.preset.insert({ -- Enter key confirms completion item [""] = cmp.mapping.confirm({ select = false }), -- Ctrl + space triggers completion menu [""] = cmp.mapping.complete(), }), snippet = { expand = function(args) require("luasnip").lsp_expand(args.body) end, }, }) -- local lsps_for_install = { --[[ "eslint", ]] -- "html", -- "cssls", -- "bashls", -- "grammarly", -- } -- --make this table 2d to add configs -- local mason_lspconfig = require("mason-lspconfig") -- mason_lspconfig.setup({ -- ensure_installed = lsps_for_install, -- }) -- -- local lspconfig = require("lspconfig") -- local lsp_capabilities = require("cmp_nvim_lsp").default_capabilities() -- for _, lsp in pairs(lsps_for_install) do -- lspconfig[lsp].setup({ -- capabilities = lsp_capabilities, -- }) -- end -- -- lspconfig.lua_ls.setup({ -- capabilities = lsp_capabilities, -- settings = { -- Lua = { -- diagnostics = { -- globals = { "vim" }, -- }, -- }, -- }, -- })