]> git.lizzy.rs Git - rust.git/blob - editors/code/package.json
Auto merge of #12225 - Veykril:tmapfloats, r=Veykril
[rust.git] / editors / code / package.json
1 {
2     "name": "rust-analyzer",
3     "displayName": "rust-analyzer",
4     "description": "An alternative rust language server to the RLS",
5     "preview": true,
6     "private": true,
7     "icon": "icon.png",
8     "version": "0.4.0-dev",
9     "releaseTag": null,
10     "publisher": "matklad",
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                     "type": [
495                         "string",
496                         "array",
497                         "null"
498                     ],
499                     "items": {
500                         "type": "string"
501                     },
502                     "enum": [
503                         "all"
504                     ],
505                     "enumDescriptions": [
506                         "Pass `--all-features` to cargo"
507                     ]
508                 },
509                 "rust-analyzer.checkOnSave.noDefaultFeatures": {
510                     "markdownDescription": "Do not activate the `default` feature.",
511                     "default": null,
512                     "type": [
513                         "null",
514                         "boolean"
515                     ]
516                 },
517                 "rust-analyzer.checkOnSave.overrideCommand": {
518                     "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.",
519                     "default": null,
520                     "type": [
521                         "null",
522                         "array"
523                     ],
524                     "items": {
525                         "type": "string"
526                     }
527                 },
528                 "rust-analyzer.checkOnSave.target": {
529                     "markdownDescription": "Check for a specific target. Defaults to\n`#rust-analyzer.cargo.target#`.",
530                     "default": null,
531                     "type": [
532                         "null",
533                         "string"
534                     ]
535                 },
536                 "rust-analyzer.completion.autoimport.enable": {
537                     "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.",
538                     "default": true,
539                     "type": "boolean"
540                 },
541                 "rust-analyzer.completion.autoself.enable": {
542                     "markdownDescription": "Toggles the additional completions that automatically show method calls and field accesses\nwith `self` prefixed to them when inside a method.",
543                     "default": true,
544                     "type": "boolean"
545                 },
546                 "rust-analyzer.completion.callable.snippets": {
547                     "markdownDescription": "Whether to add parenthesis and argument snippets when completing function.",
548                     "default": "fill_arguments",
549                     "type": [
550                         "string",
551                         "null"
552                     ],
553                     "enum": [
554                         "fill_arguments",
555                         "add_parentheses"
556                     ],
557                     "enumDescriptions": [
558                         "Add call parentheses and pre-fill arguments",
559                         "Add call parentheses"
560                     ]
561                 },
562                 "rust-analyzer.completion.postfix.enable": {
563                     "markdownDescription": "Whether to show postfix snippets like `dbg`, `if`, `not`, etc.",
564                     "default": true,
565                     "type": "boolean"
566                 },
567                 "rust-analyzer.completion.privateEditable.enable": {
568                     "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.",
569                     "default": false,
570                     "type": "boolean"
571                 },
572                 "rust-analyzer.completion.snippets.custom": {
573                     "markdownDescription": "Custom completion snippets.",
574                     "default": {
575                         "Arc::new": {
576                             "postfix": "arc",
577                             "body": "Arc::new(${receiver})",
578                             "requires": "std::sync::Arc",
579                             "description": "Put the expression into an `Arc`",
580                             "scope": "expr"
581                         },
582                         "Rc::new": {
583                             "postfix": "rc",
584                             "body": "Rc::new(${receiver})",
585                             "requires": "std::rc::Rc",
586                             "description": "Put the expression into an `Rc`",
587                             "scope": "expr"
588                         },
589                         "Box::pin": {
590                             "postfix": "pinbox",
591                             "body": "Box::pin(${receiver})",
592                             "requires": "std::boxed::Box",
593                             "description": "Put the expression into a pinned `Box`",
594                             "scope": "expr"
595                         },
596                         "Ok": {
597                             "postfix": "ok",
598                             "body": "Ok(${receiver})",
599                             "description": "Wrap the expression in a `Result::Ok`",
600                             "scope": "expr"
601                         },
602                         "Err": {
603                             "postfix": "err",
604                             "body": "Err(${receiver})",
605                             "description": "Wrap the expression in a `Result::Err`",
606                             "scope": "expr"
607                         },
608                         "Some": {
609                             "postfix": "some",
610                             "body": "Some(${receiver})",
611                             "description": "Wrap the expression in an `Option::Some`",
612                             "scope": "expr"
613                         }
614                     },
615                     "type": "object"
616                 },
617                 "rust-analyzer.diagnostics.disabled": {
618                     "markdownDescription": "List of rust-analyzer diagnostics to disable.",
619                     "default": [],
620                     "type": "array",
621                     "items": {
622                         "type": "string"
623                     },
624                     "uniqueItems": true
625                 },
626                 "rust-analyzer.diagnostics.enable": {
627                     "markdownDescription": "Whether to show native rust-analyzer diagnostics.",
628                     "default": true,
629                     "type": "boolean"
630                 },
631                 "rust-analyzer.diagnostics.experimental.enable": {
632                     "markdownDescription": "Whether to show experimental rust-analyzer diagnostics that might\nhave more false positives than usual.",
633                     "default": false,
634                     "type": "boolean"
635                 },
636                 "rust-analyzer.diagnostics.remapPrefix": {
637                     "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`.",
638                     "default": {},
639                     "type": "object"
640                 },
641                 "rust-analyzer.diagnostics.warningsAsHint": {
642                     "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`.",
643                     "default": [],
644                     "type": "array",
645                     "items": {
646                         "type": "string"
647                     }
648                 },
649                 "rust-analyzer.diagnostics.warningsAsInfo": {
650                     "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`.",
651                     "default": [],
652                     "type": "array",
653                     "items": {
654                         "type": "string"
655                     }
656                 },
657                 "rust-analyzer.files.excludeDirs": {
658                     "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`.",
659                     "default": [],
660                     "type": "array",
661                     "items": {
662                         "type": "string"
663                     }
664                 },
665                 "rust-analyzer.files.watcher": {
666                     "markdownDescription": "Controls file watching implementation.",
667                     "default": "client",
668                     "type": "string"
669                 },
670                 "rust-analyzer.highlightRelated.breakPoints.enable": {
671                     "markdownDescription": "Enables highlighting of related references while the cursor is on `break`, `loop`, `while`, or `for` keywords.",
672                     "default": true,
673                     "type": "boolean"
674                 },
675                 "rust-analyzer.highlightRelated.exitPoints.enable": {
676                     "markdownDescription": "Enables highlighting of all exit points while the cursor is on any `return`, `?`, `fn`, or return type arrow (`->`).",
677                     "default": true,
678                     "type": "boolean"
679                 },
680                 "rust-analyzer.highlightRelated.references.enable": {
681                     "markdownDescription": "Enables highlighting of related references while the cursor is on any identifier.",
682                     "default": true,
683                     "type": "boolean"
684                 },
685                 "rust-analyzer.highlightRelated.yieldPoints.enable": {
686                     "markdownDescription": "Enables highlighting of all break points for a loop or block context while the cursor is on any `async` or `await` keywords.",
687                     "default": true,
688                     "type": "boolean"
689                 },
690                 "rust-analyzer.hover.actions.debug.enable": {
691                     "markdownDescription": "Whether to show `Debug` action. Only applies when\n`#rust-analyzer.hoverActions.enable#` is set.",
692                     "default": true,
693                     "type": "boolean"
694                 },
695                 "rust-analyzer.hover.actions.enable": {
696                     "markdownDescription": "Whether to show HoverActions in Rust files.",
697                     "default": true,
698                     "type": "boolean"
699                 },
700                 "rust-analyzer.hover.actions.gotoTypeDef.enable": {
701                     "markdownDescription": "Whether to show `Go to Type Definition` action. Only applies when\n`#rust-analyzer.hoverActions.enable#` is set.",
702                     "default": true,
703                     "type": "boolean"
704                 },
705                 "rust-analyzer.hover.actions.implementations.enable": {
706                     "markdownDescription": "Whether to show `Implementations` action. Only applies when\n`#rust-analyzer.hoverActions.enable#` is set.",
707                     "default": true,
708                     "type": "boolean"
709                 },
710                 "rust-analyzer.hover.actions.references.enable": {
711                     "markdownDescription": "Whether to show `References` action. Only applies when\n`#rust-analyzer.hoverActions.enable#` is set.",
712                     "default": false,
713                     "type": "boolean"
714                 },
715                 "rust-analyzer.hover.actions.run.enable": {
716                     "markdownDescription": "Whether to show `Run` action. Only applies when\n`#rust-analyzer.hoverActions.enable#` is set.",
717                     "default": true,
718                     "type": "boolean"
719                 },
720                 "rust-analyzer.hover.documentation.enable": {
721                     "markdownDescription": "Whether to show documentation on hover.",
722                     "default": true,
723                     "type": "boolean"
724                 },
725                 "rust-analyzer.hover.links.enable": {
726                     "markdownDescription": "Use markdown syntax for links in hover.",
727                     "default": true,
728                     "type": "boolean"
729                 },
730                 "rust-analyzer.imports.granularity.enforce": {
731                     "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.",
732                     "default": false,
733                     "type": "boolean"
734                 },
735                 "rust-analyzer.imports.granularity.group": {
736                     "markdownDescription": "How imports should be grouped into use statements.",
737                     "default": "crate",
738                     "type": "string",
739                     "enum": [
740                         "preserve",
741                         "crate",
742                         "module",
743                         "item"
744                     ],
745                     "enumDescriptions": [
746                         "Do not change the granularity of any imports and preserve the original structure written by the developer.",
747                         "Merge imports from the same crate into a single use statement. Conversely, imports from different crates are split into separate statements.",
748                         "Merge imports from the same module into a single use statement. Conversely, imports from different modules are split into separate statements.",
749                         "Flatten imports so that each has its own use statement."
750                     ]
751                 },
752                 "rust-analyzer.imports.group.enable": {
753                     "markdownDescription": "Group inserted imports by the [following order](https://rust-analyzer.github.io/manual.html#auto-import). Groups are separated by newlines.",
754                     "default": true,
755                     "type": "boolean"
756                 },
757                 "rust-analyzer.imports.merge.glob": {
758                     "markdownDescription": "Whether to allow import insertion to merge new imports into single path glob imports like `use std::fmt::*;`.",
759                     "default": true,
760                     "type": "boolean"
761                 },
762                 "rust-analyzer.imports.prefix": {
763                     "markdownDescription": "The path structure for newly inserted paths to use.",
764                     "default": "plain",
765                     "type": "string",
766                     "enum": [
767                         "plain",
768                         "self",
769                         "crate"
770                     ],
771                     "enumDescriptions": [
772                         "Insert import paths relative to the current module, using up to one `super` prefix if the parent module contains the requested item.",
773                         "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.",
774                         "Force import paths to be absolute by always starting them with `crate` or the extern crate name they come from."
775                     ]
776                 },
777                 "rust-analyzer.inlayHints.chainingHints.enable": {
778                     "markdownDescription": "Whether to show inlay type hints for method chains.",
779                     "default": true,
780                     "type": "boolean"
781                 },
782                 "rust-analyzer.inlayHints.closureReturnTypeHints.enable": {
783                     "markdownDescription": "Whether to show inlay type hints for return types of closures with blocks.",
784                     "default": false,
785                     "type": "boolean"
786                 },
787                 "rust-analyzer.inlayHints.lifetimeElisionHints.enable": {
788                     "markdownDescription": "Whether to show inlay type hints for elided lifetimes in function signatures.",
789                     "default": "never",
790                     "type": [
791                         "string",
792                         "boolean"
793                     ],
794                     "enum": [
795                         "always",
796                         "never",
797                         "skip_trivial"
798                     ],
799                     "enumDescriptions": [
800                         "Always show lifetime elision hints.",
801                         "Never show lifetime elision hints.",
802                         "Only show lifetime elision hints if a return type is involved."
803                     ]
804                 },
805                 "rust-analyzer.inlayHints.lifetimeElisionHints.useParameterNames": {
806                     "markdownDescription": "Whether to prefer using parameter names as the name for elided lifetime hints if possible.",
807                     "default": false,
808                     "type": "boolean"
809                 },
810                 "rust-analyzer.inlayHints.maxLength": {
811                     "markdownDescription": "Maximum length for inlay hints. Set to null to have an unlimited length.",
812                     "default": 25,
813                     "type": [
814                         "null",
815                         "integer"
816                     ],
817                     "minimum": 0
818                 },
819                 "rust-analyzer.inlayHints.parameterHints.enable": {
820                     "markdownDescription": "Whether to show function parameter name inlay hints at the call\nsite.",
821                     "default": true,
822                     "type": "boolean"
823                 },
824                 "rust-analyzer.inlayHints.reborrowHints.enable": {
825                     "markdownDescription": "Whether to show inlay type hints for compiler inserted reborrows.",
826                     "default": false,
827                     "type": "boolean"
828                 },
829                 "rust-analyzer.inlayHints.renderColons": {
830                     "markdownDescription": "Whether to render leading colons for type hints, and trailing colons for parameter hints.",
831                     "default": true,
832                     "type": "boolean"
833                 },
834                 "rust-analyzer.inlayHints.typeHints.enable": {
835                     "markdownDescription": "Whether to show inlay type hints for variables.",
836                     "default": true,
837                     "type": "boolean"
838                 },
839                 "rust-analyzer.inlayHints.typeHints.hideNamedConstructor": {
840                     "markdownDescription": "Whether to hide inlay type hints for constructors.",
841                     "default": false,
842                     "type": "boolean"
843                 },
844                 "rust-analyzer.joinLines.joinAssignments": {
845                     "markdownDescription": "Join lines merges consecutive declaration and initialization of an assignment.",
846                     "default": true,
847                     "type": "boolean"
848                 },
849                 "rust-analyzer.joinLines.joinElseIf": {
850                     "markdownDescription": "Join lines inserts else between consecutive ifs.",
851                     "default": true,
852                     "type": "boolean"
853                 },
854                 "rust-analyzer.joinLines.removeTrailingComma": {
855                     "markdownDescription": "Join lines removes trailing commas.",
856                     "default": true,
857                     "type": "boolean"
858                 },
859                 "rust-analyzer.joinLines.unwrapTrivialBlock": {
860                     "markdownDescription": "Join lines unwraps trivial blocks.",
861                     "default": true,
862                     "type": "boolean"
863                 },
864                 "rust-analyzer.lens.debug.enable": {
865                     "markdownDescription": "Whether to show `Debug` lens. Only applies when\n`#rust-analyzer.lens.enable#` is set.",
866                     "default": true,
867                     "type": "boolean"
868                 },
869                 "rust-analyzer.lens.enable": {
870                     "markdownDescription": "Whether to show CodeLens in Rust files.",
871                     "default": true,
872                     "type": "boolean"
873                 },
874                 "rust-analyzer.lens.forceCustomCommands": {
875                     "markdownDescription": "Internal config: use custom client-side commands even when the\nclient doesn't set the corresponding capability.",
876                     "default": true,
877                     "type": "boolean"
878                 },
879                 "rust-analyzer.lens.implementations.enable": {
880                     "markdownDescription": "Whether to show `Implementations` lens. Only applies when\n`#rust-analyzer.lens.enable#` is set.",
881                     "default": true,
882                     "type": "boolean"
883                 },
884                 "rust-analyzer.lens.references.adt.enable": {
885                     "markdownDescription": "Whether to show `References` lens for Struct, Enum, and Union.\nOnly applies when `#rust-analyzer.lens.enable#` is set.",
886                     "default": false,
887                     "type": "boolean"
888                 },
889                 "rust-analyzer.lens.references.enumVariant.enable": {
890                     "markdownDescription": "Whether to show `References` lens for Enum Variants.\nOnly applies when `#rust-analyzer.lens.enable#` is set.",
891                     "default": false,
892                     "type": "boolean"
893                 },
894                 "rust-analyzer.lens.references.method.enable": {
895                     "markdownDescription": "Whether to show `Method References` lens. Only applies when\n`#rust-analyzer.lens.enable#` is set.",
896                     "default": false,
897                     "type": "boolean"
898                 },
899                 "rust-analyzer.lens.references.trait.enable": {
900                     "markdownDescription": "Whether to show `References` lens for Trait.\nOnly applies when `#rust-analyzer.lens.enable#` is set.",
901                     "default": false,
902                     "type": "boolean"
903                 },
904                 "rust-analyzer.lens.run.enable": {
905                     "markdownDescription": "Whether to show `Run` lens. Only applies when\n`#rust-analyzer.lens.enable#` is set.",
906                     "default": true,
907                     "type": "boolean"
908                 },
909                 "rust-analyzer.linkedProjects": {
910                     "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.",
911                     "default": [],
912                     "type": "array",
913                     "items": {
914                         "type": [
915                             "string",
916                             "object"
917                         ]
918                     }
919                 },
920                 "rust-analyzer.lru.capacity": {
921                     "markdownDescription": "Number of syntax trees rust-analyzer keeps in memory. Defaults to 128.",
922                     "default": null,
923                     "type": [
924                         "null",
925                         "integer"
926                     ],
927                     "minimum": 0
928                 },
929                 "rust-analyzer.notifications.cargoTomlNotFound": {
930                     "markdownDescription": "Whether to show `can't find Cargo.toml` error message.",
931                     "default": true,
932                     "type": "boolean"
933                 },
934                 "rust-analyzer.procMacro.attributes.enable": {
935                     "markdownDescription": "Expand attribute macros. Requires `#rust-analyzer.procMacro.enable#` to be set.",
936                     "default": true,
937                     "type": "boolean"
938                 },
939                 "rust-analyzer.procMacro.enable": {
940                     "markdownDescription": "Enable support for procedural macros, implies `#rust-analyzer.cargo.buildScripts.enable#`.",
941                     "default": true,
942                     "type": "boolean"
943                 },
944                 "rust-analyzer.procMacro.ignored": {
945                     "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.",
946                     "default": {},
947                     "type": "object"
948                 },
949                 "rust-analyzer.procMacro.server": {
950                     "markdownDescription": "Internal config, path to proc-macro server executable (typically,\nthis is rust-analyzer itself, but we override this in tests).",
951                     "default": null,
952                     "type": [
953                         "null",
954                         "string"
955                     ]
956                 },
957                 "rust-analyzer.runnables.command": {
958                     "markdownDescription": "Command to be executed instead of 'cargo' for runnables.",
959                     "default": null,
960                     "type": [
961                         "null",
962                         "string"
963                     ]
964                 },
965                 "rust-analyzer.runnables.extraArgs": {
966                     "markdownDescription": "Additional arguments to be passed to cargo for runnables such as\ntests or binaries. For example, it may be `--release`.",
967                     "default": [],
968                     "type": "array",
969                     "items": {
970                         "type": "string"
971                     }
972                 },
973                 "rust-analyzer.rustc.source": {
974                     "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.",
975                     "default": null,
976                     "type": [
977                         "null",
978                         "string"
979                     ]
980                 },
981                 "rust-analyzer.rustfmt.extraArgs": {
982                     "markdownDescription": "Additional arguments to `rustfmt`.",
983                     "default": [],
984                     "type": "array",
985                     "items": {
986                         "type": "string"
987                     }
988                 },
989                 "rust-analyzer.rustfmt.overrideCommand": {
990                     "markdownDescription": "Advanced option, fully override the command rust-analyzer uses for\nformatting.",
991                     "default": null,
992                     "type": [
993                         "null",
994                         "array"
995                     ],
996                     "items": {
997                         "type": "string"
998                     }
999                 },
1000                 "rust-analyzer.rustfmt.rangeFormatting.enable": {
1001                     "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.",
1002                     "default": false,
1003                     "type": "boolean"
1004                 },
1005                 "rust-analyzer.semanticHighlighting.strings.enable": {
1006                     "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.",
1007                     "default": true,
1008                     "type": "boolean"
1009                 },
1010                 "rust-analyzer.signatureInfo.detail": {
1011                     "markdownDescription": "Show full signature of the callable. Only shows parameters if disabled.",
1012                     "default": "full",
1013                     "type": "string",
1014                     "enum": [
1015                         "full",
1016                         "parameters"
1017                     ],
1018                     "enumDescriptions": [
1019                         "Show the entire signature.",
1020                         "Show only the parameters."
1021                     ]
1022                 },
1023                 "rust-analyzer.signatureInfo.documentation.enable": {
1024                     "markdownDescription": "Show documentation.",
1025                     "default": true,
1026                     "type": "boolean"
1027                 },
1028                 "rust-analyzer.workspace.symbol.search.kind": {
1029                     "markdownDescription": "Workspace symbol search kind.",
1030                     "default": "only_types",
1031                     "type": "string",
1032                     "enum": [
1033                         "only_types",
1034                         "all_symbols"
1035                     ],
1036                     "enumDescriptions": [
1037                         "Search for types only",
1038                         "Search for all symbols kinds"
1039                     ]
1040                 },
1041                 "rust-analyzer.workspace.symbol.search.limit": {
1042                     "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.",
1043                     "default": 128,
1044                     "type": "integer",
1045                     "minimum": 0
1046                 },
1047                 "rust-analyzer.workspace.symbol.search.scope": {
1048                     "markdownDescription": "Workspace symbol search scope.",
1049                     "default": "workspace",
1050                     "type": "string",
1051                     "enum": [
1052                         "workspace",
1053                         "workspace_and_dependencies"
1054                     ],
1055                     "enumDescriptions": [
1056                         "Search in current workspace only",
1057                         "Search in current workspace and dependencies"
1058                     ]
1059                 },
1060                 "$generated-end": {}
1061             }
1062         },
1063         "problemPatterns": [
1064             {
1065                 "name": "rustc",
1066                 "patterns": [
1067                     {
1068                         "regexp": "^(warning|warn|error)(?:\\[(.*?)\\])?: (.*)$",
1069                         "severity": 1,
1070                         "code": 2,
1071                         "message": 3
1072                     },
1073                     {
1074                         "regexp": "^[\\s->=]*(.*?):(\\d*):(\\d*)\\s*$",
1075                         "file": 1,
1076                         "line": 2,
1077                         "column": 3
1078                     }
1079                 ]
1080             },
1081             {
1082                 "name": "rustc-json",
1083                 "patterns": [
1084                     {
1085                         "regexp": "^.*\"message\":{\"message\":\"([^\"]*).*?\"file_name\":\"([^\"]+).*?\"line_start\":(\\d+).*?\"line_end\":(\\d+).*?\"column_start\":(\\d+).*?\"column_end\":(\\d+).*}$",
1086                         "message": 1,
1087                         "file": 2,
1088                         "line": 3,
1089                         "endLine": 4,
1090                         "column": 5,
1091                         "endColumn": 6
1092                     }
1093                 ]
1094             }
1095         ],
1096         "languages": [
1097             {
1098                 "id": "ra_syntax_tree",
1099                 "extensions": [
1100                     ".rast"
1101                 ]
1102             },
1103             {
1104                 "id": "rust",
1105                 "extensions": [
1106                     ".rs"
1107                 ],
1108                 "aliases": [
1109                     "Rust",
1110                     "rs"
1111                 ],
1112                 "configuration": "language-configuration.json"
1113             }
1114         ],
1115         "grammars": [
1116             {
1117                 "language": "ra_syntax_tree",
1118                 "scopeName": "source.ra_syntax_tree",
1119                 "path": "ra_syntax_tree.tmGrammar.json"
1120             }
1121         ],
1122         "problemMatchers": [
1123             {
1124                 "name": "rustc",
1125                 "owner": "rustc",
1126                 "source": "rustc",
1127                 "fileLocation": [
1128                     "autoDetect",
1129                     "${workspaceRoot}"
1130                 ],
1131                 "pattern": "$rustc"
1132             },
1133             {
1134                 "name": "rustc-json",
1135                 "owner": "rustc",
1136                 "source": "rustc",
1137                 "fileLocation": [
1138                     "autoDetect",
1139                     "${workspaceRoot}"
1140                 ],
1141                 "pattern": "$rustc-json"
1142             },
1143             {
1144                 "name": "rustc-watch",
1145                 "owner": "rustc",
1146                 "source": "rustc",
1147                 "fileLocation": [
1148                     "autoDetect",
1149                     "${workspaceRoot}"
1150                 ],
1151                 "background": {
1152                     "beginsPattern": "^\\[Running\\b",
1153                     "endsPattern": "^\\[Finished running\\b"
1154                 },
1155                 "pattern": "$rustc"
1156             }
1157         ],
1158         "colors": [
1159             {
1160                 "id": "rust_analyzer.syntaxTreeBorder",
1161                 "description": "Color of the border displayed in the Rust source code for the selected syntax node (see \"Show Syntax Tree\" command)",
1162                 "defaults": {
1163                     "dark": "#ffffff",
1164                     "light": "#b700ff",
1165                     "highContrast": "#b700ff"
1166                 }
1167             }
1168         ],
1169         "semanticTokenTypes": [
1170             {
1171                 "id": "angle",
1172                 "description": "Style for < or >",
1173                 "superType": "punctuation"
1174             },
1175             {
1176                 "id": "arithmetic",
1177                 "description": "Style for arithmetic operators",
1178                 "superType": "operator"
1179             },
1180             {
1181                 "id": "attribute",
1182                 "description": "Style for attributes"
1183             },
1184             {
1185                 "id": "attributeBracket",
1186                 "description": "Style for attribute invocation brackets, that is the `#[` and `]` tokens",
1187                 "superType": "punctuation"
1188             },
1189             {
1190                 "id": "bitwise",
1191                 "description": "Style for bitwise operators",
1192                 "superType": "operator"
1193             },
1194             {
1195                 "id": "boolean",
1196                 "description": "Style for boolean literals",
1197                 "superType": "keyword"
1198             },
1199             {
1200                 "id": "brace",
1201                 "description": "Style for { or }",
1202                 "superType": "punctuation"
1203             },
1204             {
1205                 "id": "bracket",
1206                 "description": "Style for [ or ]",
1207                 "superType": "punctuation"
1208             },
1209             {
1210                 "id": "builtinAttribute",
1211                 "description": "Style for builtin attributes",
1212                 "superType": "attribute"
1213             },
1214             {
1215                 "id": "builtinType",
1216                 "description": "Style for builtin types",
1217                 "superType": "type"
1218             },
1219             {
1220                 "id": "character",
1221                 "description": "Style for character literals",
1222                 "superType": "string"
1223             },
1224             {
1225                 "id": "colon",
1226                 "description": "Style for :",
1227                 "superType": "punctuation"
1228             },
1229             {
1230                 "id": "comma",
1231                 "description": "Style for ,",
1232                 "superType": "punctuation"
1233             },
1234             {
1235                 "id": "comparison",
1236                 "description": "Style for comparison operators",
1237                 "superType": "operator"
1238             },
1239             {
1240                 "id": "constParameter",
1241                 "description": "Style for const generics"
1242             },
1243             {
1244                 "id": "derive",
1245                 "description": "Style for derives",
1246                 "superType": "attribute"
1247             },
1248             {
1249                 "id": "dot",
1250                 "description": "Style for .",
1251                 "superType": "punctuation"
1252             },
1253             {
1254                 "id": "escapeSequence",
1255                 "description": "Style for char escapes in strings"
1256             },
1257             {
1258                 "id": "formatSpecifier",
1259                 "description": "Style for {} placeholders in format strings"
1260             },
1261             {
1262                 "id": "label",
1263                 "description": "Style for labels"
1264             },
1265             {
1266                 "id": "lifetime",
1267                 "description": "Style for lifetimes"
1268             },
1269             {
1270                 "id": "logical",
1271                 "description": "Style for logic operators",
1272                 "superType": "operator"
1273             },
1274             {
1275                 "id": "macroBang",
1276                 "description": "Style for the ! token of macro calls",
1277                 "superType": "punctuation"
1278             },
1279             {
1280                 "id": "operator",
1281                 "description": "Style for operators",
1282                 "superType": "punctuation"
1283             },
1284             {
1285                 "id": "parenthesis",
1286                 "description": "Style for ( or )",
1287                 "superType": "punctuation"
1288             },
1289             {
1290                 "id": "punctuation",
1291                 "description": "Style for generic punctuation"
1292             },
1293             {
1294                 "id": "selfKeyword",
1295                 "description": "Style for the self keyword",
1296                 "superType": "keyword"
1297             },
1298             {
1299                 "id": "selfTypeKeyword",
1300                 "description": "Style for the self type keyword",
1301                 "superType": "keyword"
1302             },
1303             {
1304                 "id": "semicolon",
1305                 "description": "Style for ;",
1306                 "superType": "punctuation"
1307             },
1308             {
1309                 "id": "typeAlias",
1310                 "description": "Style for type aliases",
1311                 "superType": "type"
1312             },
1313             {
1314                 "id": "union",
1315                 "description": "Style for C-style untagged unions",
1316                 "superType": "type"
1317             },
1318             {
1319                 "id": "unresolvedReference",
1320                 "description": "Style for names which can not be resolved due to compilation errors"
1321             }
1322         ],
1323         "semanticTokenModifiers": [
1324             {
1325                 "id": "async",
1326                 "description": "Style for async functions and the `async` and `await` keywords"
1327             },
1328             {
1329                 "id": "attribute",
1330                 "description": "Style for elements within attributes"
1331             },
1332             {
1333                 "id": "callable",
1334                 "description": "Style for locals whose types implements one of the `Fn*` traits"
1335             },
1336             {
1337                 "id": "constant",
1338                 "description": "Style for compile-time constants"
1339             },
1340             {
1341                 "id": "consuming",
1342                 "description": "Style for locals that are being consumed when use in a function call"
1343             },
1344             {
1345                 "id": "controlFlow",
1346                 "description": "Style for control-flow related tokens, this includes the `?` operator"
1347             },
1348             {
1349                 "id": "crateRoot",
1350                 "description": "Style for names resolving to a crate root"
1351             },
1352             {
1353                 "id": "injected",
1354                 "description": "Style for doc-string injected highlighting like rust source blocks in documentation"
1355             },
1356             {
1357                 "id": "intraDocLink",
1358                 "description": "Style for intra doc links in doc-strings"
1359             },
1360             {
1361                 "id": "library",
1362                 "description": "Style for items that are defined outside of the current crate"
1363             },
1364             {
1365                 "id": "mutable",
1366                 "description": "Style for mutable locals and statics as well as functions taking `&mut self`"
1367             },
1368             {
1369                 "id": "public",
1370                 "description": "Style tems that are from the current crate and are `pub`"
1371             },
1372             {
1373                 "id": "reference",
1374                 "description": "Style for locals behind a reference and functions taking `self` by reference"
1375             },
1376             {
1377                 "id": "trait",
1378                 "description": "Style for associated trait items"
1379             },
1380             {
1381                 "id": "unsafe",
1382                 "description": "Style for unsafe operations, like unsafe function calls, as well as the `unsafe` token"
1383             }
1384         ],
1385         "semanticTokenScopes": [
1386             {
1387                 "language": "rust",
1388                 "scopes": {
1389                     "attribute": [
1390                         "meta.attribute.rust"
1391                     ],
1392                     "boolean": [
1393                         "constant.language.boolean.rust"
1394                     ],
1395                     "builtinType": [
1396                         "support.type.primitive.rust"
1397                     ],
1398                     "constParameter": [
1399                         "constant.other.caps.rust"
1400                     ],
1401                     "enum": [
1402                         "entity.name.type.enum.rust"
1403                     ],
1404                     "formatSpecifier": [
1405                         "punctuation.section.embedded.rust"
1406                     ],
1407                     "function": [
1408                         "entity.name.function.rust"
1409                     ],
1410                     "interface": [
1411                         "entity.name.type.trait.rust"
1412                     ],
1413                     "keyword": [
1414                         "keyword.other.rust"
1415                     ],
1416                     "keyword.controlFlow": [
1417                         "keyword.control.rust"
1418                     ],
1419                     "lifetime": [
1420                         "storage.modifier.lifetime.rust"
1421                     ],
1422                     "macroBang": [
1423                         "entity.name.function.macro.rust"
1424                     ],
1425                     "method": [
1426                         "entity.name.function.rust"
1427                     ],
1428                     "struct": [
1429                         "entity.name.type.struct.rust"
1430                     ],
1431                     "typeAlias": [
1432                         "entity.name.type.declaration.rust"
1433                     ],
1434                     "union": [
1435                         "entity.name.type.union.rust"
1436                     ],
1437                     "variable": [
1438                         "variable.other.rust"
1439                     ],
1440                     "variable.constant": [
1441                         "variable.other.constant.rust"
1442                     ],
1443                     "*.mutable": [
1444                         "markup.underline"
1445                     ]
1446                 }
1447             }
1448         ],
1449         "menus": {
1450             "commandPalette": [
1451                 {
1452                     "command": "rust-analyzer.syntaxTree",
1453                     "when": "inRustProject"
1454                 },
1455                 {
1456                     "command": "rust-analyzer.viewHir",
1457                     "when": "inRustProject"
1458                 },
1459                 {
1460                     "command": "rust-analyzer.viewFileText",
1461                     "when": "inRustProject"
1462                 },
1463                 {
1464                     "command": "rust-analyzer.expandMacro",
1465                     "when": "inRustProject"
1466                 },
1467                 {
1468                     "command": "rust-analyzer.matchingBrace",
1469                     "when": "inRustProject"
1470                 },
1471                 {
1472                     "command": "rust-analyzer.parentModule",
1473                     "when": "inRustProject"
1474                 },
1475                 {
1476                     "command": "rust-analyzer.joinLines",
1477                     "when": "inRustProject"
1478                 },
1479                 {
1480                     "command": "rust-analyzer.run",
1481                     "when": "inRustProject"
1482                 },
1483                 {
1484                     "command": "rust-analyzer.debug",
1485                     "when": "inRustProject"
1486                 },
1487                 {
1488                     "command": "rust-analyzer.newDebugConfig",
1489                     "when": "inRustProject"
1490                 },
1491                 {
1492                     "command": "rust-analyzer.analyzerStatus",
1493                     "when": "inRustProject"
1494                 },
1495                 {
1496                     "command": "rust-analyzer.memoryUsage",
1497                     "when": "inRustProject"
1498                 },
1499                 {
1500                     "command": "rust-analyzer.reloadWorkspace",
1501                     "when": "inRustProject"
1502                 },
1503                 {
1504                     "command": "rust-analyzer.reload",
1505                     "when": "inRustProject"
1506                 },
1507                 {
1508                     "command": "rust-analyzer.onEnter",
1509                     "when": "inRustProject"
1510                 },
1511                 {
1512                     "command": "rust-analyzer.ssr",
1513                     "when": "inRustProject"
1514                 },
1515                 {
1516                     "command": "rust-analyzer.serverVersion",
1517                     "when": "inRustProject"
1518                 },
1519                 {
1520                     "command": "rust-analyzer.toggleInlayHints",
1521                     "when": "inRustProject"
1522                 },
1523                 {
1524                     "command": "rust-analyzer.openDocs",
1525                     "when": "inRustProject"
1526                 },
1527                 {
1528                     "command": "rust-analyzer.openCargoToml",
1529                     "when": "inRustProject"
1530                 }
1531             ],
1532             "editor/context": [
1533                 {
1534                     "command": "rust-analyzer.peekTests",
1535                     "when": "inRustProject",
1536                     "group": "navigation@1000"
1537                 }
1538             ]
1539         }
1540     }
1541 }