Skip to content

Commit 2d765eb

Browse files
committed
chore: use utils.cosmiconfig for eslint and prettier
1 parent a120877 commit 2d765eb

File tree

8 files changed

+36
-78
lines changed

8 files changed

+36
-78
lines changed

lua/null-ls/builtins/code_actions/eslint.lua

+1-12
Original file line numberDiff line numberDiff line change
@@ -168,18 +168,7 @@ return h.make_builtin({
168168
end,
169169
dynamic_command = cmd_resolver.from_node_modules(),
170170
cwd = h.cache.by_bufnr(function(params)
171-
return u.root_pattern(
172-
-- https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new
173-
"eslint.config.js",
174-
-- https://eslint.org/docs/user-guide/configuring/configuration-files#configuration-file-formats
175-
".eslintrc",
176-
".eslintrc.js",
177-
".eslintrc.cjs",
178-
".eslintrc.yaml",
179-
".eslintrc.yml",
180-
".eslintrc.json",
181-
"package.json"
182-
)(params.bufname)
171+
return u.cosmiconfig("eslint")(params.bufname)
183172
end),
184173
},
185174
factory = h.generator_factory,

lua/null-ls/builtins/diagnostics/eslint.lua

+1-12
Original file line numberDiff line numberDiff line change
@@ -52,18 +52,7 @@ return h.make_builtin({
5252
on_output = handle_eslint_output,
5353
dynamic_command = cmd_resolver.from_node_modules(),
5454
cwd = h.cache.by_bufnr(function(params)
55-
return u.root_pattern(
56-
-- https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new
57-
"eslint.config.js",
58-
-- https://eslint.org/docs/user-guide/configuring/configuration-files#configuration-file-formats
59-
".eslintrc",
60-
".eslintrc.js",
61-
".eslintrc.cjs",
62-
".eslintrc.yaml",
63-
".eslintrc.yml",
64-
".eslintrc.json",
65-
"package.json"
66-
)(params.bufname)
55+
return u.cosmiconfig("eslint")(params.bufname)
6756
end),
6857
},
6958
factory = h.generator_factory,

lua/null-ls/builtins/formatting/eslint.lua

+1-12
Original file line numberDiff line numberDiff line change
@@ -45,18 +45,7 @@ return h.make_builtin({
4545
dynamic_command = cmd_resolver.from_node_modules(),
4646
check_exit_code = { 0, 1 },
4747
cwd = h.cache.by_bufnr(function(params)
48-
return u.root_pattern(
49-
-- https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new
50-
"eslint.config.js",
51-
-- https://eslint.org/docs/user-guide/configuring/configuration-files#configuration-file-formats
52-
".eslintrc",
53-
".eslintrc.js",
54-
".eslintrc.cjs",
55-
".eslintrc.yaml",
56-
".eslintrc.yml",
57-
".eslintrc.json",
58-
"package.json"
59-
)(params.bufname)
48+
return u.cosmiconfig("eslint")(params.bufname)
6049
end),
6150
},
6251
})

lua/null-ls/builtins/formatting/prettier.lua

+1-14
Original file line numberDiff line numberDiff line change
@@ -44,20 +44,7 @@ return h.make_builtin({
4444
to_stdin = true,
4545
dynamic_command = cmd_resolver.from_node_modules(),
4646
cwd = h.cache.by_bufnr(function(params)
47-
return u.root_pattern(
48-
-- https://prettier.io/docs/en/configuration.html
49-
".prettierrc",
50-
".prettierrc.json",
51-
".prettierrc.yml",
52-
".prettierrc.yaml",
53-
".prettierrc.json5",
54-
".prettierrc.js",
55-
".prettierrc.cjs",
56-
".prettierrc.toml",
57-
"prettier.config.js",
58-
"prettier.config.cjs",
59-
"package.json"
60-
)(params.bufname)
47+
return u.cosmiconfig("prettier")(params.bufname)
6148
end),
6249
},
6350
factory = h.formatter_factory,

lua/null-ls/builtins/formatting/prettier_d_slim.lua

+1-14
Original file line numberDiff line numberDiff line change
@@ -46,20 +46,7 @@ return h.make_builtin({
4646
to_stdin = true,
4747
dynamic_command = cmd_resolver.from_node_modules(),
4848
cwd = h.cache.by_bufnr(function(params)
49-
return u.root_pattern(
50-
-- https://prettier.io/docs/en/configuration.html
51-
".prettierrc",
52-
".prettierrc.json",
53-
".prettierrc.yml",
54-
".prettierrc.yaml",
55-
".prettierrc.json5",
56-
".prettierrc.js",
57-
".prettierrc.cjs",
58-
".prettierrc.toml",
59-
"prettier.config.js",
60-
"prettier.config.cjs",
61-
"package.json"
62-
)(params.bufname)
49+
return u.cosmiconfig("prettier")(params.bufname)
6350
end),
6451
},
6552
factory = h.formatter_factory,

lua/null-ls/builtins/formatting/prettierd.lua

+1-14
Original file line numberDiff line numberDiff line change
@@ -48,20 +48,7 @@ return h.make_builtin({
4848
dynamic_command = cmd_resolver.from_node_modules(),
4949
to_stdin = true,
5050
cwd = h.cache.by_bufnr(function(params)
51-
return u.root_pattern(
52-
-- https://prettier.io/docs/en/configuration.html
53-
".prettierrc",
54-
".prettierrc.json",
55-
".prettierrc.yml",
56-
".prettierrc.yaml",
57-
".prettierrc.json5",
58-
".prettierrc.js",
59-
".prettierrc.cjs",
60-
".prettierrc.toml",
61-
"prettier.config.js",
62-
"prettier.config.cjs",
63-
"package.json"
64-
)(params.bufname)
51+
return u.cosmiconfig("prettier")(params.bufname)
6552
end),
6653
},
6754
factory = h.formatter_factory,

lua/null-ls/utils/cosmiconfig.lua

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
local u = require("null-ls.utils")
2+
3+
-- Create the default root_pattern for tools using cosmiconfig.
4+
-- https://github.com/cosmiconfig/cosmiconfig#usage-for-end-users
5+
---@param module_name string The module name.
6+
return function(module_name)
7+
local patterns = {
8+
"package.json",
9+
".{NAME}rc",
10+
".{NAME}rc.json",
11+
".{NAME}rc.yaml",
12+
".{NAME}rc.yml",
13+
".{NAME}rc.js",
14+
".{NAME}rc.ts",
15+
".{NAME}rc.cjs",
16+
"{NAME}.config.js",
17+
"{NAME}.config.ts",
18+
"{NAME}.config.mjs",
19+
"{NAME}.config.cjs",
20+
}
21+
for i, v in ipairs(patterns) do
22+
patterns[i] = string.gsub(v, "{NAME}", module_name)
23+
end
24+
25+
return u.root_pattern(table.unpack(patterns))
26+
end

lua/null-ls/utils/init.lua

+4
Original file line numberDiff line numberDiff line change
@@ -348,4 +348,8 @@ M.make_params = function(...)
348348
return require("null-ls.utils.make_params")(...)
349349
end
350350

351+
M.cosmiconfig = function(...)
352+
return require("null-ls.utils.cosmiconfig")(...)
353+
end
354+
351355
return M

0 commit comments

Comments
 (0)