use nu_protocol::{ParseWarning, Span};
use crate::{
context::LintContext,
violation::{Fix, Replacement},
};
#[derive(Default)]
pub struct Enhancement {
pub notes: Vec<String>,
pub extra_labels: Vec<(Span, String)>,
pub fix: Option<Fix>,
}
pub fn enhance(warning: &ParseWarning, context: &LintContext) -> Option<Enhancement> {
let ParseWarning::Deprecated { label, span, .. } = warning;
if label.contains("get --ignore-errors") {
let source = context.span_text(*span);
let replacement = source
.replace("--ignore-errors", "--optional")
.replace("-i", "-o");
return Some(Enhancement {
notes: vec!["The --optional (-o) flag requires nushell >= 0.106.0".into()],
extra_labels: vec![],
fix: Some(Fix {
explanation: "Replace with --optional (-o)".into(),
replacements: vec![Replacement::new(*span, replacement)],
}),
});
}
None
}