@@ -321,6 +321,8 @@ config_data! {
321321 inlayHints_closingBraceHints_minLines: usize = "25" ,
322322 /// Whether to show inlay type hints for return types of closures.
323323 inlayHints_closureReturnTypeHints_enable: ClosureReturnTypeHintsDef = "\" never\" " ,
324+ /// Whether to show inlay hints for type adjustments.
325+ inlayHints_expressionAdjustmentHints_enable: AdjustmentHintsDef = "\" never\" " ,
324326 /// Whether to show inlay type hints for elided lifetimes in function signatures.
325327 inlayHints_lifetimeElisionHints_enable: LifetimeElisionDef = "\" never\" " ,
326328 /// Whether to prefer using parameter names as the name for elided lifetime hints if possible.
@@ -330,7 +332,8 @@ config_data! {
330332 /// Whether to show function parameter name inlay hints at the call
331333 /// site.
332334 inlayHints_parameterHints_enable: bool = "true" ,
333- /// Whether to show inlay type hints for compiler inserted reborrows.
335+ /// Whether to show inlay hints for compiler inserted reborrows.
336+ /// This setting is deprecated in favor of #rust-analyzer.inlayHints.expressionAdjustmentHints.enable#.
334337 inlayHints_reborrowHints_enable: ReborrowHintsDef = "\" never\" " ,
335338 /// Whether to render leading colons for type hints, and trailing colons for parameter hints.
336339 inlayHints_renderColons: bool = "true" ,
@@ -1201,10 +1204,15 @@ impl Config {
12011204 hide_closure_initialization_hints : self
12021205 . data
12031206 . inlayHints_typeHints_hideClosureInitialization ,
1204- adjustment_hints : match self . data . inlayHints_reborrowHints_enable {
1205- ReborrowHintsDef :: Always => ide:: AdjustmentHints :: Always ,
1206- ReborrowHintsDef :: Never => ide:: AdjustmentHints :: Never ,
1207- ReborrowHintsDef :: Mutable => ide:: AdjustmentHints :: MutableOnly ,
1207+ adjustment_hints : match self . data . inlayHints_expressionAdjustmentHints_enable {
1208+ AdjustmentHintsDef :: Always => ide:: AdjustmentHints :: Always ,
1209+ AdjustmentHintsDef :: Never => match self . data . inlayHints_reborrowHints_enable {
1210+ ReborrowHintsDef :: Always | ReborrowHintsDef :: Mutable => {
1211+ ide:: AdjustmentHints :: ReborrowOnly
1212+ }
1213+ ReborrowHintsDef :: Never => ide:: AdjustmentHints :: Never ,
1214+ } ,
1215+ AdjustmentHintsDef :: Reborrow => ide:: AdjustmentHints :: ReborrowOnly ,
12081216 } ,
12091217 binding_mode_hints : self . data . inlayHints_bindingModeHints_enable ,
12101218 param_names_for_lifetime_elision_hints : self
@@ -1539,6 +1547,7 @@ mod de_unit_v {
15391547 named_unit_variant ! ( all) ;
15401548 named_unit_variant ! ( skip_trivial) ;
15411549 named_unit_variant ! ( mutable) ;
1550+ named_unit_variant ! ( reborrow) ;
15421551 named_unit_variant ! ( with_block) ;
15431552}
15441553
@@ -1688,6 +1697,17 @@ enum ReborrowHintsDef {
16881697 Mutable ,
16891698}
16901699
1700+ #[ derive( Deserialize , Debug , Clone ) ]
1701+ #[ serde( untagged) ]
1702+ enum AdjustmentHintsDef {
1703+ #[ serde( deserialize_with = "true_or_always" ) ]
1704+ Always ,
1705+ #[ serde( deserialize_with = "false_or_never" ) ]
1706+ Never ,
1707+ #[ serde( deserialize_with = "de_unit_v::reborrow" ) ]
1708+ Reborrow ,
1709+ }
1710+
16911711#[ derive( Deserialize , Debug , Clone ) ]
16921712#[ serde( rename_all = "snake_case" ) ]
16931713enum FilesWatcherDef {
@@ -1997,6 +2017,19 @@ fn field_props(field: &str, ty: &str, doc: &[&str], default: &str) -> serde_json
19972017 "Only show mutable reborrow hints."
19982018 ]
19992019 } ,
2020+ "AdjustmentHintsDef" => set ! {
2021+ "type" : "string" ,
2022+ "enum" : [
2023+ "always" ,
2024+ "never" ,
2025+ "reborrow"
2026+ ] ,
2027+ "enumDescriptions" : [
2028+ "Always show all adjustment hints." ,
2029+ "Never show adjustment hints." ,
2030+ "Only show auto borrow and dereference adjustment hints."
2031+ ]
2032+ } ,
20002033 "CargoFeaturesDef" => set ! {
20012034 "anyOf" : [
20022035 {
0 commit comments