return { { "williamboman/mason.nvim", opts = { ensure_installed = { -- general "commitlint", "prettier", -- data/conf "yamllint", -- php "blade-formatter", "pint", "rustywind", -- shell "shellcheck", "shfmt", }, }, }, { "williamboman/mason-lspconfig.nvim", opts = { automatic_installation = true, }, }, { "neovim/nvim-lspconfig", ---@class PluginLspOpts opts = { --@type lspconfig.options servers = { -- data/conf sqlls = {}, taplo = {}, -- web html = { filetypes = { "html", "liquid" }, }, css_variables = { mason = false }, cssls = {}, denols = {}, volar = { filetypes = { "typescript", "javascript", "javascriptreact", "typescriptreact", "vue", "json", }, }, stylelint_lsp = { settings = { stylelintplus = { autoFixOnFormat = true, validateOnSave = true, validateOnType = false, }, }, }, emmet_language_server = { filetypes = { "css", "eruby", "html", "javascriptreact", "less", "sass", "scss", "pug", "typescriptreact", "vue", "blade", }, -- Read more about this options in the [vscode docs](https://code.visualstudio.com/docs/editor/emmet#_emmet-configuration). -- **Note:** only the options listed in the table are supported. init_options = { ---@type table includeLanguages = {}, --- @type string[] excludeLanguages = {}, --- @type string[] extensionsPath = {}, --- @type table [Emmet Docs](https://docs.emmet.io/customization/preferences/) preferences = {}, --- @type boolean Defaults to `true` showAbbreviationSuggestions = true, --- @type "always" | "never" Defaults to `"always"` showExpandedAbbreviation = "always", --- @type boolean Defaults to `false` showSuggestionsAsSnippets = false, --- @type table [Emmet Docs](https://docs.emmet.io/customization/syntax-profiles/) syntaxProfiles = {}, --- @type table [Emmet Docs](https://docs.emmet.io/customization/snippets/#variables) variables = {}, }, }, -- php intelephense = { filetypes = { "php", "blade" }, settings = { intelephense = { filetypes = { "php", "blade" }, files = { associations = { "*.php", "*.blade.php" }, maxSize = 5000000, }, }, }, }, -- shell bashls = {}, pkgbuild_language_server = { mason = false }, }, }, }, { "olrtg/nvim-emmet", config = function() vim.keymap.set({ "n", "v" }, "xe", require("nvim-emmet").wrap_with_abbreviation) end, ft = { "html", "css", "scss", "vue" }, }, { "0oAstro/dim.lua", event = "LspAttach", config = true, }, }