diff --git a/Cargo.toml b/Cargo.toml index 037b04a..bc35ba7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,6 +13,7 @@ crate-type = ["cdylib"] [dependencies] #svlint = { path = "../svlint" } -svlint = "0.8.0" +#svlint = "0.8.0" TODO: Update svlint dependency pin before PR review. +svlint = { git = "https://github.com/DaveMcEwan/svlint.git", rev = "7a4f5eb" } sv-parser = "0.13.1" regex = "1" # Only used for the rule "forbidden_regex". diff --git a/src/forbidden_regex.rs b/src/forbidden_regex.rs index b4ac176..1b52227 100644 --- a/src/forbidden_regex.rs +++ b/src/forbidden_regex.rs @@ -10,9 +10,15 @@ pub struct ForbiddenRegex { impl TextRule for ForbiddenRegex { fn check( &mut self, - line: &str, + line: Option<&str>, _option: &ConfigOption, ) -> TextRuleResult { + let line: &str = if line.is_none() { + return TextRuleResult::Pass; + } else { + line.unwrap() + }; + if self.re.is_none() { let r = format!(r"XXX"); self.re = Some(Regex::new(&r).unwrap()); diff --git a/src/lib.rs b/src/lib.rs index ea640ae..50bbc73 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -77,12 +77,16 @@ mod tests { let mut pass = true; + // Signal beginning of file to all TextRules. + // None *may* be used by rules to reset their internal state. + let _ = linter.textrules_check(None, &sv, &0); + // Iterate over lines in the file, applying each textrule to each // line in turn. let text: String = read_to_string(&sv).unwrap(); let mut beg: usize = 0; for line in text.lines() { - for _failed in linter.textrules_check(&line, &sv, &beg) { + for _failed in linter.textrules_check(Some(&line), &sv, &beg) { pass = false; }