From 11af995b7523dbf510c40e17715f0510393f3a30 Mon Sep 17 00:00:00 2001 From: Matt Leong Date: Thu, 9 Dec 2021 15:16:05 -0800 Subject: [PATCH] feat(lsp): check for eslint config and package.json before starting eslint --- lua/cosmic/lsp/providers/null_ls.lua | 22 +++++++++++++++++++--- lua/cosmic/theme/init.lua | 1 - 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/lua/cosmic/lsp/providers/null_ls.lua b/lua/cosmic/lsp/providers/null_ls.lua index 8b666a1..d4282e6 100644 --- a/lua/cosmic/lsp/providers/null_ls.lua +++ b/lua/cosmic/lsp/providers/null_ls.lua @@ -2,14 +2,30 @@ local config = require('cosmic.config') local defaults = require('cosmic.lsp.providers.defaults') local null_ls = require('null-ls') +local has_eslint_config = function(utils) + return utils.root_has_file('.eslintrc') + or utils.root_has_file('.eslintrc.json') + or utils.root_has_file('.eslintrc.js') + or utils.root_has_file('package.json') + or utils.root_has_file('.eslintrc.cjs') + or utils.root_has_file('.eslintrc.yaml') + or utils.root_has_file('.eslintrc.yml') +end + local config_opts = config.lsp.servers.null_ls or {} null_ls.config(vim.tbl_deep_extend('force', { -- you must define at least one source for the plugin to work sources = { - null_ls.builtins.code_actions.eslint_d, + null_ls.builtins.code_actions.eslint_d.with({ + condition = has_eslint_config, + }), + null_ls.builtins.diagnostics.eslint_d.with({ + condition = has_eslint_config, + }), + null_ls.builtins.formatting.eslint_d.with({ + condition = has_eslint_config, + }), null_ls.builtins.code_actions.gitsigns, - null_ls.builtins.diagnostics.eslint_d, - null_ls.builtins.formatting.eslint_d, null_ls.builtins.formatting.prettierd, null_ls.builtins.formatting.stylua, }, diff --git a/lua/cosmic/theme/init.lua b/lua/cosmic/theme/init.lua index 43ab191..61b3ce7 100644 --- a/lua/cosmic/theme/init.lua +++ b/lua/cosmic/theme/init.lua @@ -59,4 +59,3 @@ highlight('NotifyTRACEIcon', nil, colors.trace) vim.cmd('hi FloatBorder guibg=None') vim.cmd('hi! link FloatermBorder FloatBorder') -vim.cmd('hi link Floaterm NormalFloat')