Skip to content

Commit 406c966

Browse files
committed
Simplify some config serialization stuff
1 parent e972dd2 commit 406c966

File tree

2 files changed

+46
-72
lines changed

2 files changed

+46
-72
lines changed

crates/rust-analyzer/src/config.rs

Lines changed: 13 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -968,8 +968,6 @@ macro_rules! try_or_def {
968968
};
969969
}
970970

971-
type ParallelCachePrimingNumThreads = u8;
972-
973971
#[derive(Debug, Clone, Eq, PartialEq)]
974972
pub enum LinkedProject {
975973
ProjectManifest(ProjectManifest),
@@ -2205,51 +2203,6 @@ macro_rules! create_bool_or_string_serde {
22052203
create_bool_or_string_serde!(true_or_always<true, "always">);
22062204
create_bool_or_string_serde!(false_or_never<false, "never">);
22072205

2208-
macro_rules! named_unit_variant {
2209-
($variant:ident) => {
2210-
pub(super) mod $variant {
2211-
pub(in super::super) fn deserialize<'de, D>(deserializer: D) -> Result<(), D::Error>
2212-
where
2213-
D: serde::Deserializer<'de>,
2214-
{
2215-
struct V;
2216-
impl<'de> serde::de::Visitor<'de> for V {
2217-
type Value = ();
2218-
fn expecting(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2219-
f.write_str(concat!("\"", stringify!($variant), "\""))
2220-
}
2221-
fn visit_str<E: serde::de::Error>(self, value: &str) -> Result<Self::Value, E> {
2222-
if value == stringify!($variant) {
2223-
Ok(())
2224-
} else {
2225-
Err(E::invalid_value(serde::de::Unexpected::Str(value), &self))
2226-
}
2227-
}
2228-
}
2229-
deserializer.deserialize_str(V)
2230-
}
2231-
pub(in super::super) fn serialize<S>(serializer: S) -> Result<S::Ok, S::Error>
2232-
where
2233-
S: serde::Serializer,
2234-
{
2235-
serializer.serialize_str(stringify!($variant))
2236-
}
2237-
}
2238-
};
2239-
}
2240-
2241-
mod unit_v {
2242-
named_unit_variant!(all);
2243-
named_unit_variant!(skip_trivial);
2244-
named_unit_variant!(mutable);
2245-
named_unit_variant!(reborrow);
2246-
named_unit_variant!(fieldless);
2247-
named_unit_variant!(with_block);
2248-
named_unit_variant!(decimal);
2249-
named_unit_variant!(hexadecimal);
2250-
named_unit_variant!(both);
2251-
}
2252-
22532206
#[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq)]
22542207
#[serde(rename_all = "snake_case")]
22552208
#[derive(Default)]
@@ -2364,10 +2317,10 @@ pub(crate) enum CallableCompletionDef {
23642317
}
23652318

23662319
#[derive(Serialize, Deserialize, Debug, Clone)]
2367-
#[serde(untagged)]
2320+
#[serde(rename_all = "snake_case")]
23682321
enum CargoFeaturesDef {
2369-
#[serde(with = "unit_v::all")]
23702322
All,
2323+
#[serde(untagged)]
23712324
Selected(Vec<String>),
23722325
}
23732326

@@ -2389,24 +2342,22 @@ enum InvocationLocation {
23892342
}
23902343

23912344
#[derive(Serialize, Deserialize, Debug, Clone)]
2392-
#[serde(untagged)]
2345+
#[serde(rename_all = "snake_case")]
23932346
enum LifetimeElisionDef {
2394-
#[serde(with = "true_or_always")]
2347+
#[serde(alias = "true")]
23952348
Always,
2396-
#[serde(with = "false_or_never")]
2349+
#[serde(alias = "false")]
23972350
Never,
2398-
#[serde(with = "unit_v::skip_trivial")]
23992351
SkipTrivial,
24002352
}
24012353

24022354
#[derive(Serialize, Deserialize, Debug, Clone)]
2403-
#[serde(untagged)]
2355+
#[serde(rename_all = "snake_case")]
24042356
enum ClosureReturnTypeHintsDef {
24052357
#[serde(with = "true_or_always")]
24062358
Always,
24072359
#[serde(with = "false_or_never")]
24082360
Never,
2409-
#[serde(with = "unit_v::with_block")]
24102361
WithBlock,
24112362
}
24122363

@@ -2420,35 +2371,32 @@ enum ClosureStyle {
24202371
}
24212372

24222373
#[derive(Serialize, Deserialize, Debug, Clone)]
2423-
#[serde(untagged)]
2374+
#[serde(rename_all = "snake_case")]
24242375
enum ReborrowHintsDef {
24252376
#[serde(with = "true_or_always")]
24262377
Always,
24272378
#[serde(with = "false_or_never")]
24282379
Never,
2429-
#[serde(with = "unit_v::mutable")]
24302380
Mutable,
24312381
}
24322382

24332383
#[derive(Serialize, Deserialize, Debug, Clone)]
2434-
#[serde(untagged)]
2384+
#[serde(rename_all = "snake_case")]
24352385
enum AdjustmentHintsDef {
24362386
#[serde(with = "true_or_always")]
24372387
Always,
24382388
#[serde(with = "false_or_never")]
24392389
Never,
2440-
#[serde(with = "unit_v::reborrow")]
24412390
Reborrow,
24422391
}
24432392

24442393
#[derive(Serialize, Deserialize, Debug, Clone)]
2445-
#[serde(untagged)]
2394+
#[serde(rename_all = "snake_case")]
24462395
enum DiscriminantHintsDef {
24472396
#[serde(with = "true_or_always")]
24482397
Always,
24492398
#[serde(with = "false_or_never")]
24502399
Never,
2451-
#[serde(with = "unit_v::fieldless")]
24522400
Fieldless,
24532401
}
24542402

@@ -2473,9 +2421,11 @@ enum FilesWatcherDef {
24732421
#[serde(rename_all = "snake_case")]
24742422
enum ImportPrefixDef {
24752423
Plain,
2476-
#[serde(alias = "self")]
2424+
#[serde(rename = "self")]
2425+
#[serde(alias = "by_self")]
24772426
BySelf,
2478-
#[serde(alias = "crate")]
2427+
#[serde(rename = "crate")]
2428+
#[serde(alias = "by_crate")]
24792429
ByCrate,
24802430
}
24812431

@@ -2502,13 +2452,9 @@ enum WorkspaceSymbolSearchKindDef {
25022452

25032453
#[derive(Serialize, Deserialize, Debug, Copy, Clone, PartialEq)]
25042454
#[serde(rename_all = "snake_case")]
2505-
#[serde(untagged)]
25062455
enum MemoryLayoutHoverRenderKindDef {
2507-
#[serde(with = "unit_v::decimal")]
25082456
Decimal,
2509-
#[serde(with = "unit_v::hexadecimal")]
25102457
Hexadecimal,
2511-
#[serde(with = "unit_v::both")]
25122458
Both,
25132459
}
25142460

docs/user/generated_config.adoc

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Term search fuel in "units of work" for assists (Defaults to 400).
1919
--
2020
Warm up caches on project load.
2121
--
22-
[[rust-analyzer.cachePriming.numThreads]]rust-analyzer.cachePriming.numThreads (default: `0`)::
22+
[[rust-analyzer.cachePriming.numThreads]]rust-analyzer.cachePriming.numThreads (default: `null`)::
2323
+
2424
--
2525
How many worker threads to handle priming caches. The default `0` means to pick automatically.
@@ -615,25 +615,46 @@ to always show them).
615615
--
616616
Whether to show inlay hints for closure captures.
617617
--
618-
[[rust-analyzer.inlayHints.closureReturnTypeHints.enable]]rust-analyzer.inlayHints.closureReturnTypeHints.enable (default: `"never"`)::
618+
[[rust-analyzer.inlayHints.closureReturnTypeHints.enable]]rust-analyzer.inlayHints.closureReturnTypeHints.enable::
619619
+
620620
--
621+
Default:
622+
----
623+
{
624+
"never": "never"
625+
}
626+
----
621627
Whether to show inlay type hints for return types of closures.
628+
622629
--
623630
[[rust-analyzer.inlayHints.closureStyle]]rust-analyzer.inlayHints.closureStyle (default: `"impl_fn"`)::
624631
+
625632
--
626633
Closure notation in type and chaining inlay hints.
627634
--
628-
[[rust-analyzer.inlayHints.discriminantHints.enable]]rust-analyzer.inlayHints.discriminantHints.enable (default: `"never"`)::
635+
[[rust-analyzer.inlayHints.discriminantHints.enable]]rust-analyzer.inlayHints.discriminantHints.enable::
629636
+
630637
--
638+
Default:
639+
----
640+
{
641+
"never": "never"
642+
}
643+
----
631644
Whether to show enum variant discriminant hints.
645+
632646
--
633-
[[rust-analyzer.inlayHints.expressionAdjustmentHints.enable]]rust-analyzer.inlayHints.expressionAdjustmentHints.enable (default: `"never"`)::
647+
[[rust-analyzer.inlayHints.expressionAdjustmentHints.enable]]rust-analyzer.inlayHints.expressionAdjustmentHints.enable::
634648
+
635649
--
650+
Default:
651+
----
652+
{
653+
"never": "never"
654+
}
655+
----
636656
Whether to show inlay hints for type adjustments.
657+
637658
--
638659
[[rust-analyzer.inlayHints.expressionAdjustmentHints.hideOutsideUnsafe]]rust-analyzer.inlayHints.expressionAdjustmentHints.hideOutsideUnsafe (default: `false`)::
639660
+
@@ -676,11 +697,18 @@ site.
676697
--
677698
Whether to show exclusive range inlay hints.
678699
--
679-
[[rust-analyzer.inlayHints.reborrowHints.enable]]rust-analyzer.inlayHints.reborrowHints.enable (default: `"never"`)::
700+
[[rust-analyzer.inlayHints.reborrowHints.enable]]rust-analyzer.inlayHints.reborrowHints.enable::
680701
+
681702
--
703+
Default:
704+
----
705+
{
706+
"never": "never"
707+
}
708+
----
682709
Whether to show inlay hints for compiler inserted reborrows.
683710
This setting is deprecated in favor of #rust-analyzer.inlayHints.expressionAdjustmentHints.enable#.
711+
684712
--
685713
[[rust-analyzer.inlayHints.renderColons]]rust-analyzer.inlayHints.renderColons (default: `true`)::
686714
+

0 commit comments

Comments
 (0)