Skip to content

Commit 45b4e72

Browse files
committed
fix: strip ANSI escape codes from flycheck messages
1 parent 3099a7f commit 45b4e72

File tree

4 files changed

+27
-3
lines changed

4 files changed

+27
-3
lines changed

Cargo.lock

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

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,7 @@ semver = "1.0.26"
144144
serde = { version = "1.0.219" }
145145
serde_derive = { version = "1.0.219" }
146146
serde_json = "1.0.140"
147+
strip-ansi-escapes = "0.2.1"
147148
rustc-hash = "2.1.1"
148149
rustc-literal-escaper = "0.0.4"
149150
smallvec = { version = "1.15.1", features = [

crates/rust-analyzer/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ semver.workspace = true
5353
memchr = "2.7.5"
5454
cargo_metadata.workspace = true
5555
process-wrap.workspace = true
56+
strip-ansi-escapes.workspace = true
5657

5758
cfg.workspace = true
5859
hir-def.workspace = true

crates/rust-analyzer/src/flycheck.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -739,15 +739,18 @@ impl CargoParser<CargoCheckMessage> for CargoCheckParser {
739739
Some(CargoCheckMessage::CompilerArtifact(artifact))
740740
}
741741
cargo_metadata::Message::CompilerMessage(msg) => {
742+
let mut diagnostic = msg.message;
743+
diagnostic.message = strip_ansi_escapes::strip_str(diagnostic.message);
742744
Some(CargoCheckMessage::Diagnostic {
743-
diagnostic: msg.message,
745+
diagnostic,
744746
package_id: Some(Arc::new(msg.package_id)),
745747
})
746748
}
747749
_ => None,
748750
},
749-
JsonMessage::Rustc(message) => {
750-
Some(CargoCheckMessage::Diagnostic { diagnostic: message, package_id: None })
751+
JsonMessage::Rustc(mut diagnostic) => {
752+
diagnostic.message = strip_ansi_escapes::strip_str(diagnostic.message);
753+
Some(CargoCheckMessage::Diagnostic { diagnostic, package_id: None })
751754
}
752755
};
753756
}

0 commit comments

Comments
 (0)