@@ -327,6 +327,8 @@ config_data! {
327327 inlayHints_closingBraceHints_minLines: usize = "25" ,
328328 /// Whether to show inlay type hints for return types of closures.
329329 inlayHints_closureReturnTypeHints_enable: ClosureReturnTypeHintsDef = "\" never\" " ,
330+ /// Whether to show enum variant discriminant hints.
331+ inlayHints_discriminantHints_enable: DiscriminantHintsDef = "\" never\" " ,
330332 /// Whether to show inlay hints for type adjustments.
331333 inlayHints_expressionAdjustmentHints_enable: AdjustmentHintsDef = "\" never\" " ,
332334 /// Whether to hide inlay hints for type adjustments outside of `unsafe` blocks.
@@ -1218,6 +1220,11 @@ impl Config {
12181220 type_hints : self . data . inlayHints_typeHints_enable ,
12191221 parameter_hints : self . data . inlayHints_parameterHints_enable ,
12201222 chaining_hints : self . data . inlayHints_chainingHints_enable ,
1223+ discriminant_hints : match self . data . inlayHints_discriminantHints_enable {
1224+ DiscriminantHintsDef :: Always => ide:: DiscriminantHints :: Always ,
1225+ DiscriminantHintsDef :: Never => ide:: DiscriminantHints :: Never ,
1226+ DiscriminantHintsDef :: Fieldless => ide:: DiscriminantHints :: Fieldless ,
1227+ } ,
12211228 closure_return_type_hints : match self . data . inlayHints_closureReturnTypeHints_enable {
12221229 ClosureReturnTypeHintsDef :: Always => ide:: ClosureReturnTypeHints :: Always ,
12231230 ClosureReturnTypeHintsDef :: Never => ide:: ClosureReturnTypeHints :: Never ,
@@ -1579,6 +1586,7 @@ mod de_unit_v {
15791586 named_unit_variant ! ( skip_trivial) ;
15801587 named_unit_variant ! ( mutable) ;
15811588 named_unit_variant ! ( reborrow) ;
1589+ named_unit_variant ! ( fieldless) ;
15821590 named_unit_variant ! ( with_block) ;
15831591}
15841592
@@ -1742,6 +1750,17 @@ enum AdjustmentHintsDef {
17421750 Reborrow ,
17431751}
17441752
1753+ #[ derive( Deserialize , Debug , Clone ) ]
1754+ #[ serde( untagged) ]
1755+ enum DiscriminantHintsDef {
1756+ #[ serde( deserialize_with = "true_or_always" ) ]
1757+ Always ,
1758+ #[ serde( deserialize_with = "false_or_never" ) ]
1759+ Never ,
1760+ #[ serde( deserialize_with = "de_unit_v::fieldless" ) ]
1761+ Fieldless ,
1762+ }
1763+
17451764#[ derive( Deserialize , Debug , Clone ) ]
17461765#[ serde( rename_all = "snake_case" ) ]
17471766enum FilesWatcherDef {
@@ -2064,6 +2083,19 @@ fn field_props(field: &str, ty: &str, doc: &[&str], default: &str) -> serde_json
20642083 "Only show auto borrow and dereference adjustment hints."
20652084 ]
20662085 } ,
2086+ "DiscriminantHintsDef" => set ! {
2087+ "type" : "string" ,
2088+ "enum" : [
2089+ "always" ,
2090+ "never" ,
2091+ "fieldless"
2092+ ] ,
2093+ "enumDescriptions" : [
2094+ "Always show all discriminant hints." ,
2095+ "Never show discriminant hints." ,
2096+ "Only show discriminant hints on fieldless enum variants."
2097+ ]
2098+ } ,
20672099 "CargoFeaturesDef" => set ! {
20682100 "anyOf" : [
20692101 {
0 commit comments