normalize_rules/
cmd_rules.rs1use normalize_languages::parsers::grammar_loader;
7use normalize_syntax_rules::{DebugFlags, Finding, RulesConfig, load_all_rules, run_rules};
8use std::collections::HashSet;
9use std::path::Path;
10
11#[allow(clippy::too_many_arguments)]
13pub fn run_syntax_rules(
14 root: &Path,
15 project_root: &Path,
16 filter_rule: Option<&str>,
17 filter_tag: Option<&str>,
18 filter_ids: Option<&HashSet<String>>,
19 config: &RulesConfig,
20 debug: &DebugFlags,
21 files: Option<&[std::path::PathBuf]>,
22 path_filter: &normalize_rules_config::PathFilter,
23 walk_config: &normalize_rules_config::WalkConfig,
24) -> Vec<Finding> {
25 let rules = load_all_rules(project_root, config);
26 if rules.is_empty() {
27 return Vec::new();
28 }
29 let loader = grammar_loader();
30 run_rules(
31 &rules,
32 root,
33 project_root,
34 &loader,
35 filter_rule,
36 filter_tag,
37 filter_ids,
38 debug,
39 files,
40 path_filter,
41 walk_config,
42 )
43}