diff --git a/ruff_cli/src/cli.rs b/ruff_cli/src/cli.rs index 664e473882..cfacd30d52 100644 --- a/ruff_cli/src/cli.rs +++ b/ruff_cli/src/cli.rs @@ -1,8 +1,7 @@ -use std::path::{Path, PathBuf}; +use std::path::PathBuf; use clap::{command, Parser}; use regex::Regex; -use ruff::fs; use ruff::logging::LogLevel; use ruff::registry::{Rule, RuleSelector}; use ruff::resolver::ConfigProcessor; @@ -444,9 +443,6 @@ pub fn collect_per_file_ignores(pairs: Vec) -> Vec, + pub(crate) basename: String, + pub(crate) absolute: PathBuf, + pub(crate) codes: HashableHashSet, } impl PerFileIgnore { - pub fn new(basename: String, absolute: PathBuf, prefixes: &[RuleSelector]) -> Self { + pub fn new(pattern: String, prefixes: &[RuleSelector], project_root: Option<&Path>) -> Self { let codes: FxHashSet<_> = prefixes.iter().flat_map(RuleSelector::codes).collect(); + let path = Path::new(&pattern); + let absolute = match project_root { + Some(project_root) => fs::normalize_path_to(path, project_root), + None => fs::normalize_path(path), + }; + Self { - basename, + basename: pattern, absolute, codes: codes.into(), }