Files
vim/lua/custom/plugins/nullls.lua
2023-04-26 22:29:58 +02:00

64 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,
-- 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,
}