feat(lsp): easier null_ls configuration
This commit is contained in:
parent
ff2855583d
commit
d201b8f258
2 changed files with 15 additions and 18 deletions
|
@ -1,34 +1,22 @@
|
||||||
local utils = require('cosmic.utils')
|
local u = require('cosmic.utils')
|
||||||
local defaults = require('cosmic.lsp.providers.defaults')
|
local defaults = require('cosmic.lsp.providers.defaults')
|
||||||
local config = require('cosmic.config')
|
local config = require('cosmic.config')
|
||||||
local null_ls = require('null-ls')
|
local null_ls = require('null-ls')
|
||||||
|
|
||||||
local config_opts = config.lsp.servers.null_ls or {}
|
local config_opts = config.lsp.servers.null_ls or {}
|
||||||
local has_eslint_config = function(u)
|
|
||||||
return u.root_has_file('.eslintrc')
|
|
||||||
or u.root_has_file('.eslintrc.json')
|
|
||||||
or u.root_has_file('.eslintrc.js')
|
|
||||||
or u.root_has_file('package.json')
|
|
||||||
or u.root_has_file('.eslintrc.cjs')
|
|
||||||
or u.root_has_file('.eslintrc.yaml')
|
|
||||||
or u.root_has_file('.eslintrc.yml')
|
|
||||||
end
|
|
||||||
|
|
||||||
require('null-ls').setup(utils.merge({
|
-- how to disable sources?
|
||||||
sources = {
|
if not config_opts.default_cosmic_sources then
|
||||||
|
config_opts.sources = u.merge_list({
|
||||||
null_ls.builtins.code_actions.eslint_d.with({
|
null_ls.builtins.code_actions.eslint_d.with({
|
||||||
condition = has_eslint_config,
|
|
||||||
prefer_local = 'node_modules/.bin',
|
prefer_local = 'node_modules/.bin',
|
||||||
}),
|
}),
|
||||||
null_ls.builtins.diagnostics.eslint_d.with({
|
null_ls.builtins.diagnostics.eslint_d.with({
|
||||||
condition = has_eslint_config,
|
|
||||||
prefer_local = 'node_modules/.bin',
|
prefer_local = 'node_modules/.bin',
|
||||||
}),
|
}),
|
||||||
null_ls.builtins.formatting.eslint_d.with({
|
null_ls.builtins.formatting.eslint_d.with({
|
||||||
condition = has_eslint_config,
|
|
||||||
prefer_local = 'node_modules/.bin',
|
prefer_local = 'node_modules/.bin',
|
||||||
}),
|
}),
|
||||||
null_ls.builtins.diagnostics.shellcheck,
|
|
||||||
null_ls.builtins.diagnostics.markdownlint,
|
null_ls.builtins.diagnostics.markdownlint,
|
||||||
null_ls.builtins.formatting.prettierd.with({
|
null_ls.builtins.formatting.prettierd.with({
|
||||||
env = {
|
env = {
|
||||||
|
@ -37,5 +25,7 @@ require('null-ls').setup(utils.merge({
|
||||||
}),
|
}),
|
||||||
null_ls.builtins.formatting.stylua,
|
null_ls.builtins.formatting.stylua,
|
||||||
null_ls.builtins.code_actions.gitsigns,
|
null_ls.builtins.code_actions.gitsigns,
|
||||||
},
|
}, config_opts.sources)
|
||||||
}, defaults, config_opts or {}))
|
end
|
||||||
|
|
||||||
|
require('null-ls').setup(u.merge(defaults, config_opts))
|
||||||
|
|
|
@ -16,6 +16,13 @@ function M.buf_map(bufnr, mode, lhs, rhs, opts)
|
||||||
vim.api.nvim_buf_set_keymap(bufnr, mode, lhs, rhs, options)
|
vim.api.nvim_buf_set_keymap(bufnr, mode, lhs, rhs, options)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function M.merge_list(tbl1, tbl2)
|
||||||
|
for _, v in ipairs(tbl2) do
|
||||||
|
table.insert(tbl1, v)
|
||||||
|
end
|
||||||
|
return tbl1
|
||||||
|
end
|
||||||
|
|
||||||
function M.merge(...)
|
function M.merge(...)
|
||||||
return vim.tbl_deep_extend('force', ...)
|
return vim.tbl_deep_extend('force', ...)
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Reference in a new issue