From d201b8f25835f5aa2ab69b241601049ea4e5feb4 Mon Sep 17 00:00:00 2001 From: Matt Leong Date: Sun, 6 Feb 2022 18:19:50 -0800 Subject: [PATCH] feat(lsp): easier null_ls configuration --- lua/cosmic/lsp/providers/null_ls.lua | 26 ++++++++------------------ lua/cosmic/utils/init.lua | 7 +++++++ 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/lua/cosmic/lsp/providers/null_ls.lua b/lua/cosmic/lsp/providers/null_ls.lua index 07a4024..ad974b8 100644 --- a/lua/cosmic/lsp/providers/null_ls.lua +++ b/lua/cosmic/lsp/providers/null_ls.lua @@ -1,34 +1,22 @@ -local utils = require('cosmic.utils') +local u = require('cosmic.utils') local defaults = require('cosmic.lsp.providers.defaults') local config = require('cosmic.config') local null_ls = require('null-ls') 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({ - sources = { +-- how to disable sources? +if not config_opts.default_cosmic_sources then + config_opts.sources = u.merge_list({ null_ls.builtins.code_actions.eslint_d.with({ - condition = has_eslint_config, prefer_local = 'node_modules/.bin', }), null_ls.builtins.diagnostics.eslint_d.with({ - condition = has_eslint_config, prefer_local = 'node_modules/.bin', }), null_ls.builtins.formatting.eslint_d.with({ - condition = has_eslint_config, prefer_local = 'node_modules/.bin', }), - null_ls.builtins.diagnostics.shellcheck, null_ls.builtins.diagnostics.markdownlint, null_ls.builtins.formatting.prettierd.with({ env = { @@ -37,5 +25,7 @@ require('null-ls').setup(utils.merge({ }), null_ls.builtins.formatting.stylua, null_ls.builtins.code_actions.gitsigns, - }, -}, defaults, config_opts or {})) + }, config_opts.sources) +end + +require('null-ls').setup(u.merge(defaults, config_opts)) diff --git a/lua/cosmic/utils/init.lua b/lua/cosmic/utils/init.lua index ac0378f..92a5a17 100644 --- a/lua/cosmic/utils/init.lua +++ b/lua/cosmic/utils/init.lua @@ -16,6 +16,13 @@ function M.buf_map(bufnr, mode, lhs, rhs, opts) vim.api.nvim_buf_set_keymap(bufnr, mode, lhs, rhs, options) end +function M.merge_list(tbl1, tbl2) + for _, v in ipairs(tbl2) do + table.insert(tbl1, v) + end + return tbl1 +end + function M.merge(...) return vim.tbl_deep_extend('force', ...) end