mirror of
https://github.com/tomru/vim.git
synced 2026-03-03 14:37:20 +01:00
66 lines
1.9 KiB
Lua
66 lines
1.9 KiB
Lua
return {
|
|
'jay-babu/mason-null-ls.nvim',
|
|
lazy = false,
|
|
-- event = { "BufReadPre", "BufNewFile" },
|
|
dependencies = {
|
|
'williamboman/mason.nvim',
|
|
'jose-elias-alvarez/null-ls.nvim',
|
|
},
|
|
config = function()
|
|
require('mason').setup()
|
|
require('mason-null-ls').setup {
|
|
ensure_installed = { 'stylua', 'jq', 'eslint_d' },
|
|
automatic_setup = false,
|
|
automatic_installation = false,
|
|
}
|
|
local nls = require 'null-ls'
|
|
local diagnostics = nls.builtins.diagnostics
|
|
local formatting = nls.builtins.formatting
|
|
local code_actions = nls.builtins.code_actions
|
|
local h = require 'null-ls.helpers'
|
|
local u = require 'null-ls.utils'
|
|
|
|
local function eslint_d_cwd(params)
|
|
return u.root_pattern(
|
|
-- https://eslint.org/docs/user-guide/configuring/configuration-files#configuration-file-formats
|
|
'.eslintrc',
|
|
'.eslintrc.js',
|
|
'.eslintrc.cjs',
|
|
'.eslintrc.yaml',
|
|
'.eslintrc.yml',
|
|
'.eslintrc.json'
|
|
-- do not respect package.json
|
|
-- "package.json",
|
|
)(params.bufname)
|
|
end
|
|
require('null-ls').setup {
|
|
debug = true,
|
|
sources = {
|
|
-- Anything not supported by mason.
|
|
-- lua
|
|
formatting.stylua,
|
|
--json
|
|
diagnostics.jsonlint,
|
|
-- eslint
|
|
diagnostics.eslint_d.with {
|
|
cwd = h.cache.by_bufnr(eslint_d_cwd),
|
|
-- not sure how to scope this only to bcr's locales
|
|
-- extra_filetypes = { 'json' },
|
|
},
|
|
formatting.eslint_d.with {
|
|
cwd = h.cache.by_bufnr(eslint_d_cwd),
|
|
-- not sure how to scope this only to bcr's locales
|
|
extra_filetypes = { 'json' },
|
|
},
|
|
code_actions.eslint_d.with {
|
|
cwd = h.cache.by_bufnr(eslint_d_cwd),
|
|
-- not sure how to scope this only to bcr's locales
|
|
extra_filetypes = { 'json' },
|
|
},
|
|
-- refactoring
|
|
code_actions.refactoring,
|
|
},
|
|
}
|
|
end,
|
|
}
|