language/bash: migrate to conform/nvim-lint

This commit is contained in:
Ching Pei Yang 2025-03-27 19:28:00 +01:00
parent a0c94b31d6
commit e996999c0b
No known key found for this signature in database
GPG key ID: B3841364253DC4C8

View file

@ -6,10 +6,10 @@
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkOption mkEnableOption literalExpression; inherit (lib.options) mkOption mkEnableOption literalExpression;
inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.lists) isList; inherit (lib.lists) isList;
inherit (lib.types) enum either package listOf str bool; inherit (lib.types) enum either package listOf str bool;
inherit (lib.nvim.languages) diagnosticsToLua;
inherit (lib.nvim.types) diagnostics mkGrammarOption; inherit (lib.nvim.types) diagnostics mkGrammarOption;
inherit (lib.nvim.lua) expToLua; inherit (lib.nvim.lua) expToLua;
@ -37,14 +37,6 @@
formats = { formats = {
shfmt = { shfmt = {
package = pkgs.shfmt; package = pkgs.shfmt;
nullConfig = ''
table.insert(
ls_sources,
null_ls.builtins.formatting.shfmt.with({
command = "${pkgs.shfmt}/bin/shfmt",
})
)
'';
}; };
}; };
@ -52,15 +44,6 @@
diagnosticsProviders = { diagnosticsProviders = {
shellcheck = { shellcheck = {
package = pkgs.shellcheck; package = pkgs.shellcheck;
nullConfig = pkg: ''
table.insert(
ls_sources,
null_ls.builtins.diagnostics.shellcheck.with({
command = "${pkg}/bin/shellcheck",
diagnostics_format = "#{m} [#{c}]"
})
)
'';
}; };
}; };
in { in {
@ -130,16 +113,23 @@ in {
}) })
(mkIf cfg.format.enable { (mkIf cfg.format.enable {
vim.lsp.null-ls.enable = true; vim.formatter.conform-nvim = {
vim.lsp.null-ls.sources.bash-format = formats.${cfg.format.type}.nullConfig; enable = true;
setupOpts.formatters_by_ft.sh = [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 = "bash"; linters_by_ft.sh = cfg.extraDiagnostics.types;
config = cfg.extraDiagnostics.types; linters = mkMerge (map (name: {
inherit diagnosticsProviders; ${name}.cmd = getExe diagnosticsProviders.${name}.package;
})
cfg.extraDiagnostics.types);
}; };
}) })
]); ]);