return { { 'mason-org/mason.nvim', -- 'williamboman/mason.nvim', dependencies = { 'neovim/nvim-lspconfig', 'hrsh7th/cmp-nvim-lsp', 'WhoIsSethDaniel/mason-tool-installer.nvim', }, cmd = 'Mason', event = { 'BufReadPost', 'BufWritePost', 'BufNewFile' }, build = ':MasonUpdate', config = function() local mason = require('mason') local mason_tool_installer = require('mason-tool-installer') mason.setup({ ui = { -- style = 'minimal', border = 'rounded', width = 0.7, height = 0.8, icons = { package_installed = '✓', package_pending = '➜', package_uninstalled = '✗', }, }, }) mason_tool_installer.setup({ automatic_installation = true, ensure_installed = { 'ansible-lint', 'black', 'eslint_d', 'gitlint', 'htmlhint', 'isort', 'jsonlint', 'markdownlint', 'prettier', 'pylint', 'shellcheck', 'shellharden', 'stylua', 'trivy', 'yamllint', }, }) end, }, { 'mason-org/mason-lspconfig.nvim', dependencies = { { 'mason-org/mason.nvim', opts = {} }, 'neovim/nvim-lspconfig', }, lazy = true, opts = {}, config = function() local mason_lspconfig = require('mason-lspconfig') local lspconfig = require('lspconfig') local capabilities = require('cmp_nvim_lsp').default_capabilities() mason_lspconfig.setup({ automatic_installation = true, automatic_enable = true, ensure_installed = { 'ansiblels', 'bashls', 'css_variables', 'cssls', 'cssmodules_ls', 'docker_compose_language_service', 'dockerls', 'emmet_ls', 'eslint', 'html', 'jsonls', 'lua_ls', 'markdown_oxide', 'marksman', 'pylsp', 'vimls', 'yamlls', }, }) --[[ mason_lspconfig.setup_handlers({ -- default handler for installed servers function(server_name) lspconfig[server_name].setup({ capabilities = capabilities, }) end, ['emmet_ls'] = function() -- configure emmet language server lspconfig['emmet_ls'].setup({ capabilities = capabilities, filetypes = { 'html', 'typescriptreact', 'javascriptreact', 'css', 'sass', 'scss', 'less', 'svelte' }, }) end, ['bashls'] = function() lspconfig['bashls'].setup({ capabilities = capabilities, filetypes = { 'sh', 'bash', 'zsh' }, }) end, ['lua_ls'] = function() -- configure lua server (with special settings) lspconfig['lua_ls'].setup({ capabilities = capabilities, settings = { Lua = { -- make the language server recognize "vim" global diagnostics = { globals = { 'vim' }, }, completion = { callSnippet = 'Replace', }, }, }, }) end, }) ]] end, }, }