devalang_wasm/tools/cli/
rules_reporter.rs

1use crate::platform::config::AppConfig;
2use crate::tools::logger::{Logger, RuleChecker};
3/// Helper module to activate and report rules in CLI commands
4use std::sync::Arc;
5
6pub struct RulesReporter {
7    rule_checker: RuleChecker,
8    logger: Arc<Logger>,
9}
10
11impl RulesReporter {
12    /// Create a new rules reporter from config
13    pub fn new(config: AppConfig, logger: Arc<Logger>) -> Self {
14        let rule_checker = RuleChecker::new(config);
15        Self {
16            rule_checker,
17            logger,
18        }
19    }
20
21    /// Check and report on all parsing rules for a file
22    pub fn report_check_results(&self, _filename: &str, _line_number: usize) {
23        // This can be extended with actual parsing results
24        // For now, it's a placeholder for future integration
25    }
26
27    /// Create a reporter from current directory config
28    pub fn from_current_dir(logger: Arc<Logger>) -> anyhow::Result<Self> {
29        let current_dir = std::env::current_dir()?;
30        let config = AppConfig::load(&current_dir)?;
31        Ok(Self::new(config, logger))
32    }
33
34    /// Get the internal rule checker
35    pub fn checker(&self) -> &RuleChecker {
36        &self.rule_checker
37    }
38
39    /// Get the logger
40    pub fn logger(&self) -> &Arc<Logger> {
41        &self.logger
42    }
43}