mirror of
https://github.com/NotAShelf/nvf.git
synced 2025-04-03 11:31:52 +00:00
language/astro: migrate to conform/nvim-lint
This commit is contained in:
parent
2bc0492af3
commit
a0c94b31d6
1 changed files with 38 additions and 42 deletions
|
@ -10,8 +10,8 @@
|
||||||
inherit (lib.lists) isList;
|
inherit (lib.lists) isList;
|
||||||
inherit (lib.meta) getExe;
|
inherit (lib.meta) getExe;
|
||||||
inherit (lib.types) enum either listOf package str;
|
inherit (lib.types) enum either listOf package str;
|
||||||
|
inherit (lib.generators) mkLuaInline;
|
||||||
inherit (lib.nvim.lua) expToLua;
|
inherit (lib.nvim.lua) expToLua;
|
||||||
inherit (lib.nvim.languages) diagnosticsToLua;
|
|
||||||
inherit (lib.nvim.types) mkGrammarOption diagnostics;
|
inherit (lib.nvim.types) mkGrammarOption diagnostics;
|
||||||
|
|
||||||
cfg = config.vim.languages.astro;
|
cfg = config.vim.languages.astro;
|
||||||
|
@ -39,26 +39,10 @@
|
||||||
formats = {
|
formats = {
|
||||||
prettier = {
|
prettier = {
|
||||||
package = pkgs.nodePackages.prettier;
|
package = pkgs.nodePackages.prettier;
|
||||||
nullConfig = ''
|
|
||||||
table.insert(
|
|
||||||
ls_sources,
|
|
||||||
null_ls.builtins.formatting.prettier.with({
|
|
||||||
command = "${cfg.format.package}/bin/prettier",
|
|
||||||
})
|
|
||||||
)
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
biome = {
|
biome = {
|
||||||
package = pkgs.biome;
|
package = pkgs.biome;
|
||||||
nullConfig = ''
|
|
||||||
table.insert(
|
|
||||||
ls_sources,
|
|
||||||
null_ls.builtins.formatting.biome.with({
|
|
||||||
command = "${cfg.format.package}/bin/biome",
|
|
||||||
})
|
|
||||||
)
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -67,24 +51,23 @@
|
||||||
diagnosticsProviders = {
|
diagnosticsProviders = {
|
||||||
eslint_d = {
|
eslint_d = {
|
||||||
package = pkgs.eslint_d;
|
package = pkgs.eslint_d;
|
||||||
nullConfig = pkg: ''
|
config = {
|
||||||
table.insert(
|
# HACK: change if nvim-lint gets a dynamic enable thing
|
||||||
ls_sources,
|
parser = mkLuaInline ''
|
||||||
null_ls.builtins.diagnostics.eslint_d.with({
|
function(output, bufnr, cwd)
|
||||||
command = "${getExe pkg}",
|
local markers = { "eslint.config.js", "eslint.config.mjs",
|
||||||
condition = function(utils)
|
".eslintrc", ".eslintrc.json", ".eslintrc.js", ".eslintrc.yml", }
|
||||||
return utils.root_has_file({
|
for _, filename in ipairs(markers) do
|
||||||
"eslint.config.js",
|
local path = vim.fs.join(cwd, filename)
|
||||||
"eslint.config.mjs",
|
if vim.loop.fs_stat(path) then
|
||||||
".eslintrc",
|
return require("lint.linters.eslint_d").parser(output, bufnr, cwd)
|
||||||
".eslintrc.json",
|
end
|
||||||
".eslintrc.js",
|
end
|
||||||
".eslintrc.yml",
|
|
||||||
})
|
return {}
|
||||||
end,
|
end
|
||||||
})
|
'';
|
||||||
)
|
};
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
|
@ -153,16 +136,29 @@ in {
|
||||||
})
|
})
|
||||||
|
|
||||||
(mkIf cfg.format.enable {
|
(mkIf cfg.format.enable {
|
||||||
vim.lsp.null-ls.enable = true;
|
vim.formatter.conform-nvim = {
|
||||||
vim.lsp.null-ls.sources.astro-format = formats.${cfg.format.type}.nullConfig;
|
enable = true;
|
||||||
|
setupOpts.formatters_by_ft.astro = [cfg.format.type];
|
||||||
|
setupOpts.formatters.${cfg.format.type} = {
|
||||||
|
command = getExe cfg.format.package;
|
||||||
|
};
|
||||||
|
};
|
||||||
})
|
})
|
||||||
|
|
||||||
(mkIf cfg.extraDiagnostics.enable {
|
(mkIf cfg.extraDiagnostics.enable {
|
||||||
vim.lsp.null-ls.enable = true;
|
vim.diagnostics.nvim-lint = {
|
||||||
vim.lsp.null-ls.sources = diagnosticsToLua {
|
enable = true;
|
||||||
lang = "astro";
|
linters_by_ft.astro = cfg.extraDiagnostics.types;
|
||||||
config = cfg.extraDiagnostics.types;
|
linters = mkMerge (map (
|
||||||
inherit diagnosticsProviders;
|
name: {
|
||||||
|
${name} =
|
||||||
|
diagnosticsProviders.${name}.config
|
||||||
|
// {
|
||||||
|
cmd = getExe diagnosticsProviders.${name}.package;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
)
|
||||||
|
cfg.extraDiagnostics.types);
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
]);
|
]);
|
||||||
|
|
Loading…
Add table
Reference in a new issue