Skip to content

Commit 0dd4ff0

Browse files
committed
test(linter): fix offset for partical source texts
1 parent 359796f commit 0dd4ff0

File tree

4 files changed

+40
-5
lines changed

4 files changed

+40
-5
lines changed

Cargo.lock

Lines changed: 2 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,3 +292,6 @@ overflow-checks = true # Catch arithmetic overflow errors
292292
[profile.dev-no-debug-assertions]
293293
inherits = "dev"
294294
debug-assertions = false
295+
296+
[patch.crates-io]
297+
oxc-miette = { git = "https://github.com/oxc-project/oxc-miette/", rev = "8522fe33a69115cf4b4ed7d2ee2c2cd8a1511c2b" }

crates/oxc_linter/src/fixer/mod.rs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,35 @@ impl<'a> Message<'a> {
291291
};
292292
Self { error, span: Span::new(start, end), fixes, fixed: false }
293293
}
294+
295+
/// move the offset of all spans to the right
296+
pub fn move_offset(&mut self, offset: u32) -> &mut Self {
297+
if offset == 0 {
298+
return self;
299+
}
300+
301+
self.span = self.span.move_right(offset);
302+
303+
if let Some(labels) = &mut self.error.labels {
304+
for label in labels {
305+
label.set_span_offset(label.offset().saturating_add(offset as usize));
306+
}
307+
}
308+
309+
match &mut self.fixes {
310+
PossibleFixes::None => {}
311+
PossibleFixes::Single(fix) => {
312+
fix.span = fix.span.move_right(offset);
313+
}
314+
PossibleFixes::Multiple(fixes) => {
315+
for fix in fixes {
316+
fix.span = fix.span.move_right(offset);
317+
}
318+
}
319+
}
320+
321+
self
322+
}
294323
}
295324

296325
impl From<Message<'_>> for OxcDiagnostic {

crates/oxc_linter/src/service/runtime.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -773,7 +773,12 @@ impl Runtime {
773773
.collect(),
774774
}
775775
.into_iter()
776-
.map(|message| message.clone_in(allocator)),
776+
.map(|mut message| {
777+
if section.source.start != 0 {
778+
message.move_offset(section.source.start);
779+
}
780+
message.clone_in(allocator)
781+
}),
777782
);
778783
}
779784
},

0 commit comments

Comments
 (0)