use super::tool_name;
pub(super) struct FileTargetTool {
pub(super) names: &'static [&'static str],
pub(super) loading_flags: &'static [&'static str],
pub(super) directory_flags: &'static [&'static str],
}
pub(super) const FILE_TARGET_TOOLS: &[FileTargetTool] = &[
FileTargetTool {
names: &["alex"],
loading_flags: &[],
directory_flags: &[],
},
FileTargetTool {
names: &["biome", "rome"],
loading_flags: &[],
directory_flags: &[],
},
FileTargetTool {
names: &["cspell"],
loading_flags: &["--reporter"],
directory_flags: &[],
},
FileTargetTool {
names: &["depcruise", "dependency-cruiser"],
loading_flags: &["--webpack-config"],
directory_flags: &[],
},
FileTargetTool {
names: &["dprint"],
loading_flags: &[],
directory_flags: &[],
},
FileTargetTool {
names: &["editorconfig-checker", "eclint"],
loading_flags: &[],
directory_flags: &[],
},
FileTargetTool {
names: &["ember-template-lint"],
loading_flags: &["--config-path"],
directory_flags: &[],
},
FileTargetTool {
names: &["eslint", "eslint_d"],
loading_flags: &["-f", "--format", "--parser"],
directory_flags: &["--rulesdir"],
},
FileTargetTool {
names: &["htmlhint"],
loading_flags: &[],
directory_flags: &["--rulesdir"],
},
FileTargetTool {
names: &["jscpd"],
loading_flags: &[],
directory_flags: &[],
},
FileTargetTool {
names: &["jshint"],
loading_flags: &["--reporter"],
directory_flags: &[],
},
FileTargetTool {
names: &["madge"],
loading_flags: &["--webpack-config", "--require-config"],
directory_flags: &[],
},
FileTargetTool {
names: &["markdownlint"],
loading_flags: &["-r", "--rules"],
directory_flags: &[],
},
FileTargetTool {
names: &["markdownlint-cli2"],
loading_flags: &[],
directory_flags: &[],
},
FileTargetTool {
names: &["markuplint"],
loading_flags: &[],
directory_flags: &[],
},
FileTargetTool {
names: &["oxfmt", "oxlint"],
loading_flags: &[],
directory_flags: &[],
},
FileTargetTool {
names: &["prettier"],
loading_flags: &["--plugin"],
directory_flags: &[],
},
FileTargetTool {
names: &["remark"],
loading_flags: &["-u", "--use", "-r", "--rc-path"],
directory_flags: &[],
},
FileTargetTool {
names: &["secretlint"],
loading_flags: &["--secretlintrc"],
directory_flags: &[],
},
FileTargetTool {
names: &["standard", "semistandard", "ts-standard"],
loading_flags: &["--parser"],
directory_flags: &[],
},
FileTargetTool {
names: &["stylelint"],
loading_flags: &["--custom-formatter", "--custom-syntax"],
directory_flags: &[],
},
FileTargetTool {
names: &["textlint"],
loading_flags: &["-f", "--format", "--rule", "--plugin", "--preset"],
directory_flags: &["--rulesdir"],
},
FileTargetTool {
names: &["tslint"],
loading_flags: &[],
directory_flags: &["-r", "--rules-dir", "-s", "--formatters-dir"],
},
FileTargetTool {
names: &["xo"],
loading_flags: &["--reporter"],
directory_flags: &[],
},
];
pub(super) fn file_target_tool(binary: &str) -> Option<&'static FileTargetTool> {
let name = tool_name(binary);
FILE_TARGET_TOOLS
.iter()
.find(|tool| tool.names.contains(&name))
}