From eb96f296f46d5d46d223d02aedc53e3e9e6ae213 Mon Sep 17 00:00:00 2001 From: Dennis Date: Thu, 4 Sep 2025 11:33:36 +0200 Subject: [PATCH] fixes eslint config --- modules/nvim/config/lua/plugins/none-ls.lua | 49 ++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/modules/nvim/config/lua/plugins/none-ls.lua b/modules/nvim/config/lua/plugins/none-ls.lua index 021b3ad..421921c 100644 --- a/modules/nvim/config/lua/plugins/none-ls.lua +++ b/modules/nvim/config/lua/plugins/none-ls.lua @@ -5,11 +5,58 @@ return { }, config = function() local null_ls = require("null-ls") + local utils = require("dnsc.utils") + + local string_starts_with = function(str, start) + return string.sub(str, 1, #start) == start + end + + local create_runtime_condition = function(config_names) + local bufnr_cache = {} + local config_path_cache = {} + + return function(params) + if bufnr_cache[params.bufnr] ~= nil then + return bufnr_cache[params.bufnr] + else + for _, cached_config_path in ipairs(config_path_cache) do + if string_starts_with(params.bufname, cached_config_path) then + bufnr_cache[params.bufnr] = true + return true + end + end + end + + local config_path = utils.root_pattern(config_names)(params.bufname) + + local has_config = config_path ~= nil + if has_config then + table.insert(config_path_cache, config_path) + end + bufnr_cache[params.bufnr] = has_config + + return has_config + end + end + + local eslint_runtime_condition = create_runtime_condition({ + ".eslintrc.cjs", + ".eslintrc.js", + ".eslintrc.json", + ".eslintrc.yaml", + ".eslintrc.yml", + "eslint.config.mjs", + "eslint.config.js", + "eslint.config.ts", + "eslint.config.mts", + }) null_ls.setup({ sources = { require("none-ls.code_actions.eslint_d"), - require("none-ls.diagnostics.eslint_d"), + require("none-ls.diagnostics.eslint_d").with({ + runtime_condition = eslint_runtime_condition, + }), }, }) end,