Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide/src/inlay_hints/chaining.rs')
| -rw-r--r-- | crates/ide/src/inlay_hints/chaining.rs | 93 |
1 files changed, 85 insertions, 8 deletions
diff --git a/crates/ide/src/inlay_hints/chaining.rs b/crates/ide/src/inlay_hints/chaining.rs index 1e1771259b..ce1e03a069 100644 --- a/crates/ide/src/inlay_hints/chaining.rs +++ b/crates/ide/src/inlay_hints/chaining.rs @@ -5,7 +5,7 @@ use syntax::{ Direction, NodeOrToken, SyntaxKind, T, }; -use crate::{FileId, InlayHint, InlayHintsConfig, InlayKind}; +use crate::{FileId, InlayHint, InlayHintPosition, InlayHintsConfig, InlayKind}; use super::label_of_ty; @@ -60,7 +60,11 @@ pub(super) fn hints( acc.push(InlayHint { range: expr.syntax().text_range(), kind: InlayKind::Chaining, - label: label_of_ty(famous_defs, config, ty)?, + label: label_of_ty(famous_defs, config, &ty)?, + text_edit: None, + position: InlayHintPosition::After, + pad_left: true, + pad_right: false, }); } } @@ -103,6 +107,9 @@ fn main() { [ InlayHint { range: 147..172, + position: After, + pad_left: true, + pad_right: false, kind: Chaining, label: [ "", @@ -120,9 +127,13 @@ fn main() { }, "", ], + text_edit: None, }, InlayHint { range: 147..154, + position: After, + pad_left: true, + pad_right: false, kind: Chaining, label: [ "", @@ -140,6 +151,7 @@ fn main() { }, "", ], + text_edit: None, }, ] "#]], @@ -188,6 +200,9 @@ fn main() { [ InlayHint { range: 143..190, + position: After, + pad_left: true, + pad_right: false, kind: Chaining, label: [ "", @@ -205,9 +220,13 @@ fn main() { }, "", ], + text_edit: None, }, InlayHint { range: 143..179, + position: After, + pad_left: true, + pad_right: false, kind: Chaining, label: [ "", @@ -225,6 +244,7 @@ fn main() { }, "", ], + text_edit: None, }, ] "#]], @@ -257,6 +277,9 @@ fn main() { [ InlayHint { range: 143..190, + position: After, + pad_left: true, + pad_right: false, kind: Chaining, label: [ "", @@ -274,9 +297,13 @@ fn main() { }, "", ], + text_edit: None, }, InlayHint { range: 143..179, + position: After, + pad_left: true, + pad_right: false, kind: Chaining, label: [ "", @@ -294,6 +321,7 @@ fn main() { }, "", ], + text_edit: None, }, ] "#]], @@ -327,6 +355,9 @@ fn main() { [ InlayHint { range: 246..283, + position: After, + pad_left: true, + pad_right: false, kind: Chaining, label: [ "", @@ -357,9 +388,13 @@ fn main() { }, "<i32, bool>>", ], + text_edit: None, }, InlayHint { range: 246..265, + position: After, + pad_left: true, + pad_right: false, kind: Chaining, label: [ "", @@ -390,6 +425,7 @@ fn main() { }, "<i32, bool>>", ], + text_edit: None, }, ] "#]], @@ -425,6 +461,9 @@ fn main() { [ InlayHint { range: 174..241, + position: After, + pad_left: true, + pad_right: false, kind: Chaining, label: [ "impl ", @@ -435,7 +474,7 @@ fn main() { file_id: FileId( 1, ), - range: 3415..3423, + range: 9332..9340, }, ), tooltip: "", @@ -448,16 +487,20 @@ fn main() { file_id: FileId( 1, ), - range: 3447..3451, + range: 9364..9368, }, ), tooltip: "", }, " = ()>", ], + text_edit: None, }, InlayHint { range: 174..224, + position: After, + pad_left: true, + pad_right: false, kind: Chaining, label: [ "impl ", @@ -468,7 +511,7 @@ fn main() { file_id: FileId( 1, ), - range: 3415..3423, + range: 9332..9340, }, ), tooltip: "", @@ -481,16 +524,20 @@ fn main() { file_id: FileId( 1, ), - range: 3447..3451, + range: 9364..9368, }, ), tooltip: "", }, " = ()>", ], + text_edit: None, }, InlayHint { range: 174..206, + position: After, + pad_left: true, + pad_right: false, kind: Chaining, label: [ "impl ", @@ -501,7 +548,7 @@ fn main() { file_id: FileId( 1, ), - range: 3415..3423, + range: 9332..9340, }, ), tooltip: "", @@ -514,16 +561,20 @@ fn main() { file_id: FileId( 1, ), - range: 3447..3451, + range: 9364..9368, }, ), tooltip: "", }, " = ()>", ], + text_edit: None, }, InlayHint { range: 174..189, + position: After, + pad_left: true, + pad_right: false, kind: Chaining, label: [ "&mut ", @@ -541,6 +592,7 @@ fn main() { }, "", ], + text_edit: None, }, ] "#]], @@ -573,6 +625,9 @@ fn main() { [ InlayHint { range: 124..130, + position: After, + pad_left: true, + pad_right: false, kind: Type, label: [ "", @@ -590,9 +645,22 @@ fn main() { }, "", ], + text_edit: Some( + TextEdit { + indels: [ + Indel { + insert: ": Struct", + delete: 130..130, + }, + ], + }, + ), }, InlayHint { range: 145..185, + position: After, + pad_left: true, + pad_right: false, kind: Chaining, label: [ "", @@ -610,9 +678,13 @@ fn main() { }, "", ], + text_edit: None, }, InlayHint { range: 145..168, + position: After, + pad_left: true, + pad_right: false, kind: Chaining, label: [ "", @@ -630,9 +702,13 @@ fn main() { }, "", ], + text_edit: None, }, InlayHint { range: 222..228, + position: Before, + pad_left: false, + pad_right: true, kind: Parameter, label: [ InlayHintLabelPart { @@ -648,6 +724,7 @@ fn main() { tooltip: "", }, ], + text_edit: None, }, ] "#]], |