Skip to content

Commit bc704c1

Browse files
fix(analyser): recognize disabled rules
1 parent f33bc67 commit bc704c1

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

crates/pgt_workspace/src/workspace/server/analyser.rs

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,14 +68,23 @@ impl<'a, 'b> LintVisitor<'a, 'b> {
6868

6969
fn finish(mut self) -> (FxHashSet<RuleFilter<'a>>, FxHashSet<RuleFilter<'a>>) {
7070
let has_only_filter = !self.only.is_empty();
71+
7172
if !has_only_filter {
7273
let enabled_rules = self
7374
.settings
7475
.as_linter_rules()
7576
.map(|rules| rules.as_enabled_rules())
7677
.unwrap_or_default();
7778
self.enabled_rules.extend(enabled_rules);
79+
80+
let disabled_rules = self
81+
.settings
82+
.as_linter_rules()
83+
.map(|rules| rules.as_disabled_rules())
84+
.unwrap_or_default();
85+
self.disabled_rules.extend(disabled_rules);
7886
}
87+
7988
(self.enabled_rules, self.disabled_rules)
8089
}
8190

@@ -127,3 +136,42 @@ impl RegistryVisitor for LintVisitor<'_, '_> {
127136
self.push_rule::<R>()
128137
}
129138
}
139+
140+
#[cfg(test)]
141+
mod tests {
142+
use pgt_analyse::RuleFilter;
143+
use pgt_configuration::{RuleConfiguration, Rules, analyser::Safety};
144+
145+
use crate::{
146+
settings::{LinterSettings, Settings},
147+
workspace::server::analyser::AnalyserVisitorBuilder,
148+
};
149+
150+
#[test]
151+
fn recognizes_disabled_rules() {
152+
let settings = Settings {
153+
linter: LinterSettings {
154+
rules: Some(Rules {
155+
safety: Some(Safety {
156+
ban_drop_column: Some(RuleConfiguration::Plain(
157+
pgt_configuration::RulePlainConfiguration::Off,
158+
)),
159+
..Default::default()
160+
}),
161+
..Default::default()
162+
}),
163+
..Default::default()
164+
},
165+
..Default::default()
166+
};
167+
168+
let (_, disabled_rules) = AnalyserVisitorBuilder::new(&settings)
169+
.with_linter_rules(&[], &[])
170+
.finish();
171+
172+
assert_eq!(
173+
disabled_rules,
174+
vec![RuleFilter::Rule("safety", "banDropColumn")]
175+
)
176+
}
177+
}

0 commit comments

Comments
 (0)