]> git.lizzy.rs Git - rust.git/blob - editors/code/package.json
fix: Fix incorrect hover actions config keys
[rust.git] / editors / code / package.json
1 {
2     "name": "rust-analyzer",
3     "displayName": "rust-analyzer",
4     "description": "A language server for the rust programming language",
5     "preview": true,
6     "private": true,
7     "icon": "icon.png",
8     "version": "0.4.0-dev",
9     "releaseTag": null,
10     "publisher": "rust-lang",
11     "repository": {
12         "url": "https://github.com/rust-analyzer/rust-analyzer.git",
13         "type": "git"
14     },
15     "homepage": "https://rust-analyzer.github.io/",
16     "license": "MIT OR Apache-2.0",
17     "keywords": [
18         "rust"
19     ],
20     "categories": [
21         "Programming Languages"
22     ],
23     "engines": {
24         "vscode": "^1.66.0"
25     },
26     "enabledApiProposals": [],
27     "scripts": {
28         "vscode:prepublish": "npm run build-base -- --minify",
29         "package": "vsce package -o rust-analyzer.vsix",
30         "build-base": "esbuild ./src/main.ts --bundle --outfile=out/main.js --external:vscode --format=cjs --platform=node --target=node16",
31         "build": "npm run build-base -- --sourcemap",
32         "watch": "npm run build-base -- --sourcemap --watch",
33         "lint": "tsfmt --verify && eslint -c .eslintrc.js --ext ts ./src ./tests",
34         "fix": " tsfmt -r       && eslint -c .eslintrc.js --ext ts ./src ./tests --fix",
35         "pretest": "tsc && npm run build",
36         "test": "cross-env TEST_VARIABLE=test node ./out/tests/runTests.js"
37     },
38     "dependencies": {
39         "d3": "^7.3.0",
40         "d3-graphviz": "^4.1.0",
41         "vscode-languageclient": "8.0.0-next.14"
42     },
43     "devDependencies": {
44         "@types/node": "~14.17.5",
45         "@types/vscode": "~1.66.0",
46         "@typescript-eslint/eslint-plugin": "^5.16.0",
47         "@typescript-eslint/parser": "^5.16.0",
48         "@vscode/test-electron": "^2.1.3",
49         "cross-env": "^7.0.3",
50         "esbuild": "^0.14.27",
51         "eslint": "^8.11.0",
52         "tslib": "^2.3.0",
53         "typescript": "^4.6.3",
54         "typescript-formatter": "^7.2.2",
55         "vsce": "^2.7.0"
56     },
57     "activationEvents": [
58         "onLanguage:rust",
59         "onCommand:rust-analyzer.analyzerStatus",
60         "onCommand:rust-analyzer.memoryUsage",
61         "onCommand:rust-analyzer.reloadWorkspace",
62         "workspaceContains:*/Cargo.toml",
63         "workspaceContains:*/rust-project.json"
64     ],
65     "main": "./out/main",
66     "contributes": {
67         "taskDefinitions": [
68             {
69                 "type": "cargo",
70                 "required": [
71                     "command"
72                 ],
73                 "properties": {
74                     "label": {
75                         "type": "string"
76                     },
77                     "command": {
78                         "type": "string"
79                     },
80                     "args": {
81                         "type": "array",
82                         "items": {
83                             "type": "string"
84                         }
85                     },
86                     "env": {
87                         "type": "object",
88                         "patternProperties": {
89                             ".+": {
90                                 "type": "string"
91                             }
92                         }
93                     }
94                 }
95             }
96         ],
97         "commands": [
98             {
99                 "command": "rust-analyzer.syntaxTree",
100                 "title": "Show Syntax Tree",
101                 "category": "Rust Analyzer"
102             },
103             {
104                 "command": "rust-analyzer.viewHir",
105                 "title": "View Hir",
106                 "category": "Rust Analyzer"
107             },
108             {
109                 "command": "rust-analyzer.viewFileText",
110                 "title": "View File Text (as seen by the server)",
111                 "category": "Rust Analyzer"
112             },
113             {
114                 "command": "rust-analyzer.viewItemTree",
115                 "title": "Debug ItemTree",
116                 "category": "Rust Analyzer"
117             },
118             {
119                 "command": "rust-analyzer.viewCrateGraph",
120                 "title": "View Crate Graph",
121                 "category": "Rust Analyzer"
122             },
123             {
124                 "command": "rust-analyzer.viewFullCrateGraph",
125                 "title": "View Crate Graph (Full)",
126                 "category": "Rust Analyzer"
127             },
128             {
129                 "command": "rust-analyzer.expandMacro",
130                 "title": "Expand macro recursively",
131                 "category": "Rust Analyzer"
132             },
133             {
134                 "command": "rust-analyzer.matchingBrace",
135                 "title": "Find matching brace",
136                 "category": "Rust Analyzer"
137             },
138             {
139                 "command": "rust-analyzer.parentModule",
140                 "title": "Locate parent module",
141                 "category": "Rust Analyzer"
142             },
143             {
144                 "command": "rust-analyzer.joinLines",
145                 "title": "Join lines",
146                 "category": "Rust Analyzer"
147             },
148             {
149                 "command": "rust-analyzer.run",
150                 "title": "Run",
151                 "category": "Rust Analyzer"
152             },
153             {
154                 "command": "rust-analyzer.copyRunCommandLine",
155                 "title": "Copy Run Command Line",
156                 "category": "Rust Analyzer"
157             },
158             {
159                 "command": "rust-analyzer.debug",
160                 "title": "Debug",
161                 "category": "Rust Analyzer"
162             },
163             {
164                 "command": "rust-analyzer.newDebugConfig",
165                 "title": "Generate launch configuration",
166                 "category": "Rust Analyzer"
167             },
168             {
169                 "command": "rust-analyzer.analyzerStatus",
170                 "title": "Status",
171                 "category": "Rust Analyzer"
172             },
173             {
174                 "command": "rust-analyzer.memoryUsage",
175                 "title": "Memory Usage (Clears Database)",
176                 "category": "Rust Analyzer"
177             },
178             {
179                 "command": "rust-analyzer.shuffleCrateGraph",
180                 "title": "Shuffle Crate Graph",
181                 "category": "Rust Analyzer"
182             },
183             {
184                 "command": "rust-analyzer.reloadWorkspace",
185                 "title": "Reload workspace",
186                 "category": "Rust Analyzer"
187             },
188             {
189                 "command": "rust-analyzer.reload",
190                 "title": "Restart server",
191                 "category": "Rust Analyzer"
192             },
193             {
194                 "command": "rust-analyzer.onEnter",
195                 "title": "Enhanced enter key",
196                 "category": "Rust Analyzer"
197             },
198             {
199                 "command": "rust-analyzer.ssr",
200                 "title": "Structural Search Replace",
201                 "category": "Rust Analyzer"
202             },
203             {
204                 "command": "rust-analyzer.serverVersion",
205                 "title": "Show RA Version",
206                 "category": "Rust Analyzer"
207             },
208             {
209                 "command": "rust-analyzer.toggleInlayHints",
210                 "title": "Toggle inlay hints",
211                 "category": "Rust Analyzer"
212             },
213             {
214                 "command": "rust-analyzer.openDocs",
215                 "title": "Open docs under cursor",
216                 "category": "Rust Analyzer"
217             },
218             {
219                 "command": "rust-analyzer.openCargoToml",
220                 "title": "Open Cargo.toml",
221                 "category": "Rust Analyzer"
222             },
223             {
224                 "command": "rust-analyzer.peekTests",
225                 "title": "Peek related tests",
226                 "category": "Rust Analyzer"
227             },
228             {
229                 "command": "rust-analyzer.moveItemUp",
230                 "title": "Move item up",
231                 "category": "Rust Analyzer"
232             },
233             {
234                 "command": "rust-analyzer.moveItemDown",
235                 "title": "Move item down",
236                 "category": "Rust Analyzer"
237             }
238         ],
239         "keybindings": [
240             {
241                 "command": "rust-analyzer.parentModule",
242                 "key": "ctrl+shift+u",
243                 "when": "editorTextFocus && editorLangId == rust"
244             },
245             {
246                 "command": "rust-analyzer.matchingBrace",
247                 "key": "ctrl+shift+m",
248                 "when": "editorTextFocus && editorLangId == rust"
249             },
250             {
251                 "command": "rust-analyzer.joinLines",
252                 "key": "ctrl+shift+j",
253                 "when": "editorTextFocus && editorLangId == rust"
254             }
255         ],
256         "configuration": {
257             "type": "object",
258             "title": "Rust Analyzer",
259             "properties": {
260                 "rust-analyzer.cargoRunner": {
261                     "type": [
262                         "null",
263                         "string"
264                     ],
265                     "default": null,
266                     "description": "Custom cargo runner extension ID."
267                 },
268                 "rust-analyzer.runnableEnv": {
269                     "anyOf": [
270                         {
271                             "type": "null"
272                         },
273                         {
274                             "type": "array",
275                             "items": {
276                                 "type": "object",
277                                 "properties": {
278                                     "mask": {
279                                         "type": "string",
280                                         "description": "Runnable name mask"
281                                     },
282                                     "env": {
283                                         "type": "object",
284                                         "description": "Variables in form of { \"key\": \"value\"}"
285                                     }
286                                 }
287                             }
288                         },
289                         {
290                             "type": "object",
291                             "description": "Variables in form of { \"key\": \"value\"}"
292                         }
293                     ],
294                     "default": null,
295                     "markdownDescription": "Environment variables passed to the runnable launched using `Test` or `Debug` lens or `rust-analyzer.run` command."
296                 },
297                 "rust-analyzer.server.path": {
298                     "type": [
299                         "null",
300                         "string"
301                     ],
302                     "scope": "machine-overridable",
303                     "default": null,
304                     "markdownDescription": "Path to rust-analyzer executable (points to bundled binary by default)."
305                 },
306                 "rust-analyzer.server.extraEnv": {
307                     "type": [
308                         "null",
309                         "object"
310                     ],
311                     "default": null,
312                     "markdownDescription": "Extra environment variables that will be passed to the rust-analyzer executable. Useful for passing e.g. `RA_LOG` for debugging."
313                 },
314                 "rust-analyzer.trace.server": {
315                     "type": "string",
316                     "scope": "window",
317                     "enum": [
318                         "off",
319                         "messages",
320                         "verbose"
321                     ],
322                     "enumDescriptions": [
323                         "No traces",
324                         "Error only",
325                         "Full log"
326                     ],
327                     "default": "off",
328                     "description": "Trace requests to the rust-analyzer (this is usually overly verbose and not recommended for regular users)."
329                 },
330                 "rust-analyzer.trace.extension": {
331                     "description": "Enable logging of VS Code extensions itself.",
332                     "type": "boolean",
333                     "default": false
334                 },
335                 "rust-analyzer.debug.engine": {
336                     "type": "string",
337                     "enum": [
338                         "auto",
339                         "vadimcn.vscode-lldb",
340                         "ms-vscode.cpptools"
341                     ],
342                     "default": "auto",
343                     "description": "Preferred debug engine.",
344                     "markdownEnumDescriptions": [
345                         "First try to use [CodeLLDB](https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb), if it's not installed try to use [MS C++ tools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools).",
346                         "Use [CodeLLDB](https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb)",
347                         "Use [MS C++ tools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools)"
348                     ]
349                 },
350                 "rust-analyzer.debug.sourceFileMap": {
351                     "type": [
352                         "object",
353                         "string"
354                     ],
355                     "const": "auto",
356                     "description": "Optional source file mappings passed to the debug engine.",
357                     "default": {
358                         "/rustc/<id>": "${env:USERPROFILE}/.rustup/toolchains/<toolchain-id>/lib/rustlib/src/rust"
359                     }
360                 },
361                 "rust-analyzer.debug.openDebugPane": {
362                     "markdownDescription": "Whether to open up the `Debug Panel` on debugging start.",
363                     "type": "boolean",
364                     "default": false
365                 },
366                 "rust-analyzer.debug.engineSettings": {
367                     "type": "object",
368                     "default": {},
369                     "markdownDescription": "Optional settings passed to the debug engine. Example: `{ \"lldb\": { \"terminal\":\"external\"} }`"
370                 },
371                 "$generated-start": {},
372                 "rust-analyzer.assist.expressionFillDefault": {
373                     "markdownDescription": "Placeholder expression to use for missing expressions in assists.",
374                     "default": "todo",
375                     "type": "string",
376                     "enum": [
377                         "todo",
378                         "default"
379                     ],
380                     "enumDescriptions": [
381                         "Fill missing expressions with the `todo` macro",
382                         "Fill missing expressions with reasonable defaults, `new` or `default` constructors."
383                     ]
384                 },
385                 "rust-analyzer.cachePriming.enable": {
386                     "markdownDescription": "Warm up caches on project load.",
387                     "default": true,
388                     "type": "boolean"
389                 },
390                 "rust-analyzer.cachePriming.numThreads": {
391                     "markdownDescription": "How many worker threads to to handle priming caches. The default `0` means to pick automatically.",
392                     "default": 0,
393                     "type": "number",
394                     "minimum": 0,
395                     "maximum": 255
396                 },
397                 "rust-analyzer.cargo.autoreload": {
398                     "markdownDescription": "Automatically refresh project info via `cargo metadata` on\n`Cargo.toml` or `.cargo/config.toml` changes.",
399                     "default": true,
400                     "type": "boolean"
401                 },
402                 "rust-analyzer.cargo.buildScripts.enable": {
403                     "markdownDescription": "Run build scripts (`build.rs`) for more precise code analysis.",
404                     "default": true,
405                     "type": "boolean"
406                 },
407                 "rust-analyzer.cargo.buildScripts.overrideCommand": {
408                     "markdownDescription": "Override the command rust-analyzer uses to run build scripts and\nbuild procedural macros. The command is required to output json\nand should therefor include `--message-format=json` or a similar\noption.\n\nBy default, a cargo invocation will be constructed for the configured\ntargets and features, with the following base command line:\n\n```bash\ncargo check --quiet --workspace --message-format=json --all-targets\n```\n.",
409                     "default": null,
410                     "type": [
411                         "null",
412                         "array"
413                     ],
414                     "items": {
415                         "type": "string"
416                     }
417                 },
418                 "rust-analyzer.cargo.buildScripts.useRustcWrapper": {
419                     "markdownDescription": "Use `RUSTC_WRAPPER=rust-analyzer` when running build scripts to\navoid compiling unnecessary things.",
420                     "default": true,
421                     "type": "boolean"
422                 },
423                 "rust-analyzer.cargo.features": {
424                     "markdownDescription": "List of features to activate.\n\nSet this to `\"all\"` to pass `--all-features` to cargo.",
425                     "default": [],
426                     "type": [
427                         "string",
428                         "array"
429                     ],
430                     "items": {
431                         "type": "string"
432                     },
433                     "enum": [
434                         "all"
435                     ],
436                     "enumDescriptions": [
437                         "Pass `--all-features` to cargo"
438                     ]
439                 },
440                 "rust-analyzer.cargo.noDefaultFeatures": {
441                     "markdownDescription": "Whether to pass `--no-default-features` to cargo.",
442                     "default": false,
443                     "type": "boolean"
444                 },
445                 "rust-analyzer.cargo.noSysroot": {
446                     "markdownDescription": "Internal config for debugging, disables loading of sysroot crates.",
447                     "default": false,
448                     "type": "boolean"
449                 },
450                 "rust-analyzer.cargo.target": {
451                     "markdownDescription": "Compilation target override (target triple).",
452                     "default": null,
453                     "type": [
454                         "null",
455                         "string"
456                     ]
457                 },
458                 "rust-analyzer.cargo.unsetTest": {
459                     "markdownDescription": "Unsets `#[cfg(test)]` for the specified crates.",
460                     "default": [
461                         "core"
462                     ],
463                     "type": "array",
464                     "items": {
465                         "type": "string"
466                     }
467                 },
468                 "rust-analyzer.checkOnSave.allTargets": {
469                     "markdownDescription": "Check all targets and tests (`--all-targets`).",
470                     "default": true,
471                     "type": "boolean"
472                 },
473                 "rust-analyzer.checkOnSave.command": {
474                     "markdownDescription": "Cargo command to use for `cargo check`.",
475                     "default": "check",
476                     "type": "string"
477                 },
478                 "rust-analyzer.checkOnSave.enable": {
479                     "markdownDescription": "Run specified `cargo check` command for diagnostics on save.",
480                     "default": true,
481                     "type": "boolean"
482                 },
483                 "rust-analyzer.checkOnSave.extraArgs": {
484                     "markdownDescription": "Extra arguments for `cargo check`.",
485                     "default": [],
486                     "type": "array",
487                     "items": {
488                         "type": "string"
489                     }
490                 },
491                 "rust-analyzer.checkOnSave.features": {
492                     "markdownDescription": "List of features to activate. Defaults to\n`#rust-analyzer.cargo.features#`.\n\nSet to `\"all\"` to pass `--all-features` to cargo.",
493                     "default": null,
494                     "anyOf": [
495                         {
496                             "type": "string",
497                             "enum": [
498                                 "all"
499                             ],
500                             "enumDescriptions": [
501                                 "Pass `--all-features` to cargo"
502                             ]
503                         },
504                         {
505                             "type": "array",
506                             "items": {
507                                 "type": "string"
508                             }
509                         },
510                         {
511                             "type": "null"
512                         }
513                     ]
514                 },
515                 "rust-analyzer.checkOnSave.noDefaultFeatures": {
516                     "markdownDescription": "Do not activate the `default` feature.",
517                     "default": null,
518                     "type": [
519                         "null",
520                         "boolean"
521                     ]
522                 },
523                 "rust-analyzer.checkOnSave.overrideCommand": {
524                     "markdownDescription": "Override the command rust-analyzer uses to    run build scripts and\nbuild procedural macros. The command is required to output json\nand should therefor include `--message-format=json` or a similar\noption.\n\nAn example command would be:\n\n```bash\ncargo check --workspace --message-format=json --all-targets\n```\n.",
525                     "default": null,
526                     "type": [
527                         "null",
528                         "array"
529                     ],
530                     "items": {
531                         "type": "string"
532                     }
533                 },
534                 "rust-analyzer.checkOnSave.target": {
535                     "markdownDescription": "Check for a specific target. Defaults to\n`#rust-analyzer.cargo.target#`.",
536                     "default": null,
537                     "type": [
538                         "null",
539                         "string"
540                     ]
541                 },
542                 "rust-analyzer.completion.autoimport.enable": {
543                     "markdownDescription": "Toggles the additional completions that automatically add imports when completed.\nNote that your client must specify the `additionalTextEdits` LSP client capability to truly have this feature enabled.",
544                     "default": true,
545                     "type": "boolean"
546                 },
547                 "rust-analyzer.completion.autoself.enable": {
548                     "markdownDescription": "Toggles the additional completions that automatically show method calls and field accesses\nwith `self` prefixed to them when inside a method.",
549                     "default": true,
550                     "type": "boolean"
551                 },
552                 "rust-analyzer.completion.callable.snippets": {
553                     "markdownDescription": "Whether to add parenthesis and argument snippets when completing function.",
554                     "default": "fill_arguments",
555                     "anyOf": [
556                         {
557                             "type": "string",
558                             "enum": [
559                                 "fill_arguments",
560                                 "add_parentheses"
561                             ],
562                             "enumDescriptions": [
563                                 "Add call parentheses and pre-fill arguments",
564                                 "Add call parentheses"
565                             ]
566                         },
567                         {
568                             "type": "null"
569                         }
570                     ]
571                 },
572                 "rust-analyzer.completion.postfix.enable": {
573                     "markdownDescription": "Whether to show postfix snippets like `dbg`, `if`, `not`, etc.",
574                     "default": true,
575                     "type": "boolean"
576                 },
577                 "rust-analyzer.completion.privateEditable.enable": {
578                     "markdownDescription": "Enables completions of private items and fields that are defined in the current workspace even if they are not visible at the current position.",
579                     "default": false,
580                     "type": "boolean"
581                 },
582                 "rust-analyzer.completion.snippets.custom": {
583                     "markdownDescription": "Custom completion snippets.",
584                     "default": {
585                         "Arc::new": {
586                             "postfix": "arc",
587                             "body": "Arc::new(${receiver})",
588                             "requires": "std::sync::Arc",
589                             "description": "Put the expression into an `Arc`",
590                             "scope": "expr"
591                         },
592                         "Rc::new": {
593                             "postfix": "rc",
594                             "body": "Rc::new(${receiver})",
595                             "requires": "std::rc::Rc",
596                             "description": "Put the expression into an `Rc`",
597                             "scope": "expr"
598                         },
599                         "Box::pin": {
600                             "postfix": "pinbox",
601                             "body": "Box::pin(${receiver})",
602                             "requires": "std::boxed::Box",
603                             "description": "Put the expression into a pinned `Box`",
604                             "scope": "expr"
605                         },
606                         "Ok": {
607                             "postfix": "ok",
608                             "body": "Ok(${receiver})",
609                             "description": "Wrap the expression in a `Result::Ok`",
610                             "scope": "expr"
611                         },
612                         "Err": {
613                             "postfix": "err",
614                             "body": "Err(${receiver})",
615                             "description": "Wrap the expression in a `Result::Err`",
616                             "scope": "expr"
617                         },
618                         "Some": {
619                             "postfix": "some",
620                             "body": "Some(${receiver})",
621                             "description": "Wrap the expression in an `Option::Some`",
622                             "scope": "expr"
623                         }
624                     },
625                     "type": "object"
626                 },
627                 "rust-analyzer.diagnostics.disabled": {
628                     "markdownDescription": "List of rust-analyzer diagnostics to disable.",
629                     "default": [],
630                     "type": "array",
631                     "items": {
632                         "type": "string"
633                     },
634                     "uniqueItems": true
635                 },
636                 "rust-analyzer.diagnostics.enable": {
637                     "markdownDescription": "Whether to show native rust-analyzer diagnostics.",
638                     "default": true,
639                     "type": "boolean"
640                 },
641                 "rust-analyzer.diagnostics.experimental.enable": {
642                     "markdownDescription": "Whether to show experimental rust-analyzer diagnostics that might\nhave more false positives than usual.",
643                     "default": false,
644                     "type": "boolean"
645                 },
646                 "rust-analyzer.diagnostics.remapPrefix": {
647                     "markdownDescription": "Map of prefixes to be substituted when parsing diagnostic file paths.\nThis should be the reverse mapping of what is passed to `rustc` as `--remap-path-prefix`.",
648                     "default": {},
649                     "type": "object"
650                 },
651                 "rust-analyzer.diagnostics.warningsAsHint": {
652                     "markdownDescription": "List of warnings that should be displayed with hint severity.\n\nThe warnings will be indicated by faded text or three dots in code\nand will not show up in the `Problems Panel`.",
653                     "default": [],
654                     "type": "array",
655                     "items": {
656                         "type": "string"
657                     }
658                 },
659                 "rust-analyzer.diagnostics.warningsAsInfo": {
660                     "markdownDescription": "List of warnings that should be displayed with info severity.\n\nThe warnings will be indicated by a blue squiggly underline in code\nand a blue icon in the `Problems Panel`.",
661                     "default": [],
662                     "type": "array",
663                     "items": {
664                         "type": "string"
665                     }
666                 },
667                 "rust-analyzer.files.excludeDirs": {
668                     "markdownDescription": "These directories will be ignored by rust-analyzer. They are\nrelative to the workspace root, and globs are not supported. You may\nalso need to add the folders to Code's `files.watcherExclude`.",
669                     "default": [],
670                     "type": "array",
671                     "items": {
672                         "type": "string"
673                     }
674                 },
675                 "rust-analyzer.files.watcher": {
676                     "markdownDescription": "Controls file watching implementation.",
677                     "default": "client",
678                     "type": "string"
679                 },
680                 "rust-analyzer.highlightRelated.breakPoints.enable": {
681                     "markdownDescription": "Enables highlighting of related references while the cursor is on `break`, `loop`, `while`, or `for` keywords.",
682                     "default": true,
683                     "type": "boolean"
684                 },
685                 "rust-analyzer.highlightRelated.exitPoints.enable": {
686                     "markdownDescription": "Enables highlighting of all exit points while the cursor is on any `return`, `?`, `fn`, or return type arrow (`->`).",
687                     "default": true,
688                     "type": "boolean"
689                 },
690                 "rust-analyzer.highlightRelated.references.enable": {
691                     "markdownDescription": "Enables highlighting of related references while the cursor is on any identifier.",
692                     "default": true,
693                     "type": "boolean"
694                 },
695                 "rust-analyzer.highlightRelated.yieldPoints.enable": {
696                     "markdownDescription": "Enables highlighting of all break points for a loop or block context while the cursor is on any `async` or `await` keywords.",
697                     "default": true,
698                     "type": "boolean"
699                 },
700                 "rust-analyzer.hover.actions.debug.enable": {
701                     "markdownDescription": "Whether to show `Debug` action. Only applies when\n`#rust-analyzer.hover.actions.enable#` is set.",
702                     "default": true,
703                     "type": "boolean"
704                 },
705                 "rust-analyzer.hover.actions.enable": {
706                     "markdownDescription": "Whether to show HoverActions in Rust files.",
707                     "default": true,
708                     "type": "boolean"
709                 },
710                 "rust-analyzer.hover.actions.gotoTypeDef.enable": {
711                     "markdownDescription": "Whether to show `Go to Type Definition` action. Only applies when\n`#rust-analyzer.hover.actions.enable#` is set.",
712                     "default": true,
713                     "type": "boolean"
714                 },
715                 "rust-analyzer.hover.actions.implementations.enable": {
716                     "markdownDescription": "Whether to show `Implementations` action. Only applies when\n`#rust-analyzer.hover.actions.enable#` is set.",
717                     "default": true,
718                     "type": "boolean"
719                 },
720                 "rust-analyzer.hover.actions.references.enable": {
721                     "markdownDescription": "Whether to show `References` action. Only applies when\n`#rust-analyzer.hover.actions.enable#` is set.",
722                     "default": false,
723                     "type": "boolean"
724                 },
725                 "rust-analyzer.hover.actions.run.enable": {
726                     "markdownDescription": "Whether to show `Run` action. Only applies when\n`#rust-analyzer.hover.actions.enable#` is set.",
727                     "default": true,
728                     "type": "boolean"
729                 },
730                 "rust-analyzer.hover.documentation.enable": {
731                     "markdownDescription": "Whether to show documentation on hover.",
732                     "default": true,
733                     "type": "boolean"
734                 },
735                 "rust-analyzer.hover.links.enable": {
736                     "markdownDescription": "Use markdown syntax for links in hover.",
737                     "default": true,
738                     "type": "boolean"
739                 },
740                 "rust-analyzer.imports.granularity.enforce": {
741                     "markdownDescription": "Whether to enforce the import granularity setting for all files. If set to false rust-analyzer will try to keep import styles consistent per file.",
742                     "default": false,
743                     "type": "boolean"
744                 },
745                 "rust-analyzer.imports.granularity.group": {
746                     "markdownDescription": "How imports should be grouped into use statements.",
747                     "default": "crate",
748                     "type": "string",
749                     "enum": [
750                         "preserve",
751                         "crate",
752                         "module",
753                         "item"
754                     ],
755                     "enumDescriptions": [
756                         "Do not change the granularity of any imports and preserve the original structure written by the developer.",
757                         "Merge imports from the same crate into a single use statement. Conversely, imports from different crates are split into separate statements.",
758                         "Merge imports from the same module into a single use statement. Conversely, imports from different modules are split into separate statements.",
759                         "Flatten imports so that each has its own use statement."
760                     ]
761                 },
762                 "rust-analyzer.imports.group.enable": {
763                     "markdownDescription": "Group inserted imports by the [following order](https://rust-analyzer.github.io/manual.html#auto-import). Groups are separated by newlines.",
764                     "default": true,
765                     "type": "boolean"
766                 },
767                 "rust-analyzer.imports.merge.glob": {
768                     "markdownDescription": "Whether to allow import insertion to merge new imports into single path glob imports like `use std::fmt::*;`.",
769                     "default": true,
770                     "type": "boolean"
771                 },
772                 "rust-analyzer.imports.prefix": {
773                     "markdownDescription": "The path structure for newly inserted paths to use.",
774                     "default": "plain",
775                     "type": "string",
776                     "enum": [
777                         "plain",
778                         "self",
779                         "crate"
780                     ],
781                     "enumDescriptions": [
782                         "Insert import paths relative to the current module, using up to one `super` prefix if the parent module contains the requested item.",
783                         "Insert import paths relative to the current module, using up to one `super` prefix if the parent module contains the requested item. Prefixes `self` in front of the path if it starts with a module.",
784                         "Force import paths to be absolute by always starting them with `crate` or the extern crate name they come from."
785                     ]
786                 },
787                 "rust-analyzer.inlayHints.chainingHints.enable": {
788                     "markdownDescription": "Whether to show inlay type hints for method chains.",
789                     "default": true,
790                     "type": "boolean"
791                 },
792                 "rust-analyzer.inlayHints.closureReturnTypeHints.enable": {
793                     "markdownDescription": "Whether to show inlay type hints for return types of closures with blocks.",
794                     "default": false,
795                     "type": "boolean"
796                 },
797                 "rust-analyzer.inlayHints.lifetimeElisionHints.enable": {
798                     "markdownDescription": "Whether to show inlay type hints for elided lifetimes in function signatures.",
799                     "default": "never",
800                     "anyOf": [
801                         {
802                             "type": "string",
803                             "enum": [
804                                 "always",
805                                 "never",
806                                 "skip_trivial"
807                             ],
808                             "enumDescriptions": [
809                                 "Always show lifetime elision hints.",
810                                 "Never show lifetime elision hints.",
811                                 "Only show lifetime elision hints if a return type is involved."
812                             ]
813                         },
814                         {
815                             "type": "boolean"
816                         }
817                     ]
818                 },
819                 "rust-analyzer.inlayHints.lifetimeElisionHints.useParameterNames": {
820                     "markdownDescription": "Whether to prefer using parameter names as the name for elided lifetime hints if possible.",
821                     "default": false,
822                     "type": "boolean"
823                 },
824                 "rust-analyzer.inlayHints.maxLength": {
825                     "markdownDescription": "Maximum length for inlay hints. Set to null to have an unlimited length.",
826                     "default": 25,
827                     "type": [
828                         "null",
829                         "integer"
830                     ],
831                     "minimum": 0
832                 },
833                 "rust-analyzer.inlayHints.parameterHints.enable": {
834                     "markdownDescription": "Whether to show function parameter name inlay hints at the call\nsite.",
835                     "default": true,
836                     "type": "boolean"
837                 },
838                 "rust-analyzer.inlayHints.reborrowHints.enable": {
839                     "markdownDescription": "Whether to show inlay type hints for compiler inserted reborrows.",
840                     "default": "never",
841                     "anyOf": [
842                         {
843                             "type": "string",
844                             "enum": [
845                                 "always",
846                                 "never",
847                                 "mutable"
848                             ],
849                             "enumDescriptions": [
850                                 "Always show reborrow hints.",
851                                 "Never show reborrow hints.",
852                                 "Only show mutable reborrow hints."
853                             ]
854                         },
855                         {
856                             "type": "boolean"
857                         }
858                     ]
859                 },
860                 "rust-analyzer.inlayHints.renderColons": {
861                     "markdownDescription": "Whether to render leading colons for type hints, and trailing colons for parameter hints.",
862                     "default": true,
863                     "type": "boolean"
864                 },
865                 "rust-analyzer.inlayHints.typeHints.enable": {
866                     "markdownDescription": "Whether to show inlay type hints for variables.",
867                     "default": true,
868                     "type": "boolean"
869                 },
870                 "rust-analyzer.inlayHints.typeHints.hideNamedConstructor": {
871                     "markdownDescription": "Whether to hide inlay type hints for constructors.",
872                     "default": false,
873                     "type": "boolean"
874                 },
875                 "rust-analyzer.joinLines.joinAssignments": {
876                     "markdownDescription": "Join lines merges consecutive declaration and initialization of an assignment.",
877                     "default": true,
878                     "type": "boolean"
879                 },
880                 "rust-analyzer.joinLines.joinElseIf": {
881                     "markdownDescription": "Join lines inserts else between consecutive ifs.",
882                     "default": true,
883                     "type": "boolean"
884                 },
885                 "rust-analyzer.joinLines.removeTrailingComma": {
886                     "markdownDescription": "Join lines removes trailing commas.",
887                     "default": true,
888                     "type": "boolean"
889                 },
890                 "rust-analyzer.joinLines.unwrapTrivialBlock": {
891                     "markdownDescription": "Join lines unwraps trivial blocks.",
892                     "default": true,
893                     "type": "boolean"
894                 },
895                 "rust-analyzer.lens.debug.enable": {
896                     "markdownDescription": "Whether to show `Debug` lens. Only applies when\n`#rust-analyzer.lens.enable#` is set.",
897                     "default": true,
898                     "type": "boolean"
899                 },
900                 "rust-analyzer.lens.enable": {
901                     "markdownDescription": "Whether to show CodeLens in Rust files.",
902                     "default": true,
903                     "type": "boolean"
904                 },
905                 "rust-analyzer.lens.forceCustomCommands": {
906                     "markdownDescription": "Internal config: use custom client-side commands even when the\nclient doesn't set the corresponding capability.",
907                     "default": true,
908                     "type": "boolean"
909                 },
910                 "rust-analyzer.lens.implementations.enable": {
911                     "markdownDescription": "Whether to show `Implementations` lens. Only applies when\n`#rust-analyzer.lens.enable#` is set.",
912                     "default": true,
913                     "type": "boolean"
914                 },
915                 "rust-analyzer.lens.references.adt.enable": {
916                     "markdownDescription": "Whether to show `References` lens for Struct, Enum, and Union.\nOnly applies when `#rust-analyzer.lens.enable#` is set.",
917                     "default": false,
918                     "type": "boolean"
919                 },
920                 "rust-analyzer.lens.references.enumVariant.enable": {
921                     "markdownDescription": "Whether to show `References` lens for Enum Variants.\nOnly applies when `#rust-analyzer.lens.enable#` is set.",
922                     "default": false,
923                     "type": "boolean"
924                 },
925                 "rust-analyzer.lens.references.method.enable": {
926                     "markdownDescription": "Whether to show `Method References` lens. Only applies when\n`#rust-analyzer.lens.enable#` is set.",
927                     "default": false,
928                     "type": "boolean"
929                 },
930                 "rust-analyzer.lens.references.trait.enable": {
931                     "markdownDescription": "Whether to show `References` lens for Trait.\nOnly applies when `#rust-analyzer.lens.enable#` is set.",
932                     "default": false,
933                     "type": "boolean"
934                 },
935                 "rust-analyzer.lens.run.enable": {
936                     "markdownDescription": "Whether to show `Run` lens. Only applies when\n`#rust-analyzer.lens.enable#` is set.",
937                     "default": true,
938                     "type": "boolean"
939                 },
940                 "rust-analyzer.linkedProjects": {
941                     "markdownDescription": "Disable project auto-discovery in favor of explicitly specified set\nof projects.\n\nElements must be paths pointing to `Cargo.toml`,\n`rust-project.json`, or JSON objects in `rust-project.json` format.",
942                     "default": [],
943                     "type": "array",
944                     "items": {
945                         "type": [
946                             "string",
947                             "object"
948                         ]
949                     }
950                 },
951                 "rust-analyzer.lru.capacity": {
952                     "markdownDescription": "Number of syntax trees rust-analyzer keeps in memory. Defaults to 128.",
953                     "default": null,
954                     "type": [
955                         "null",
956                         "integer"
957                     ],
958                     "minimum": 0
959                 },
960                 "rust-analyzer.notifications.cargoTomlNotFound": {
961                     "markdownDescription": "Whether to show `can't find Cargo.toml` error message.",
962                     "default": true,
963                     "type": "boolean"
964                 },
965                 "rust-analyzer.procMacro.attributes.enable": {
966                     "markdownDescription": "Expand attribute macros. Requires `#rust-analyzer.procMacro.enable#` to be set.",
967                     "default": true,
968                     "type": "boolean"
969                 },
970                 "rust-analyzer.procMacro.enable": {
971                     "markdownDescription": "Enable support for procedural macros, implies `#rust-analyzer.cargo.buildScripts.enable#`.",
972                     "default": true,
973                     "type": "boolean"
974                 },
975                 "rust-analyzer.procMacro.ignored": {
976                     "markdownDescription": "These proc-macros will be ignored when trying to expand them.\n\nThis config takes a map of crate names with the exported proc-macro names to ignore as values.",
977                     "default": {},
978                     "type": "object"
979                 },
980                 "rust-analyzer.procMacro.server": {
981                     "markdownDescription": "Internal config, path to proc-macro server executable (typically,\nthis is rust-analyzer itself, but we override this in tests).",
982                     "default": null,
983                     "type": [
984                         "null",
985                         "string"
986                     ]
987                 },
988                 "rust-analyzer.runnables.command": {
989                     "markdownDescription": "Command to be executed instead of 'cargo' for runnables.",
990                     "default": null,
991                     "type": [
992                         "null",
993                         "string"
994                     ]
995                 },
996                 "rust-analyzer.runnables.extraArgs": {
997                     "markdownDescription": "Additional arguments to be passed to cargo for runnables such as\ntests or binaries. For example, it may be `--release`.",
998                     "default": [],
999                     "type": "array",
1000                     "items": {
1001                         "type": "string"
1002                     }
1003                 },
1004                 "rust-analyzer.rustc.source": {
1005                     "markdownDescription": "Path to the Cargo.toml of the rust compiler workspace, for usage in rustc_private\nprojects, or \"discover\" to try to automatically find it if the `rustc-dev` component\nis installed.\n\nAny project which uses rust-analyzer with the rustcPrivate\ncrates must set `[package.metadata.rust-analyzer] rustc_private=true` to use it.\n\nThis option does not take effect until rust-analyzer is restarted.",
1006                     "default": null,
1007                     "type": [
1008                         "null",
1009                         "string"
1010                     ]
1011                 },
1012                 "rust-analyzer.rustfmt.extraArgs": {
1013                     "markdownDescription": "Additional arguments to `rustfmt`.",
1014                     "default": [],
1015                     "type": "array",
1016                     "items": {
1017                         "type": "string"
1018                     }
1019                 },
1020                 "rust-analyzer.rustfmt.overrideCommand": {
1021                     "markdownDescription": "Advanced option, fully override the command rust-analyzer uses for\nformatting.",
1022                     "default": null,
1023                     "type": [
1024                         "null",
1025                         "array"
1026                     ],
1027                     "items": {
1028                         "type": "string"
1029                     }
1030                 },
1031                 "rust-analyzer.rustfmt.rangeFormatting.enable": {
1032                     "markdownDescription": "Enables the use of rustfmt's unstable range formatting command for the\n`textDocument/rangeFormatting` request. The rustfmt option is unstable and only\navailable on a nightly build.",
1033                     "default": false,
1034                     "type": "boolean"
1035                 },
1036                 "rust-analyzer.semanticHighlighting.strings.enable": {
1037                     "markdownDescription": "Use semantic tokens for strings.\n\nIn some editors (e.g. vscode) semantic tokens override other highlighting grammars.\nBy disabling semantic tokens for strings, other grammars can be used to highlight\ntheir contents.",
1038                     "default": true,
1039                     "type": "boolean"
1040                 },
1041                 "rust-analyzer.signatureInfo.detail": {
1042                     "markdownDescription": "Show full signature of the callable. Only shows parameters if disabled.",
1043                     "default": "full",
1044                     "type": "string",
1045                     "enum": [
1046                         "full",
1047                         "parameters"
1048                     ],
1049                     "enumDescriptions": [
1050                         "Show the entire signature.",
1051                         "Show only the parameters."
1052                     ]
1053                 },
1054                 "rust-analyzer.signatureInfo.documentation.enable": {
1055                     "markdownDescription": "Show documentation.",
1056                     "default": true,
1057                     "type": "boolean"
1058                 },
1059                 "rust-analyzer.workspace.symbol.search.kind": {
1060                     "markdownDescription": "Workspace symbol search kind.",
1061                     "default": "only_types",
1062                     "type": "string",
1063                     "enum": [
1064                         "only_types",
1065                         "all_symbols"
1066                     ],
1067                     "enumDescriptions": [
1068                         "Search for types only",
1069                         "Search for all symbols kinds"
1070                     ]
1071                 },
1072                 "rust-analyzer.workspace.symbol.search.limit": {
1073                     "markdownDescription": "Limits the number of items returned from a workspace symbol search (Defaults to 128).\nSome clients like vs-code issue new searches on result filtering and don't require all results to be returned in the initial search.\nOther clients requires all results upfront and might require a higher limit.",
1074                     "default": 128,
1075                     "type": "integer",
1076                     "minimum": 0
1077                 },
1078                 "rust-analyzer.workspace.symbol.search.scope": {
1079                     "markdownDescription": "Workspace symbol search scope.",
1080                     "default": "workspace",
1081                     "type": "string",
1082                     "enum": [
1083                         "workspace",
1084                         "workspace_and_dependencies"
1085                     ],
1086                     "enumDescriptions": [
1087                         "Search in current workspace only",
1088                         "Search in current workspace and dependencies"
1089                     ]
1090                 },
1091                 "$generated-end": {}
1092             }
1093         },
1094         "problemPatterns": [
1095             {
1096                 "name": "rustc",
1097                 "patterns": [
1098                     {
1099                         "regexp": "^(warning|warn|error)(?:\\[(.*?)\\])?: (.*)$",
1100                         "severity": 1,
1101                         "code": 2,
1102                         "message": 3
1103                     },
1104                     {
1105                         "regexp": "^[\\s->=]*(.*?):(\\d*):(\\d*)\\s*$",
1106                         "file": 1,
1107                         "line": 2,
1108                         "column": 3
1109                     }
1110                 ]
1111             },
1112             {
1113                 "name": "rustc-json",
1114                 "patterns": [
1115                     {
1116                         "regexp": "^.*\"message\":{\"message\":\"([^\"]*).*?\"file_name\":\"([^\"]+).*?\"line_start\":(\\d+).*?\"line_end\":(\\d+).*?\"column_start\":(\\d+).*?\"column_end\":(\\d+).*}$",
1117                         "message": 1,
1118                         "file": 2,
1119                         "line": 3,
1120                         "endLine": 4,
1121                         "column": 5,
1122                         "endColumn": 6
1123                     }
1124                 ]
1125             }
1126         ],
1127         "languages": [
1128             {
1129                 "id": "ra_syntax_tree",
1130                 "extensions": [
1131                     ".rast"
1132                 ]
1133             },
1134             {
1135                 "id": "rust",
1136                 "extensions": [
1137                     ".rs"
1138                 ],
1139                 "aliases": [
1140                     "Rust",
1141                     "rs"
1142                 ],
1143                 "configuration": "language-configuration.json"
1144             }
1145         ],
1146         "grammars": [
1147             {
1148                 "language": "ra_syntax_tree",
1149                 "scopeName": "source.ra_syntax_tree",
1150                 "path": "ra_syntax_tree.tmGrammar.json"
1151             }
1152         ],
1153         "problemMatchers": [
1154             {
1155                 "name": "rustc",
1156                 "owner": "rustc",
1157                 "source": "rustc",
1158                 "fileLocation": [
1159                     "autoDetect",
1160                     "${workspaceRoot}"
1161                 ],
1162                 "pattern": "$rustc"
1163             },
1164             {
1165                 "name": "rustc-json",
1166                 "owner": "rustc",
1167                 "source": "rustc",
1168                 "fileLocation": [
1169                     "autoDetect",
1170                     "${workspaceRoot}"
1171                 ],
1172                 "pattern": "$rustc-json"
1173             },
1174             {
1175                 "name": "rustc-watch",
1176                 "owner": "rustc",
1177                 "source": "rustc",
1178                 "fileLocation": [
1179                     "autoDetect",
1180                     "${workspaceRoot}"
1181                 ],
1182                 "background": {
1183                     "beginsPattern": "^\\[Running\\b",
1184                     "endsPattern": "^\\[Finished running\\b"
1185                 },
1186                 "pattern": "$rustc"
1187             }
1188         ],
1189         "colors": [
1190             {
1191                 "id": "rust_analyzer.syntaxTreeBorder",
1192                 "description": "Color of the border displayed in the Rust source code for the selected syntax node (see \"Show Syntax Tree\" command)",
1193                 "defaults": {
1194                     "dark": "#ffffff",
1195                     "light": "#b700ff",
1196                     "highContrast": "#b700ff"
1197                 }
1198             }
1199         ],
1200         "semanticTokenTypes": [
1201             {
1202                 "id": "angle",
1203                 "description": "Style for < or >",
1204                 "superType": "punctuation"
1205             },
1206             {
1207                 "id": "arithmetic",
1208                 "description": "Style for arithmetic operators",
1209                 "superType": "operator"
1210             },
1211             {
1212                 "id": "attribute",
1213                 "description": "Style for attributes"
1214             },
1215             {
1216                 "id": "attributeBracket",
1217                 "description": "Style for attribute invocation brackets, that is the `#[` and `]` tokens",
1218                 "superType": "punctuation"
1219             },
1220             {
1221                 "id": "bitwise",
1222                 "description": "Style for bitwise operators",
1223                 "superType": "operator"
1224             },
1225             {
1226                 "id": "boolean",
1227                 "description": "Style for boolean literals",
1228                 "superType": "keyword"
1229             },
1230             {
1231                 "id": "brace",
1232                 "description": "Style for { or }",
1233                 "superType": "punctuation"
1234             },
1235             {
1236                 "id": "bracket",
1237                 "description": "Style for [ or ]",
1238                 "superType": "punctuation"
1239             },
1240             {
1241                 "id": "builtinAttribute",
1242                 "description": "Style for builtin attributes",
1243                 "superType": "attribute"
1244             },
1245             {
1246                 "id": "builtinType",
1247                 "description": "Style for builtin types",
1248                 "superType": "type"
1249             },
1250             {
1251                 "id": "character",
1252                 "description": "Style for character literals",
1253                 "superType": "string"
1254             },
1255             {
1256                 "id": "colon",
1257                 "description": "Style for :",
1258                 "superType": "punctuation"
1259             },
1260             {
1261                 "id": "comma",
1262                 "description": "Style for ,",
1263                 "superType": "punctuation"
1264             },
1265             {
1266                 "id": "comparison",
1267                 "description": "Style for comparison operators",
1268                 "superType": "operator"
1269             },
1270             {
1271                 "id": "constParameter",
1272                 "description": "Style for const generics"
1273             },
1274             {
1275                 "id": "derive",
1276                 "description": "Style for derives",
1277                 "superType": "attribute"
1278             },
1279             {
1280                 "id": "dot",
1281                 "description": "Style for .",
1282                 "superType": "punctuation"
1283             },
1284             {
1285                 "id": "escapeSequence",
1286                 "description": "Style for char escapes in strings"
1287             },
1288             {
1289                 "id": "formatSpecifier",
1290                 "description": "Style for {} placeholders in format strings"
1291             },
1292             {
1293                 "id": "label",
1294                 "description": "Style for labels"
1295             },
1296             {
1297                 "id": "lifetime",
1298                 "description": "Style for lifetimes"
1299             },
1300             {
1301                 "id": "logical",
1302                 "description": "Style for logic operators",
1303                 "superType": "operator"
1304             },
1305             {
1306                 "id": "macroBang",
1307                 "description": "Style for the ! token of macro calls",
1308                 "superType": "punctuation"
1309             },
1310             {
1311                 "id": "operator",
1312                 "description": "Style for operators",
1313                 "superType": "punctuation"
1314             },
1315             {
1316                 "id": "parenthesis",
1317                 "description": "Style for ( or )",
1318                 "superType": "punctuation"
1319             },
1320             {
1321                 "id": "punctuation",
1322                 "description": "Style for generic punctuation"
1323             },
1324             {
1325                 "id": "selfKeyword",
1326                 "description": "Style for the self keyword",
1327                 "superType": "keyword"
1328             },
1329             {
1330                 "id": "selfTypeKeyword",
1331                 "description": "Style for the self type keyword",
1332                 "superType": "keyword"
1333             },
1334             {
1335                 "id": "semicolon",
1336                 "description": "Style for ;",
1337                 "superType": "punctuation"
1338             },
1339             {
1340                 "id": "typeAlias",
1341                 "description": "Style for type aliases",
1342                 "superType": "type"
1343             },
1344             {
1345                 "id": "union",
1346                 "description": "Style for C-style untagged unions",
1347                 "superType": "type"
1348             },
1349             {
1350                 "id": "unresolvedReference",
1351                 "description": "Style for names which can not be resolved due to compilation errors"
1352             }
1353         ],
1354         "semanticTokenModifiers": [
1355             {
1356                 "id": "async",
1357                 "description": "Style for async functions and the `async` and `await` keywords"
1358             },
1359             {
1360                 "id": "attribute",
1361                 "description": "Style for elements within attributes"
1362             },
1363             {
1364                 "id": "callable",
1365                 "description": "Style for locals whose types implements one of the `Fn*` traits"
1366             },
1367             {
1368                 "id": "constant",
1369                 "description": "Style for compile-time constants"
1370             },
1371             {
1372                 "id": "consuming",
1373                 "description": "Style for locals that are being consumed when use in a function call"
1374             },
1375             {
1376                 "id": "controlFlow",
1377                 "description": "Style for control-flow related tokens, this includes the `?` operator"
1378             },
1379             {
1380                 "id": "crateRoot",
1381                 "description": "Style for names resolving to a crate root"
1382             },
1383             {
1384                 "id": "injected",
1385                 "description": "Style for doc-string injected highlighting like rust source blocks in documentation"
1386             },
1387             {
1388                 "id": "intraDocLink",
1389                 "description": "Style for intra doc links in doc-strings"
1390             },
1391             {
1392                 "id": "library",
1393                 "description": "Style for items that are defined outside of the current crate"
1394             },
1395             {
1396                 "id": "mutable",
1397                 "description": "Style for mutable locals and statics as well as functions taking `&mut self`"
1398             },
1399             {
1400                 "id": "public",
1401                 "description": "Style tems that are from the current crate and are `pub`"
1402             },
1403             {
1404                 "id": "reference",
1405                 "description": "Style for locals behind a reference and functions taking `self` by reference"
1406             },
1407             {
1408                 "id": "trait",
1409                 "description": "Style for associated trait items"
1410             },
1411             {
1412                 "id": "unsafe",
1413                 "description": "Style for unsafe operations, like unsafe function calls, as well as the `unsafe` token"
1414             }
1415         ],
1416         "semanticTokenScopes": [
1417             {
1418                 "language": "rust",
1419                 "scopes": {
1420                     "attribute": [
1421                         "meta.attribute.rust"
1422                     ],
1423                     "boolean": [
1424                         "constant.language.boolean.rust"
1425                     ],
1426                     "builtinType": [
1427                         "support.type.primitive.rust"
1428                     ],
1429                     "constParameter": [
1430                         "constant.other.caps.rust"
1431                     ],
1432                     "enum": [
1433                         "entity.name.type.enum.rust"
1434                     ],
1435                     "formatSpecifier": [
1436                         "punctuation.section.embedded.rust"
1437                     ],
1438                     "function": [
1439                         "entity.name.function.rust"
1440                     ],
1441                     "interface": [
1442                         "entity.name.type.trait.rust"
1443                     ],
1444                     "keyword": [
1445                         "keyword.other.rust"
1446                     ],
1447                     "keyword.controlFlow": [
1448                         "keyword.control.rust"
1449                     ],
1450                     "lifetime": [
1451                         "storage.modifier.lifetime.rust"
1452                     ],
1453                     "macroBang": [
1454                         "entity.name.function.macro.rust"
1455                     ],
1456                     "method": [
1457                         "entity.name.function.rust"
1458                     ],
1459                     "struct": [
1460                         "entity.name.type.struct.rust"
1461                     ],
1462                     "typeAlias": [
1463                         "entity.name.type.declaration.rust"
1464                     ],
1465                     "union": [
1466                         "entity.name.type.union.rust"
1467                     ],
1468                     "variable": [
1469                         "variable.other.rust"
1470                     ],
1471                     "variable.constant": [
1472                         "variable.other.constant.rust"
1473                     ],
1474                     "*.mutable": [
1475                         "markup.underline"
1476                     ]
1477                 }
1478             }
1479         ],
1480         "menus": {
1481             "commandPalette": [
1482                 {
1483                     "command": "rust-analyzer.syntaxTree",
1484                     "when": "inRustProject"
1485                 },
1486                 {
1487                     "command": "rust-analyzer.viewHir",
1488                     "when": "inRustProject"
1489                 },
1490                 {
1491                     "command": "rust-analyzer.viewFileText",
1492                     "when": "inRustProject"
1493                 },
1494                 {
1495                     "command": "rust-analyzer.expandMacro",
1496                     "when": "inRustProject"
1497                 },
1498                 {
1499                     "command": "rust-analyzer.matchingBrace",
1500                     "when": "inRustProject"
1501                 },
1502                 {
1503                     "command": "rust-analyzer.parentModule",
1504                     "when": "inRustProject"
1505                 },
1506                 {
1507                     "command": "rust-analyzer.joinLines",
1508                     "when": "inRustProject"
1509                 },
1510                 {
1511                     "command": "rust-analyzer.run",
1512                     "when": "inRustProject"
1513                 },
1514                 {
1515                     "command": "rust-analyzer.debug",
1516                     "when": "inRustProject"
1517                 },
1518                 {
1519                     "command": "rust-analyzer.newDebugConfig",
1520                     "when": "inRustProject"
1521                 },
1522                 {
1523                     "command": "rust-analyzer.analyzerStatus",
1524                     "when": "inRustProject"
1525                 },
1526                 {
1527                     "command": "rust-analyzer.memoryUsage",
1528                     "when": "inRustProject"
1529                 },
1530                 {
1531                     "command": "rust-analyzer.reloadWorkspace",
1532                     "when": "inRustProject"
1533                 },
1534                 {
1535                     "command": "rust-analyzer.reload",
1536                     "when": "inRustProject"
1537                 },
1538                 {
1539                     "command": "rust-analyzer.onEnter",
1540                     "when": "inRustProject"
1541                 },
1542                 {
1543                     "command": "rust-analyzer.ssr",
1544                     "when": "inRustProject"
1545                 },
1546                 {
1547                     "command": "rust-analyzer.serverVersion",
1548                     "when": "inRustProject"
1549                 },
1550                 {
1551                     "command": "rust-analyzer.toggleInlayHints",
1552                     "when": "inRustProject"
1553                 },
1554                 {
1555                     "command": "rust-analyzer.openDocs",
1556                     "when": "inRustProject"
1557                 },
1558                 {
1559                     "command": "rust-analyzer.openCargoToml",
1560                     "when": "inRustProject"
1561                 }
1562             ],
1563             "editor/context": [
1564                 {
1565                     "command": "rust-analyzer.peekTests",
1566                     "when": "inRustProject",
1567                     "group": "navigation@1000"
1568                 }
1569             ]
1570         }
1571     }
1572 }