Add text edit to discriminant hints
This commit is contained in:
parent
c92f76d7d7
commit
49322a176f
@ -8,6 +8,7 @@ use hir::Semantics;
|
|||||||
use ide_db::{famous_defs::FamousDefs, RootDatabase};
|
use ide_db::{famous_defs::FamousDefs, RootDatabase};
|
||||||
use span::EditionedFileId;
|
use span::EditionedFileId;
|
||||||
use syntax::ast::{self, AstNode, HasName};
|
use syntax::ast::{self, AstNode, HasName};
|
||||||
|
use text_edit::TextEdit;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
DiscriminantHints, InlayHint, InlayHintLabel, InlayHintPosition, InlayHintsConfig, InlayKind,
|
DiscriminantHints, InlayHint, InlayHintLabel, InlayHintPosition, InlayHintsConfig, InlayKind,
|
||||||
@ -65,11 +66,11 @@ fn variant_hints(
|
|||||||
let eq_ = if eq_token.is_none() { " =" } else { "" };
|
let eq_ = if eq_token.is_none() { " =" } else { "" };
|
||||||
let label = InlayHintLabel::simple(
|
let label = InlayHintLabel::simple(
|
||||||
match d {
|
match d {
|
||||||
Ok(x) => {
|
Ok(val) => {
|
||||||
if x >= 10 {
|
if val >= 10 {
|
||||||
format!("{eq_} {x} ({x:#X})")
|
format!("{eq_} {val} ({val:#X})")
|
||||||
} else {
|
} else {
|
||||||
format!("{eq_} {x}")
|
format!("{eq_} {val}")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Err(_) => format!("{eq_} ?"),
|
Err(_) => format!("{eq_} ?"),
|
||||||
@ -87,7 +88,7 @@ fn variant_hints(
|
|||||||
},
|
},
|
||||||
kind: InlayKind::Discriminant,
|
kind: InlayKind::Discriminant,
|
||||||
label,
|
label,
|
||||||
text_edit: None,
|
text_edit: d.ok().map(|val| TextEdit::insert(range.start(), format!("{eq_} {val}"))),
|
||||||
position: InlayHintPosition::After,
|
position: InlayHintPosition::After,
|
||||||
pad_left: false,
|
pad_left: false,
|
||||||
pad_right: false,
|
pad_right: false,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user