use super::types::{RewriteCategory, RewriteRule};
pub(super) const REWRITE_RULES: &[RewriteRule] = &[
RewriteRule {
prefix: &["cargo", "nextest", "run"],
rewrite_to: &["skim", "test", "cargo"],
skip_if_flag_prefix: &[],
category: RewriteCategory::Test,
},
RewriteRule {
prefix: &["cargo", "test"],
rewrite_to: &["skim", "test", "cargo"],
skip_if_flag_prefix: &[],
category: RewriteCategory::Test,
},
RewriteRule {
prefix: &["cargo", "audit"],
rewrite_to: &["skim", "pkg", "cargo", "audit"],
skip_if_flag_prefix: &["--json"],
category: RewriteCategory::Pkg,
},
RewriteRule {
prefix: &["cargo", "clippy"],
rewrite_to: &["skim", "build", "clippy"],
skip_if_flag_prefix: &[],
category: RewriteCategory::Build,
},
RewriteRule {
prefix: &["cargo", "build"],
rewrite_to: &["skim", "build", "cargo"],
skip_if_flag_prefix: &[],
category: RewriteCategory::Build,
},
RewriteRule {
prefix: &["python3", "-m", "pytest"],
rewrite_to: &["skim", "test", "pytest"],
skip_if_flag_prefix: &[],
category: RewriteCategory::Test,
},
RewriteRule {
prefix: &["python", "-m", "pytest"],
rewrite_to: &["skim", "test", "pytest"],
skip_if_flag_prefix: &[],
category: RewriteCategory::Test,
},
RewriteRule {
prefix: &["npx", "vitest"],
rewrite_to: &["skim", "test", "vitest"],
skip_if_flag_prefix: &[],
category: RewriteCategory::Test,
},
RewriteRule {
prefix: &["npx", "jest"],
rewrite_to: &["skim", "test", "jest"],
skip_if_flag_prefix: &[],
category: RewriteCategory::Test,
},
RewriteRule {
prefix: &["npx", "tsc"],
rewrite_to: &["skim", "build", "tsc"],
skip_if_flag_prefix: &[],
category: RewriteCategory::Build,
},
RewriteRule {
prefix: &["pytest"],
rewrite_to: &["skim", "test", "pytest"],
skip_if_flag_prefix: &[],
category: RewriteCategory::Test,
},
RewriteRule {
prefix: &["vitest"],
rewrite_to: &["skim", "test", "vitest"],
skip_if_flag_prefix: &[],
category: RewriteCategory::Test,
},
RewriteRule {
prefix: &["jest"],
rewrite_to: &["skim", "test", "jest"],
skip_if_flag_prefix: &[],
category: RewriteCategory::Test,
},
RewriteRule {
prefix: &["go", "test"],
rewrite_to: &["skim", "test", "go"],
skip_if_flag_prefix: &[],
category: RewriteCategory::Test,
},
RewriteRule {
prefix: &["git", "status"],
rewrite_to: &["skim", "git", "status"],
skip_if_flag_prefix: &[],
category: RewriteCategory::Git,
},
RewriteRule {
prefix: &["git", "diff"],
rewrite_to: &["skim", "git", "diff"],
skip_if_flag_prefix: &[
"--stat",
"--shortstat",
"--numstat",
"--name-only",
"--name-status",
"--check",
],
category: RewriteCategory::Git,
},
RewriteRule {
prefix: &["git", "fetch"],
rewrite_to: &["skim", "git", "fetch"],
skip_if_flag_prefix: &["--dry-run", "-q", "--quiet"],
category: RewriteCategory::Git,
},
RewriteRule {
prefix: &["git", "log"],
rewrite_to: &["skim", "git", "log"],
skip_if_flag_prefix: &["--format", "--pretty"],
category: RewriteCategory::Git,
},
RewriteRule {
prefix: &["tsc"],
rewrite_to: &["skim", "build", "tsc"],
skip_if_flag_prefix: &[],
category: RewriteCategory::Build,
},
RewriteRule {
prefix: &["npx", "eslint"],
rewrite_to: &["skim", "lint", "eslint"],
skip_if_flag_prefix: &["--format", "-f"],
category: RewriteCategory::Lint,
},
RewriteRule {
prefix: &["eslint"],
rewrite_to: &["skim", "lint", "eslint"],
skip_if_flag_prefix: &["--format", "-f"],
category: RewriteCategory::Lint,
},
RewriteRule {
prefix: &["ruff", "check"],
rewrite_to: &["skim", "lint", "ruff"],
skip_if_flag_prefix: &["--output-format"],
category: RewriteCategory::Lint,
},
RewriteRule {
prefix: &["ruff"],
rewrite_to: &["skim", "lint", "ruff"],
skip_if_flag_prefix: &["--output-format"],
category: RewriteCategory::Lint,
},
RewriteRule {
prefix: &["python3", "-m", "mypy"],
rewrite_to: &["skim", "lint", "mypy"],
skip_if_flag_prefix: &["--output"],
category: RewriteCategory::Lint,
},
RewriteRule {
prefix: &["python", "-m", "mypy"],
rewrite_to: &["skim", "lint", "mypy"],
skip_if_flag_prefix: &["--output"],
category: RewriteCategory::Lint,
},
RewriteRule {
prefix: &["mypy"],
rewrite_to: &["skim", "lint", "mypy"],
skip_if_flag_prefix: &["--output"],
category: RewriteCategory::Lint,
},
RewriteRule {
prefix: &["golangci-lint", "run"],
rewrite_to: &["skim", "lint", "golangci"],
skip_if_flag_prefix: &["--out-format"],
category: RewriteCategory::Lint,
},
RewriteRule {
prefix: &["golangci-lint"],
rewrite_to: &["skim", "lint", "golangci"],
skip_if_flag_prefix: &["--out-format"],
category: RewriteCategory::Lint,
},
RewriteRule {
prefix: &["npm", "audit"],
rewrite_to: &["skim", "pkg", "npm", "audit"],
skip_if_flag_prefix: &["--json"],
category: RewriteCategory::Pkg,
},
RewriteRule {
prefix: &["npm", "install"],
rewrite_to: &["skim", "pkg", "npm", "install"],
skip_if_flag_prefix: &["--json"],
category: RewriteCategory::Pkg,
},
RewriteRule {
prefix: &["npm", "i"],
rewrite_to: &["skim", "pkg", "npm", "install"],
skip_if_flag_prefix: &["--json"],
category: RewriteCategory::Pkg,
},
RewriteRule {
prefix: &["npm", "ci"],
rewrite_to: &["skim", "pkg", "npm", "install"],
skip_if_flag_prefix: &["--json"],
category: RewriteCategory::Pkg,
},
RewriteRule {
prefix: &["npm", "outdated"],
rewrite_to: &["skim", "pkg", "npm", "outdated"],
skip_if_flag_prefix: &["--json"],
category: RewriteCategory::Pkg,
},
RewriteRule {
prefix: &["npm", "list"],
rewrite_to: &["skim", "pkg", "npm", "ls"],
skip_if_flag_prefix: &["--json"],
category: RewriteCategory::Pkg,
},
RewriteRule {
prefix: &["npm", "ls"],
rewrite_to: &["skim", "pkg", "npm", "ls"],
skip_if_flag_prefix: &["--json"],
category: RewriteCategory::Pkg,
},
RewriteRule {
prefix: &["pnpm", "audit"],
rewrite_to: &["skim", "pkg", "pnpm", "audit"],
skip_if_flag_prefix: &["--json"],
category: RewriteCategory::Pkg,
},
RewriteRule {
prefix: &["pnpm", "install"],
rewrite_to: &["skim", "pkg", "pnpm", "install"],
skip_if_flag_prefix: &[],
category: RewriteCategory::Pkg,
},
RewriteRule {
prefix: &["pnpm", "i"],
rewrite_to: &["skim", "pkg", "pnpm", "install"],
skip_if_flag_prefix: &[],
category: RewriteCategory::Pkg,
},
RewriteRule {
prefix: &["pnpm", "outdated"],
rewrite_to: &["skim", "pkg", "pnpm", "outdated"],
skip_if_flag_prefix: &["--format"],
category: RewriteCategory::Pkg,
},
RewriteRule {
prefix: &["pip", "install"],
rewrite_to: &["skim", "pkg", "pip", "install"],
skip_if_flag_prefix: &[],
category: RewriteCategory::Pkg,
},
RewriteRule {
prefix: &["pip", "check"],
rewrite_to: &["skim", "pkg", "pip", "check"],
skip_if_flag_prefix: &[],
category: RewriteCategory::Pkg,
},
RewriteRule {
prefix: &["pip", "list"],
rewrite_to: &["skim", "pkg", "pip", "list"],
skip_if_flag_prefix: &["--format"],
category: RewriteCategory::Pkg,
},
RewriteRule {
prefix: &["pip3", "install"],
rewrite_to: &["skim", "pkg", "pip", "install"],
skip_if_flag_prefix: &[],
category: RewriteCategory::Pkg,
},
RewriteRule {
prefix: &["pip3", "check"],
rewrite_to: &["skim", "pkg", "pip", "check"],
skip_if_flag_prefix: &[],
category: RewriteCategory::Pkg,
},
RewriteRule {
prefix: &["pip3", "list"],
rewrite_to: &["skim", "pkg", "pip", "list"],
skip_if_flag_prefix: &["--format"],
category: RewriteCategory::Pkg,
},
RewriteRule {
prefix: &["npx", "prettier", "--check"],
rewrite_to: &["skim", "lint", "prettier"],
skip_if_flag_prefix: &[],
category: RewriteCategory::Lint,
},
RewriteRule {
prefix: &["prettier", "--check"],
rewrite_to: &["skim", "lint", "prettier"],
skip_if_flag_prefix: &[],
category: RewriteCategory::Lint,
},
RewriteRule {
prefix: &["cargo", "fmt", "--", "--check"],
rewrite_to: &["skim", "lint", "rustfmt"],
skip_if_flag_prefix: &[],
category: RewriteCategory::Lint,
},
RewriteRule {
prefix: &["cargo", "fmt", "--check"],
rewrite_to: &["skim", "lint", "rustfmt"],
skip_if_flag_prefix: &[],
category: RewriteCategory::Lint,
},
RewriteRule {
prefix: &["rustfmt", "--check"],
rewrite_to: &["skim", "lint", "rustfmt"],
skip_if_flag_prefix: &[],
category: RewriteCategory::Lint,
},
RewriteRule {
prefix: &["gh", "pr", "list"],
rewrite_to: &["skim", "infra", "gh", "pr", "list"],
skip_if_flag_prefix: &[],
category: RewriteCategory::Infra,
},
RewriteRule {
prefix: &["gh", "issue", "list"],
rewrite_to: &["skim", "infra", "gh", "issue", "list"],
skip_if_flag_prefix: &[],
category: RewriteCategory::Infra,
},
RewriteRule {
prefix: &["gh", "run", "list"],
rewrite_to: &["skim", "infra", "gh", "run", "list"],
skip_if_flag_prefix: &[],
category: RewriteCategory::Infra,
},
RewriteRule {
prefix: &["gh", "release", "list"],
rewrite_to: &["skim", "infra", "gh", "release", "list"],
skip_if_flag_prefix: &[],
category: RewriteCategory::Infra,
},
RewriteRule {
prefix: &["aws"],
rewrite_to: &["skim", "infra", "aws"],
skip_if_flag_prefix: &["--output"],
category: RewriteCategory::Infra,
},
RewriteRule {
prefix: &["curl"],
rewrite_to: &["skim", "infra", "curl"],
skip_if_flag_prefix: &[
"-o",
"--output",
"-X",
"--request",
"-F",
"--upload-file",
"-T",
],
category: RewriteCategory::Infra,
},
RewriteRule {
prefix: &["wget"],
rewrite_to: &["skim", "infra", "wget"],
skip_if_flag_prefix: &["-O", "-q", "--quiet"],
category: RewriteCategory::Infra,
},
RewriteRule {
prefix: &["find"],
rewrite_to: &["skim", "file", "find"],
skip_if_flag_prefix: &["-exec", "-delete", "-printf", "-print0"],
category: RewriteCategory::FileOps,
},
RewriteRule {
prefix: &["ls", "-la"],
rewrite_to: &["skim", "file", "ls"],
skip_if_flag_prefix: &[],
category: RewriteCategory::FileOps,
},
RewriteRule {
prefix: &["ls", "-R"],
rewrite_to: &["skim", "file", "ls"],
skip_if_flag_prefix: &[],
category: RewriteCategory::FileOps,
},
RewriteRule {
prefix: &["tree"],
rewrite_to: &["skim", "file", "tree"],
skip_if_flag_prefix: &["-J", "--json"],
category: RewriteCategory::FileOps,
},
RewriteRule {
prefix: &["grep", "-rn"],
rewrite_to: &["skim", "file", "grep"],
skip_if_flag_prefix: &["-c", "--count", "-l"],
category: RewriteCategory::FileOps,
},
RewriteRule {
prefix: &["grep", "-r"],
rewrite_to: &["skim", "file", "grep"],
skip_if_flag_prefix: &["-c", "--count", "-l"],
category: RewriteCategory::FileOps,
},
RewriteRule {
prefix: &["rg"],
rewrite_to: &["skim", "file", "rg"],
skip_if_flag_prefix: &["--json", "-c", "--count", "-l", "--files"],
category: RewriteCategory::FileOps,
},
];
#[cfg(test)]
mod tests {
use super::*;
const EXPECTED_RULE_COUNT: usize = 64;
#[test]
fn test_rule_count_matches_expected() {
assert_eq!(
REWRITE_RULES.len(),
EXPECTED_RULE_COUNT,
"Update EXPECTED_RULE_COUNT when adding/removing rules (current: {})",
REWRITE_RULES.len()
);
}
}