98 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| return {
 | |
|   {
 | |
|     "nvim-treesitter/nvim-treesitter",
 | |
|     opts = function(_, opts)
 | |
|       vim.list_extend(opts.ensure_installed, {
 | |
|         "html",
 | |
|         "css",
 | |
|         "scss",
 | |
|       })
 | |
|     end,
 | |
|   },
 | |
|   {
 | |
|     "neovim/nvim-lspconfig",
 | |
|     opts = {
 | |
|       servers = {
 | |
|         emmet_language_server = {},
 | |
|         html = {},
 | |
|         cssmodules_ls = {},
 | |
|         css_variables = {},
 | |
|         cssls = {
 | |
|           lint = {
 | |
|             compatibleVendorPrefixes = "ignore",
 | |
|             vendorPrefix = "ignore",
 | |
|             unknownVendorSpecificProperties = "ignore",
 | |
| 
 | |
|             -- unknownProperties = "ignore", -- duplicate with stylelint
 | |
| 
 | |
|             duplicateProperties = "warning",
 | |
|             emptyRules = "warning",
 | |
|             importStatement = "warning",
 | |
|             zeroUnits = "warning",
 | |
|             fontFaceProperties = "warning",
 | |
|             hexColorLength = "warning",
 | |
|             argumentsInColorFunction = "warning",
 | |
|             unknownAtRules = "warning",
 | |
|             ieHack = "warning",
 | |
|             propertyIgnoredDueToDisplay = "warning",
 | |
|           },
 | |
|         },
 | |
|       },
 | |
|     },
 | |
|   },
 | |
|   {
 | |
|     "williamboman/mason.nvim",
 | |
|     opts = function(_, opts)
 | |
|       opts.ensure_installed = opts.ensure_installed or {}
 | |
|       vim.list_extend(opts.ensure_installed, {
 | |
|         "emmet-language-server",
 | |
|         "html-lsp",
 | |
|         "cssmodules-language-server",
 | |
|         "css-variables-language-server",
 | |
|         "css-lsp",
 | |
|         "htmlhint",
 | |
|         "stylelint",
 | |
|       })
 | |
|     end,
 | |
|   },
 | |
|   {
 | |
|     "mfussenegger/nvim-lint",
 | |
|     opts = function(_, opts)
 | |
|       local stylelint = "stylelint"
 | |
| 
 | |
|       local function add_linters(tbl)
 | |
|         for ft, linters in pairs(tbl) do
 | |
|           if opts.linters_by_ft[ft] == nil then
 | |
|             opts.linters_by_ft[ft] = linters
 | |
|           else
 | |
|             vim.list_extend(opts.linters_by_ft[ft], linters)
 | |
|           end
 | |
|         end
 | |
|       end
 | |
| 
 | |
|       add_linters({
 | |
|         ["html"] = { "htmlhint" },
 | |
|         ["css"] = { stylelint },
 | |
|         ["scss"] = { stylelint },
 | |
|         ["less"] = { stylelint },
 | |
|         ["sugarss"] = { stylelint },
 | |
|         ["vue"] = { stylelint },
 | |
|         ["wxss"] = { stylelint },
 | |
|         ["javascript"] = { stylelint },
 | |
|         ["javascriptreact"] = { stylelint },
 | |
|         ["typescript"] = { stylelint },
 | |
|         ["typescriptreact"] = { stylelint },
 | |
|       })
 | |
|       return opts
 | |
|     end,
 | |
|   },
 | |
|   {
 | |
|     "luckasRanarison/nvim-devdocs",
 | |
|     optional = true,
 | |
|     ensure_installed = {
 | |
|       "html",
 | |
|       "css",
 | |
|       "sass",
 | |
|     },
 | |
|   },
 | |
| }
 | 
