diff options
| author | Lukas Wirth <lukastw97@gmail.com> | 2025-01-12 14:04:35 +0100 |
|---|---|---|
| committer | Lukas Wirth <lukastw97@gmail.com> | 2025-01-12 14:04:35 +0100 |
| commit | ed121ecc2af7529a1bb1c23a08d1d460711c70d8 (patch) | |
| tree | a9992def5c6bd20a315fc42ebe0f0b3cff159711 | |
| parent | b79da13a22bcdb8bcb3a5542d257050c2084486b (diff) | |
| download | rust-ed121ecc2af7529a1bb1c23a08d1d460711c70d8.tar.gz rust-ed121ecc2af7529a1bb1c23a08d1d460711c70d8.zip | |
Fix text edits for discriminant hints
| -rw-r--r-- | src/tools/rust-analyzer/crates/ide/src/inlay_hints/discriminant.rs | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/src/tools/rust-analyzer/crates/ide/src/inlay_hints/discriminant.rs b/src/tools/rust-analyzer/crates/ide/src/inlay_hints/discriminant.rs index f720c06048c..5a147adabcf 100644 --- a/src/tools/rust-analyzer/crates/ide/src/inlay_hints/discriminant.rs +++ b/src/tools/rust-analyzer/crates/ide/src/inlay_hints/discriminant.rs @@ -90,7 +90,7 @@ fn variant_hints( kind: InlayKind::Discriminant, label, text_edit: d.ok().map(|val| { - config.lazy_text_edit(|| TextEdit::insert(range.start(), format!("{eq_} {val}"))) + config.lazy_text_edit(|| TextEdit::insert(range.end(), format!("{eq_} {val}"))) }), position: InlayHintPosition::After, pad_left: false, @@ -102,8 +102,10 @@ fn variant_hints( } #[cfg(test)] mod tests { + use expect_test::expect; + use crate::inlay_hints::{ - tests::{check_with_config, DISABLED_CONFIG}, + tests::{check_edit, check_with_config, DISABLED_CONFIG}, DiscriminantHints, InlayHintsConfig, }; @@ -210,4 +212,33 @@ enum Enum { "#, ); } + + #[test] + fn edit() { + check_edit( + InlayHintsConfig { discriminant_hints: DiscriminantHints::Always, ..DISABLED_CONFIG }, + r#" +#[repr(u8)] +enum Enum { + Variant(), + Variant1, + Variant2 {}, + Variant3, + Variant5, + Variant6, +} +"#, + expect![[r#" + #[repr(u8)] + enum Enum { + Variant() = 0, + Variant1 = 1, + Variant2 {} = 2, + Variant3 = 3, + Variant5 = 4, + Variant6 = 5, + } + "#]], + ); + } } |
