@@ -327,6 +327,8 @@ config_data! {
327
327
inlayHints_closingBraceHints_minLines: usize = "25" ,
328
328
/// Whether to show inlay type hints for return types of closures.
329
329
inlayHints_closureReturnTypeHints_enable: ClosureReturnTypeHintsDef = "\" never\" " ,
330
+ /// Whether to show enum variant discriminant hints.
331
+ inlayHints_discriminantHints_enable: DiscriminantHintsDef = "\" never\" " ,
330
332
/// Whether to show inlay hints for type adjustments.
331
333
inlayHints_expressionAdjustmentHints_enable: AdjustmentHintsDef = "\" never\" " ,
332
334
/// Whether to hide inlay hints for type adjustments outside of `unsafe` blocks.
@@ -1218,6 +1220,11 @@ impl Config {
1218
1220
type_hints : self . data . inlayHints_typeHints_enable ,
1219
1221
parameter_hints : self . data . inlayHints_parameterHints_enable ,
1220
1222
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
+ } ,
1221
1228
closure_return_type_hints : match self . data . inlayHints_closureReturnTypeHints_enable {
1222
1229
ClosureReturnTypeHintsDef :: Always => ide:: ClosureReturnTypeHints :: Always ,
1223
1230
ClosureReturnTypeHintsDef :: Never => ide:: ClosureReturnTypeHints :: Never ,
@@ -1579,6 +1586,7 @@ mod de_unit_v {
1579
1586
named_unit_variant ! ( skip_trivial) ;
1580
1587
named_unit_variant ! ( mutable) ;
1581
1588
named_unit_variant ! ( reborrow) ;
1589
+ named_unit_variant ! ( fieldless) ;
1582
1590
named_unit_variant ! ( with_block) ;
1583
1591
}
1584
1592
@@ -1742,6 +1750,17 @@ enum AdjustmentHintsDef {
1742
1750
Reborrow ,
1743
1751
}
1744
1752
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
+
1745
1764
#[ derive( Deserialize , Debug , Clone ) ]
1746
1765
#[ serde( rename_all = "snake_case" ) ]
1747
1766
enum FilesWatcherDef {
@@ -2064,6 +2083,19 @@ fn field_props(field: &str, ty: &str, doc: &[&str], default: &str) -> serde_json
2064
2083
"Only show auto borrow and dereference adjustment hints."
2065
2084
]
2066
2085
} ,
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
+ } ,
2067
2099
"CargoFeaturesDef" => set ! {
2068
2100
"anyOf" : [
2069
2101
{
0 commit comments