diff --git a/Cargo.lock b/Cargo.lock index cc1237c729374..2c060782a6a6d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -300,7 +300,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c" dependencies = [ "lazy_static", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -309,7 +309,7 @@ version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fde0e0ec90c9dfb3b4b1a0891a7dcd0e2bffde2f7efed5fe7c9bb00e5bfb915e" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -1676,9 +1676,9 @@ dependencies = [ [[package]] name = "oxc-miette" -version = "2.3.2" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8f905f1293ce969f8b6f08f2f4e8a0fbfd26dec42a30ea98b436d2faf01f50f" +checksum = "31cfb121c9d3e0f9082856927f5cff9594279c91b544f4436e4bc971563caa60" dependencies = [ "cfg-if", "owo-colors", @@ -1690,9 +1690,9 @@ dependencies = [ [[package]] name = "oxc-miette-derive" -version = "2.3.2" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd092b10278cef8cc76dad34116988c2f0ca34bf9082de5513bacd95f4553d0" +checksum = "a6eabb57f935b454fbe0552ea0abaaf9eb0019b5fa05a7bbe7efd5bd8c765085" dependencies = [ "proc-macro2", "quote", @@ -3216,7 +3216,7 @@ dependencies = [ "getrandom 0.3.3", "once_cell", "rustix", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -3738,7 +3738,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 84908690e9717..ea66186c0d362 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -202,7 +202,7 @@ lazy_static = "1.5.0" log = "0.4.27" markdown = "1.0.0" memchr = "2.7.5" -miette = { package = "oxc-miette", version = "2.3.2", features = ["fancy-no-syscall"] } +miette = { package = "oxc-miette", version = "2.4.0", features = ["fancy-no-syscall"] } mimalloc-safe = "0.1.54" nonmax = "0.5.5" num-bigint = "0.4.6" diff --git a/crates/oxc_linter/src/fixer/mod.rs b/crates/oxc_linter/src/fixer/mod.rs index 015d0295e1cd5..7d1575726cf38 100644 --- a/crates/oxc_linter/src/fixer/mod.rs +++ b/crates/oxc_linter/src/fixer/mod.rs @@ -291,6 +291,35 @@ impl<'a> Message<'a> { }; Self { error, span: Span::new(start, end), fixes, fixed: false } } + + /// move the offset of all spans to the right + pub fn move_offset(&mut self, offset: u32) -> &mut Self { + if offset == 0 { + return self; + } + + self.span = self.span.move_right(offset); + + if let Some(labels) = &mut self.error.labels { + for label in labels { + label.set_span_offset(label.offset().saturating_add(offset as usize)); + } + } + + match &mut self.fixes { + PossibleFixes::None => {} + PossibleFixes::Single(fix) => { + fix.span = fix.span.move_right(offset); + } + PossibleFixes::Multiple(fixes) => { + for fix in fixes { + fix.span = fix.span.move_right(offset); + } + } + } + + self + } } impl From> for OxcDiagnostic { diff --git a/crates/oxc_linter/src/service/runtime.rs b/crates/oxc_linter/src/service/runtime.rs index 3c07fa337925a..b52355a6f6d68 100644 --- a/crates/oxc_linter/src/service/runtime.rs +++ b/crates/oxc_linter/src/service/runtime.rs @@ -773,7 +773,12 @@ impl Runtime { .collect(), } .into_iter() - .map(|message| message.clone_in(allocator)), + .map(|mut message| { + if section.source.start != 0 { + message.move_offset(section.source.start); + } + message.clone_in(allocator) + }), ); } },