about summary refs log tree commit diff
diff options
context:
space:
mode:
authorChosenName <69129796+ChosenName@users.noreply.github.com>2024-06-04 21:09:21 -0600
committerGitHub <noreply@github.com>2024-06-04 21:09:21 -0600
commitdc1074862bdf778c334cea525cb4a9a10d347f32 (patch)
tree49281a7f40e61a83af8d75c8473091d8ba5aa118
parentb885cea9893627bb52de5db611b150996815d632 (diff)
downloadrust-dc1074862bdf778c334cea525cb4a9a10d347f32.tar.gz
rust-dc1074862bdf778c334cea525cb4a9a10d347f32.zip
Update config.rs
-rw-r--r--src/tools/rust-analyzer/crates/rust-analyzer/src/config.rs20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/tools/rust-analyzer/crates/rust-analyzer/src/config.rs b/src/tools/rust-analyzer/crates/rust-analyzer/src/config.rs
index a8d1e72aed9..df8cba0ae3c 100644
--- a/src/tools/rust-analyzer/crates/rust-analyzer/src/config.rs
+++ b/src/tools/rust-analyzer/crates/rust-analyzer/src/config.rs
@@ -2634,11 +2634,19 @@ fn schema(fields: &[SchemaField]) -> serde_json::Value {
         .iter()
         .map(|(field, ty, doc, default)| {
             let name = field.replace('_', ".");
+            let catagory = name.find('.').map(|end| {
+                String::from(&name[..end])
+            }).unwrap_or("general".into());
             let name = format!("rust-analyzer.{name}");
             let props = field_props(field, ty, doc, default);
-            (name, props)
+            serde_json::json!({
+                "title": catagory,
+                "properties": {
+                    name: props
+                }
+            })
         })
-        .collect::<serde_json::Map<_, _>>();
+        .collect::<Vec<_>>();
     map.into()
 }
 
@@ -3037,8 +3045,8 @@ mod tests {
         let s = Config::json_schema();
         let schema = format!("{s:#}");
         let mut schema = schema
-            .trim_start_matches('{')
-            .trim_end_matches('}')
+            .trim_start_matches('[')
+            .trim_end_matches(']')
             .replace("  ", "    ")
             .replace('\n', "\n            ")
             .trim_start_matches('\n')
@@ -3072,8 +3080,8 @@ mod tests {
         let package_json_path = project_root().join("editors/code/package.json");
         let mut package_json = fs::read_to_string(&package_json_path).unwrap();
 
-        let start_marker = "                \"$generated-start\": {},\n";
-        let end_marker = "                \"$generated-end\": {}\n";
+        let start_marker = "            { \"title\": \"$generated-start\" },\n";
+        let end_marker = "            { \"title\": \"$generated-end\" }\n";
 
         let start = package_json.find(start_marker).unwrap() + start_marker.len();
         let end = package_json.find(end_marker).unwrap();