]> git.lizzy.rs Git - rust.git/blob - editors/code/package.json
55825456ec55fb15642d7ab201073a4cf2380277
[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.52.0"
25     },
26     "enableProposedApi": true,
27     "scripts": {
28         "vscode:prepublish": "tsc && rollup -c",
29         "package": "vsce package -o rust-analyzer.vsix",
30         "build": "tsc",
31         "watch": "tsc --watch",
32         "lint": "tsfmt --verify && eslint -c .eslintrc.js --ext ts ./src ./tests",
33         "fix": " tsfmt -r       && eslint -c .eslintrc.js --ext ts ./src ./tests --fix",
34         "pretest": "npm run build",
35         "test": "node ./out/tests/runTests.js"
36     },
37     "dependencies": {
38         "node-fetch": "^2.6.1",
39         "vscode-languageclient": "7.0.0"
40     },
41     "devDependencies": {
42         "@rollup/plugin-commonjs": "^17.0.0",
43         "@rollup/plugin-node-resolve": "^11.0.0",
44         "@types/glob": "^7.1.3",
45         "@types/mocha": "^8.0.4",
46         "@types/node": "~12.12.6",
47         "@types/node-fetch": "^2.5.7",
48         "@types/vscode": "^1.52.0",
49         "@typescript-eslint/eslint-plugin": "^4.9.0",
50         "@typescript-eslint/parser": "^4.9.0",
51         "eslint": "^7.15.0",
52         "glob": "^7.1.6",
53         "mocha": "^8.2.1",
54         "rollup": "^2.34.2",
55         "tslib": "^2.0.3",
56         "typescript": "^4.1.2",
57         "typescript-formatter": "^7.2.2",
58         "vsce": "^1.81.1",
59         "vscode-test": "^1.4.1"
60     },
61     "activationEvents": [
62         "onLanguage:rust",
63         "onCommand:rust-analyzer.analyzerStatus",
64         "onCommand:rust-analyzer.memoryUsage",
65         "onCommand:rust-analyzer.reloadWorkspace",
66         "workspaceContains:**/Cargo.toml"
67     ],
68     "main": "./out/src/main",
69     "contributes": {
70         "taskDefinitions": [
71             {
72                 "type": "cargo",
73                 "required": [
74                     "command"
75                 ],
76                 "properties": {
77                     "label": {
78                         "type": "string"
79                     },
80                     "command": {
81                         "type": "string"
82                     },
83                     "args": {
84                         "type": "array",
85                         "items": {
86                             "type": "string"
87                         }
88                     },
89                     "env": {
90                         "type": "object",
91                         "patternProperties": {
92                             ".+": {
93                                 "type": "string"
94                             }
95                         }
96                     }
97                 }
98             }
99         ],
100         "commands": [
101             {
102                 "command": "rust-analyzer.syntaxTree",
103                 "title": "Show Syntax Tree",
104                 "category": "Rust Analyzer"
105             },
106             {
107                 "command": "rust-analyzer.viewHir",
108                 "title": "View Hir",
109                 "category": "Rust Analyzer"
110             },
111             {
112                 "command": "rust-analyzer.expandMacro",
113                 "title": "Expand macro recursively",
114                 "category": "Rust Analyzer"
115             },
116             {
117                 "command": "rust-analyzer.matchingBrace",
118                 "title": "Find matching brace",
119                 "category": "Rust Analyzer"
120             },
121             {
122                 "command": "rust-analyzer.parentModule",
123                 "title": "Locate parent module",
124                 "category": "Rust Analyzer"
125             },
126             {
127                 "command": "rust-analyzer.joinLines",
128                 "title": "Join lines",
129                 "category": "Rust Analyzer"
130             },
131             {
132                 "command": "rust-analyzer.run",
133                 "title": "Run",
134                 "category": "Rust Analyzer"
135             },
136             {
137                 "command": "rust-analyzer.copyRunCommandLine",
138                 "title": "Copy Run Command Line",
139                 "category": "Rust Analyzer"
140             },
141             {
142                 "command": "rust-analyzer.debug",
143                 "title": "Debug",
144                 "category": "Rust Analyzer"
145             },
146             {
147                 "command": "rust-analyzer.newDebugConfig",
148                 "title": "Generate launch configuration",
149                 "category": "Rust Analyzer"
150             },
151             {
152                 "command": "rust-analyzer.analyzerStatus",
153                 "title": "Status",
154                 "category": "Rust Analyzer"
155             },
156             {
157                 "command": "rust-analyzer.memoryUsage",
158                 "title": "Memory Usage (Clears Database)",
159                 "category": "Rust Analyzer"
160             },
161             {
162                 "command": "rust-analyzer.reloadWorkspace",
163                 "title": "Reload workspace",
164                 "category": "Rust Analyzer"
165             },
166             {
167                 "command": "rust-analyzer.reload",
168                 "title": "Restart server",
169                 "category": "Rust Analyzer"
170             },
171             {
172                 "command": "rust-analyzer.updateGithubToken",
173                 "title": "Update Github API token",
174                 "category": "Rust Analyzer"
175             },
176             {
177                 "command": "rust-analyzer.onEnter",
178                 "title": "Enhanced enter key",
179                 "category": "Rust Analyzer"
180             },
181             {
182                 "command": "rust-analyzer.ssr",
183                 "title": "Structural Search Replace",
184                 "category": "Rust Analyzer"
185             },
186             {
187                 "command": "rust-analyzer.serverVersion",
188                 "title": "Show RA Version",
189                 "category": "Rust Analyzer"
190             },
191             {
192                 "command": "rust-analyzer.toggleInlayHints",
193                 "title": "Toggle inlay hints",
194                 "category": "Rust Analyzer"
195             },
196             {
197                 "command": "rust-analyzer.openDocs",
198                 "title": "Open docs under cursor",
199                 "category": "Rust Analyzer"
200             },
201             {
202                 "command": "rust-analyzer.openCargoToml",
203                 "title": "Open Cargo.toml",
204                 "category": "Rust Analyzer"
205             }
206         ],
207         "keybindings": [
208             {
209                 "command": "rust-analyzer.parentModule",
210                 "key": "ctrl+shift+u",
211                 "when": "editorTextFocus && editorLangId == rust"
212             },
213             {
214                 "command": "rust-analyzer.matchingBrace",
215                 "key": "ctrl+shift+m",
216                 "when": "editorTextFocus && editorLangId == rust"
217             },
218             {
219                 "command": "rust-analyzer.joinLines",
220                 "key": "ctrl+shift+j",
221                 "when": "editorTextFocus && editorLangId == rust"
222             }
223         ],
224         "configuration": {
225             "type": "object",
226             "title": "Rust Analyzer",
227             "properties": {
228                 "rust-analyzer.cargoRunner": {
229                     "type": [
230                         "null",
231                         "string"
232                     ],
233                     "default": null,
234                     "description": "Custom cargo runner extension ID."
235                 },
236                 "rust-analyzer.runnableEnv": {
237                     "anyOf": [
238                         {
239                             "type": "null"
240                         },
241                         {
242                             "type": "array",
243                             "items": {
244                                 "type": "object",
245                                 "properties": {
246                                     "mask": {
247                                         "type": "string",
248                                         "description": "Runnable name mask"
249                                     },
250                                     "env": {
251                                         "type": "object",
252                                         "description": "Variables in form of { \"key\": \"value\"}"
253                                     }
254                                 }
255                             }
256                         },
257                         {
258                             "type": "object",
259                             "description": "Variables in form of { \"key\": \"value\"}"
260                         }
261                     ],
262                     "default": null,
263                     "markdownDescription": "Environment variables passed to the runnable launched using `Test` or `Debug` lens or `rust-analyzer.run` command."
264                 },
265                 "rust-analyzer.inlayHints.enable": {
266                     "type": "boolean",
267                     "default": true,
268                     "description": "Whether to show inlay hints."
269                 },
270                 "rust-analyzer.updates.channel": {
271                     "type": "string",
272                     "enum": [
273                         "stable",
274                         "nightly"
275                     ],
276                     "default": "stable",
277                     "markdownEnumDescriptions": [
278                         "`stable` updates are shipped weekly, they don't contain cutting-edge features from VSCode proposed APIs but have less bugs in general.",
279                         "`nightly` updates are shipped daily (extension updates automatically by downloading artifacts directly from GitHub), they contain cutting-edge features and latest bug fixes. These releases help us get your feedback very quickly and speed up rust-analyzer development **drastically**."
280                     ],
281                     "markdownDescription": "Choose `nightly` updates to get the latest features and bug fixes every day. While `stable` releases occur weekly and don't contain cutting-edge features from VSCode proposed APIs."
282                 },
283                 "rust-analyzer.updates.askBeforeDownload": {
284                     "type": "boolean",
285                     "default": true,
286                     "description": "Whether to ask for permission before downloading any files from the Internet."
287                 },
288                 "rust-analyzer.server.path": {
289                     "type": [
290                         "null",
291                         "string"
292                     ],
293                     "default": null,
294                     "markdownDescription": "Path to rust-analyzer executable (points to bundled binary by default). If this is set, then `#rust-analyzer.updates.channel#` setting is not used"
295                 },
296                 "rust-analyzer.server.extraEnv": {
297                     "type": [
298                         "null",
299                         "object"
300                     ],
301                     "default": null,
302                     "markdownDescription": "Extra environment variables that will be passed to the rust-analyzer executable. Useful for passing e.g. `RA_LOG` for debugging."
303                 },
304                 "rust-analyzer.trace.server": {
305                     "type": "string",
306                     "scope": "window",
307                     "enum": [
308                         "off",
309                         "messages",
310                         "verbose"
311                     ],
312                     "enumDescriptions": [
313                         "No traces",
314                         "Error only",
315                         "Full log"
316                     ],
317                     "default": "off",
318                     "description": "Trace requests to the rust-analyzer (this is usually overly verbose and not recommended for regular users)."
319                 },
320                 "rust-analyzer.trace.extension": {
321                     "description": "Enable logging of VS Code extensions itself.",
322                     "type": "boolean",
323                     "default": false
324                 },
325                 "rust-analyzer.debug.engine": {
326                     "type": "string",
327                     "enum": [
328                         "auto",
329                         "vadimcn.vscode-lldb",
330                         "ms-vscode.cpptools"
331                     ],
332                     "default": "auto",
333                     "description": "Preferred debug engine.",
334                     "markdownEnumDescriptions": [
335                         "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).",
336                         "Use [CodeLLDB](https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb)",
337                         "Use [MS C++ tools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools)"
338                     ]
339                 },
340                 "rust-analyzer.debug.sourceFileMap": {
341                     "type": "object",
342                     "description": "Optional source file mappings passed to the debug engine.",
343                     "default": {
344                         "/rustc/<id>": "${env:USERPROFILE}/.rustup/toolchains/<toolchain-id>/lib/rustlib/src/rust"
345                     }
346                 },
347                 "rust-analyzer.debug.openDebugPane": {
348                     "markdownDescription": "Whether to open up the `Debug Panel` on debugging start.",
349                     "type": "boolean",
350                     "default": false
351                 },
352                 "rust-analyzer.debug.engineSettings": {
353                     "type": "object",
354                     "default": {},
355                     "markdownDescription": "Optional settings passed to the debug engine. Example: `{ \"lldb\": { \"terminal\":\"external\"} }`"
356                 },
357                 "$generated-start": false,
358                 "rust-analyzer.assist.importMergeBehavior": {
359                     "markdownDescription": "The strategy to use when inserting new imports or merging imports.",
360                     "default": "full",
361                     "type": "string",
362                     "enum": [
363                         "none",
364                         "full",
365                         "last"
366                     ],
367                     "enumDescriptions": [
368                         "No merging",
369                         "Merge all layers of the import trees",
370                         "Only merge the last layer of the import trees"
371                     ]
372                 },
373                 "rust-analyzer.assist.importPrefix": {
374                     "markdownDescription": "The path structure for newly inserted paths to use.",
375                     "default": "plain",
376                     "type": "string",
377                     "enum": [
378                         "plain",
379                         "by_self",
380                         "by_crate"
381                     ],
382                     "enumDescriptions": [
383                         "Insert import paths relative to the current module, using up to one `super` prefix if the parent module contains the requested item.",
384                         "Prefix all import paths with `self` if they don't begin with `self`, `super`, `crate` or a crate name.",
385                         "Force import paths to be absolute by always starting them with `crate` or the crate name they refer to."
386                     ]
387                 },
388                 "rust-analyzer.callInfo.full": {
389                     "markdownDescription": "Show function name and docs in parameter hints.",
390                     "default": true,
391                     "type": "boolean"
392                 },
393                 "rust-analyzer.cargo.autoreload": {
394                     "markdownDescription": "Automatically refresh project info via `cargo metadata` on `Cargo.toml` changes.",
395                     "default": true,
396                     "type": "boolean"
397                 },
398                 "rust-analyzer.cargo.allFeatures": {
399                     "markdownDescription": "Activate all available features (`--all-features`).",
400                     "default": false,
401                     "type": "boolean"
402                 },
403                 "rust-analyzer.cargo.features": {
404                     "markdownDescription": "List of features to activate.",
405                     "default": [],
406                     "type": "array",
407                     "items": {
408                         "type": "string"
409                     }
410                 },
411                 "rust-analyzer.cargo.loadOutDirsFromCheck": {
412                     "markdownDescription": "Run `cargo check` on startup to get the correct value for package OUT_DIRs.",
413                     "default": false,
414                     "type": "boolean"
415                 },
416                 "rust-analyzer.cargo.noDefaultFeatures": {
417                     "markdownDescription": "Do not activate the `default` feature.",
418                     "default": false,
419                     "type": "boolean"
420                 },
421                 "rust-analyzer.cargo.target": {
422                     "markdownDescription": "Compilation target (target triple).",
423                     "default": null,
424                     "type": [
425                         "null",
426                         "string"
427                     ]
428                 },
429                 "rust-analyzer.cargo.noSysroot": {
430                     "markdownDescription": "Internal config for debugging, disables loading of sysroot crates.",
431                     "default": false,
432                     "type": "boolean"
433                 },
434                 "rust-analyzer.checkOnSave.enable": {
435                     "markdownDescription": "Run specified `cargo check` command for diagnostics on save.",
436                     "default": true,
437                     "type": "boolean"
438                 },
439                 "rust-analyzer.checkOnSave.allFeatures": {
440                     "markdownDescription": "Check with all features (`--all-features`). Defaults to `#rust-analyzer.cargo.allFeatures#`.",
441                     "default": null,
442                     "type": [
443                         "null",
444                         "boolean"
445                     ]
446                 },
447                 "rust-analyzer.checkOnSave.allTargets": {
448                     "markdownDescription": "Check all targets and tests (`--all-targets`).",
449                     "default": true,
450                     "type": "boolean"
451                 },
452                 "rust-analyzer.checkOnSave.command": {
453                     "markdownDescription": "Cargo command to use for `cargo check`.",
454                     "default": "check",
455                     "type": "string"
456                 },
457                 "rust-analyzer.checkOnSave.noDefaultFeatures": {
458                     "markdownDescription": "Do not activate the `default` feature.",
459                     "default": null,
460                     "type": [
461                         "null",
462                         "boolean"
463                     ]
464                 },
465                 "rust-analyzer.checkOnSave.target": {
466                     "markdownDescription": "Check for a specific target. Defaults to `#rust-analyzer.cargo.target#`.",
467                     "default": null,
468                     "type": [
469                         "null",
470                         "string"
471                     ]
472                 },
473                 "rust-analyzer.checkOnSave.extraArgs": {
474                     "markdownDescription": "Extra arguments for `cargo check`.",
475                     "default": [],
476                     "type": "array",
477                     "items": {
478                         "type": "string"
479                     }
480                 },
481                 "rust-analyzer.checkOnSave.features": {
482                     "markdownDescription": "List of features to activate. Defaults to `#rust-analyzer.cargo.features#`.",
483                     "default": null,
484                     "type": [
485                         "null",
486                         "array"
487                     ],
488                     "items": {
489                         "type": "string"
490                     }
491                 },
492                 "rust-analyzer.checkOnSave.overrideCommand": {
493                     "markdownDescription": "Advanced option, fully override the command rust-analyzer uses for checking. The command should include `--message-format=json` or similar option.",
494                     "default": null,
495                     "type": [
496                         "null",
497                         "array"
498                     ],
499                     "items": {
500                         "type": "string"
501                     }
502                 },
503                 "rust-analyzer.completion.addCallArgumentSnippets": {
504                     "markdownDescription": "Whether to add argument snippets when completing functions.",
505                     "default": true,
506                     "type": "boolean"
507                 },
508                 "rust-analyzer.completion.addCallParenthesis": {
509                     "markdownDescription": "Whether to add parenthesis when completing functions.",
510                     "default": true,
511                     "type": "boolean"
512                 },
513                 "rust-analyzer.completion.postfix.enable": {
514                     "markdownDescription": "Whether to show postfix snippets like `dbg`, `if`, `not`, etc.",
515                     "default": true,
516                     "type": "boolean"
517                 },
518                 "rust-analyzer.completion.autoimport.enable": {
519                     "markdownDescription": "Toggles the additional completions that automatically add imports when completed. Note that your client must specify the `additionalTextEdits` LSP client capability to truly have this feature enabled.",
520                     "default": true,
521                     "type": "boolean"
522                 },
523                 "rust-analyzer.diagnostics.enable": {
524                     "markdownDescription": "Whether to show native rust-analyzer diagnostics.",
525                     "default": true,
526                     "type": "boolean"
527                 },
528                 "rust-analyzer.diagnostics.enableExperimental": {
529                     "markdownDescription": "Whether to show experimental rust-analyzer diagnostics that might have more false positives than usual.",
530                     "default": true,
531                     "type": "boolean"
532                 },
533                 "rust-analyzer.diagnostics.disabled": {
534                     "markdownDescription": "List of rust-analyzer diagnostics to disable.",
535                     "default": [],
536                     "type": "array",
537                     "items": {
538                         "type": "string"
539                     },
540                     "uniqueItems": true
541                 },
542                 "rust-analyzer.diagnostics.warningsAsHint": {
543                     "markdownDescription": "List of warnings that should be displayed with info severity.\\n\\nThe warnings will be indicated by a blue squiggly underline in code and a blue icon in the `Problems Panel`.",
544                     "default": [],
545                     "type": "array",
546                     "items": {
547                         "type": "string"
548                     }
549                 },
550                 "rust-analyzer.diagnostics.warningsAsInfo": {
551                     "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 and will not show up in the `Problems Panel`.",
552                     "default": [],
553                     "type": "array",
554                     "items": {
555                         "type": "string"
556                     }
557                 },
558                 "rust-analyzer.files.watcher": {
559                     "markdownDescription": "Controls file watching implementation.",
560                     "default": "client",
561                     "type": "string"
562                 },
563                 "rust-analyzer.files.excludeDirs": {
564                     "markdownDescription": "These directories will be ignored by rust-analyzer.",
565                     "default": [],
566                     "type": "array",
567                     "items": {
568                         "type": "string"
569                     }
570                 },
571                 "rust-analyzer.hoverActions.debug": {
572                     "markdownDescription": "Whether to show `Debug` action. Only applies when `#rust-analyzer.hoverActions.enable#` is set.",
573                     "default": true,
574                     "type": "boolean"
575                 },
576                 "rust-analyzer.hoverActions.enable": {
577                     "markdownDescription": "Whether to show HoverActions in Rust files.",
578                     "default": true,
579                     "type": "boolean"
580                 },
581                 "rust-analyzer.hoverActions.gotoTypeDef": {
582                     "markdownDescription": "Whether to show `Go to Type Definition` action. Only applies when `#rust-analyzer.hoverActions.enable#` is set.",
583                     "default": true,
584                     "type": "boolean"
585                 },
586                 "rust-analyzer.hoverActions.implementations": {
587                     "markdownDescription": "Whether to show `Implementations` action. Only applies when `#rust-analyzer.hoverActions.enable#` is set.",
588                     "default": true,
589                     "type": "boolean"
590                 },
591                 "rust-analyzer.hoverActions.run": {
592                     "markdownDescription": "Whether to show `Run` action. Only applies when `#rust-analyzer.hoverActions.enable#` is set.",
593                     "default": true,
594                     "type": "boolean"
595                 },
596                 "rust-analyzer.hoverActions.linksInHover": {
597                     "markdownDescription": "Use markdown syntax for links in hover.",
598                     "default": true,
599                     "type": "boolean"
600                 },
601                 "rust-analyzer.inlayHints.chainingHints": {
602                     "markdownDescription": "Whether to show inlay type hints for method chains.",
603                     "default": true,
604                     "type": "boolean"
605                 },
606                 "rust-analyzer.inlayHints.maxLength": {
607                     "markdownDescription": "Maximum length for inlay hints. Default is unlimited.",
608                     "default": null,
609                     "type": [
610                         "null",
611                         "integer"
612                     ],
613                     "minimum": 0
614                 },
615                 "rust-analyzer.inlayHints.parameterHints": {
616                     "markdownDescription": "Whether to show function parameter name inlay hints at the call site.",
617                     "default": true,
618                     "type": "boolean"
619                 },
620                 "rust-analyzer.inlayHints.typeHints": {
621                     "markdownDescription": "Whether to show inlay type hints for variables.",
622                     "default": true,
623                     "type": "boolean"
624                 },
625                 "rust-analyzer.lens.debug": {
626                     "markdownDescription": "Whether to show `Debug` lens. Only applies when `#rust-analyzer.lens.enable#` is set.",
627                     "default": true,
628                     "type": "boolean"
629                 },
630                 "rust-analyzer.lens.enable": {
631                     "markdownDescription": "Whether to show CodeLens in Rust files.",
632                     "default": true,
633                     "type": "boolean"
634                 },
635                 "rust-analyzer.lens.implementations": {
636                     "markdownDescription": "Whether to show `Implementations` lens. Only applies when `#rust-analyzer.lens.enable#` is set.",
637                     "default": true,
638                     "type": "boolean"
639                 },
640                 "rust-analyzer.lens.run": {
641                     "markdownDescription": "Whether to show `Run` lens. Only applies when `#rust-analyzer.lens.enable#` is set.",
642                     "default": true,
643                     "type": "boolean"
644                 },
645                 "rust-analyzer.lens.methodReferences": {
646                     "markdownDescription": "Whether to show `Method References` lens. Only applies when `#rust-analyzer.lens.enable#` is set.",
647                     "default": false,
648                     "type": "boolean"
649                 },
650                 "rust-analyzer.lens.references": {
651                     "markdownDescription": "Whether to show `References` lens. Only applies when `#rust-analyzer.lens.enable#` is set.",
652                     "default": false,
653                     "type": "boolean"
654                 },
655                 "rust-analyzer.linkedProjects": {
656                     "markdownDescription": "Disable project auto-discovery in favor of explicitly specified set of projects.\\n\\nElements must be paths pointing to `Cargo.toml`, `rust-project.json`, or JSON objects in `rust-project.json` format.",
657                     "default": [],
658                     "type": "array",
659                     "items": {
660                         "type": [
661                             "string",
662                             "object"
663                         ]
664                     }
665                 },
666                 "rust-analyzer.lruCapacity": {
667                     "markdownDescription": "Number of syntax trees rust-analyzer keeps in memory. Defaults to 128.",
668                     "default": null,
669                     "type": [
670                         "null",
671                         "integer"
672                     ],
673                     "minimum": 0
674                 },
675                 "rust-analyzer.notifications.cargoTomlNotFound": {
676                     "markdownDescription": "Whether to show `can't find Cargo.toml` error message.",
677                     "default": true,
678                     "type": "boolean"
679                 },
680                 "rust-analyzer.procMacro.enable": {
681                     "markdownDescription": "Enable Proc macro support, `#rust-analyzer.cargo.loadOutDirsFromCheck#` must be enabled.",
682                     "default": false,
683                     "type": "boolean"
684                 },
685                 "rust-analyzer.procMacro.server": {
686                     "markdownDescription": "Internal config, path to proc-macro server executable (typically, this is rust-analyzer itself, but we override this in tests).",
687                     "default": null,
688                     "type": [
689                         "null",
690                         "string"
691                     ]
692                 },
693                 "rust-analyzer.runnables.overrideCargo": {
694                     "markdownDescription": "Command to be executed instead of 'cargo' for runnables.",
695                     "default": null,
696                     "type": [
697                         "null",
698                         "string"
699                     ]
700                 },
701                 "rust-analyzer.runnables.cargoExtraArgs": {
702                     "markdownDescription": "Additional arguments to be passed to cargo for runnables such as tests or binaries.\\nFor example, it may be `--release`.",
703                     "default": [],
704                     "type": "array",
705                     "items": {
706                         "type": "string"
707                     }
708                 },
709                 "rust-analyzer.rustcSource": {
710                     "markdownDescription": "Path to the rust compiler sources, for usage in rustc_private projects.",
711                     "default": null,
712                     "type": [
713                         "null",
714                         "string"
715                     ]
716                 },
717                 "rust-analyzer.rustfmt.extraArgs": {
718                     "markdownDescription": "Additional arguments to `rustfmt`.",
719                     "default": [],
720                     "type": "array",
721                     "items": {
722                         "type": "string"
723                     }
724                 },
725                 "rust-analyzer.rustfmt.overrideCommand": {
726                     "markdownDescription": "Advanced option, fully override the command rust-analyzer uses for formatting.",
727                     "default": null,
728                     "type": [
729                         "null",
730                         "array"
731                     ],
732                     "items": {
733                         "type": "string"
734                     }
735                 },
736                 "$generated-end": false
737             }
738         },
739         "problemPatterns": [
740             {
741                 "name": "rustc",
742                 "patterns": [
743                     {
744                         "regexp": "^(warning|warn|error)(?:\\[(.*?)\\])?: (.*)$",
745                         "severity": 1,
746                         "code": 2,
747                         "message": 3
748                     },
749                     {
750                         "regexp": "^[\\s->=]*(.*?):(\\d*):(\\d*)\\s*$",
751                         "file": 1,
752                         "line": 2,
753                         "column": 3
754                     }
755                 ]
756             },
757             {
758                 "name": "rustc-json",
759                 "patterns": [
760                     {
761                         "regexp": "^.*\"message\":{\"message\":\"([^\"]*).*?\"file_name\":\"([^\"]+).*?\"line_start\":(\\d+).*?\"line_end\":(\\d+).*?\"column_start\":(\\d+).*?\"column_end\":(\\d+).*}$",
762                         "message": 1,
763                         "file": 2,
764                         "line": 3,
765                         "endLine": 4,
766                         "column": 5,
767                         "endColumn": 6
768                     }
769                 ]
770             }
771         ],
772         "languages": [
773             {
774                 "id": "ra_syntax_tree",
775                 "extensions": [
776                     ".rast"
777                 ]
778             },
779             {
780                 "id": "rust",
781                 "extensions": [
782                     ".rs"
783                 ],
784                 "aliases": [
785                     "Rust",
786                     "rs"
787                 ],
788                 "configuration": "language-configuration.json"
789             }
790         ],
791         "grammars": [
792             {
793                 "language": "ra_syntax_tree",
794                 "scopeName": "source.ra_syntax_tree",
795                 "path": "ra_syntax_tree.tmGrammar.json"
796             }
797         ],
798         "problemMatchers": [
799             {
800                 "name": "rustc",
801                 "owner": "rustc",
802                 "source": "rustc",
803                 "fileLocation": [
804                     "autoDetect",
805                     "${workspaceRoot}"
806                 ],
807                 "pattern": "$rustc"
808             },
809             {
810                 "name": "rustc-json",
811                 "owner": "rustc",
812                 "source": "rustc",
813                 "fileLocation": [
814                     "autoDetect",
815                     "${workspaceRoot}"
816                 ],
817                 "pattern": "$rustc-json"
818             },
819             {
820                 "name": "rustc-watch",
821                 "owner": "rustc",
822                 "source": "rustc",
823                 "fileLocation": [
824                     "autoDetect",
825                     "${workspaceRoot}"
826                 ],
827                 "background": {
828                     "beginsPattern": "^\\[Running\\b",
829                     "endsPattern": "^\\[Finished running\\b"
830                 },
831                 "pattern": "$rustc"
832             }
833         ],
834         "colors": [
835             {
836                 "id": "rust_analyzer.inlayHints.foreground",
837                 "description": "Foreground color of inlay hints (is overriden by more specific rust_analyzer.inlayHints.foreground.* configurations)",
838                 "defaults": {
839                     "dark": "#A0A0A0F0",
840                     "light": "#747474",
841                     "highContrast": "#BEBEBE"
842                 }
843             },
844             {
845                 "id": "rust_analyzer.inlayHints.background",
846                 "description": "Background color of inlay hints (is overriden by more specific rust_analyzer.inlayHints.background.* configurations)",
847                 "defaults": {
848                     "dark": "#11223300",
849                     "light": "#11223300",
850                     "highContrast": "#11223300"
851                 }
852             },
853             {
854                 "id": "rust_analyzer.inlayHints.foreground.typeHints",
855                 "description": "Foreground color of inlay type hints for variables (overrides rust_analyzer.inlayHints.foreground)",
856                 "defaults": {
857                     "dark": "rust_analyzer.inlayHints.foreground",
858                     "light": "rust_analyzer.inlayHints.foreground",
859                     "highContrast": "rust_analyzer.inlayHints.foreground"
860                 }
861             },
862             {
863                 "id": "rust_analyzer.inlayHints.foreground.chainingHints",
864                 "description": "Foreground color of inlay type hints for method chains (overrides rust_analyzer.inlayHints.foreground)",
865                 "defaults": {
866                     "dark": "rust_analyzer.inlayHints.foreground",
867                     "light": "rust_analyzer.inlayHints.foreground",
868                     "highContrast": "rust_analyzer.inlayHints.foreground"
869                 }
870             },
871             {
872                 "id": "rust_analyzer.inlayHints.foreground.parameterHints",
873                 "description": "Foreground color of function parameter name inlay hints at the call site (overrides rust_analyzer.inlayHints.foreground)",
874                 "defaults": {
875                     "dark": "rust_analyzer.inlayHints.foreground",
876                     "light": "rust_analyzer.inlayHints.foreground",
877                     "highContrast": "rust_analyzer.inlayHints.foreground"
878                 }
879             },
880             {
881                 "id": "rust_analyzer.inlayHints.background.typeHints",
882                 "description": "Background color of inlay type hints for variables (overrides rust_analyzer.inlayHints.background)",
883                 "defaults": {
884                     "dark": "rust_analyzer.inlayHints.background",
885                     "light": "rust_analyzer.inlayHints.background",
886                     "highContrast": "rust_analyzer.inlayHints.background"
887                 }
888             },
889             {
890                 "id": "rust_analyzer.inlayHints.background.chainingHints",
891                 "description": "Background color of inlay type hints for method chains (overrides rust_analyzer.inlayHints.background)",
892                 "defaults": {
893                     "dark": "rust_analyzer.inlayHints.background",
894                     "light": "rust_analyzer.inlayHints.background",
895                     "highContrast": "rust_analyzer.inlayHints.background"
896                 }
897             },
898             {
899                 "id": "rust_analyzer.inlayHints.background.parameterHints",
900                 "description": "Background color of function parameter name inlay hints at the call site (overrides rust_analyzer.inlayHints.background)",
901                 "defaults": {
902                     "dark": "rust_analyzer.inlayHints.background",
903                     "light": "rust_analyzer.inlayHints.background",
904                     "highContrast": "rust_analyzer.inlayHints.background"
905                 }
906             },
907             {
908                 "id": "rust_analyzer.syntaxTreeBorder",
909                 "description": "Color of the border displayed in the Rust source code for the selected syntax node (see \"Show Syntax Tree\" command)",
910                 "defaults": {
911                     "dark": "#ffffff",
912                     "light": "#b700ff",
913                     "highContrast": "#b700ff"
914                 }
915             }
916         ],
917         "semanticTokenTypes": [
918             {
919                 "id": "attribute",
920                 "description": "Style for attributes"
921             },
922             {
923                 "id": "boolean",
924                 "description": "Style for boolean literals",
925                 "superType": "keyword"
926             },
927             {
928                 "id": "builtinType",
929                 "description": "Style for builtin types",
930                 "superType": "type"
931             },
932             {
933                 "id": "lifetime",
934                 "description": "Style for lifetimes"
935             },
936             {
937                 "id": "selfKeyword",
938                 "description": "Style for the self keyword",
939                 "superType": "keyword"
940             },
941             {
942                 "id": "typeAlias",
943                 "description": "Style for type aliases",
944                 "superType": "type"
945             },
946             {
947                 "id": "union",
948                 "description": "Style for C-style untagged unions",
949                 "superType": "type"
950             },
951             {
952                 "id": "unresolvedReference",
953                 "description": "Style for names which can not be resolved due to compilation errors"
954             },
955             {
956                 "id": "formatSpecifier",
957                 "description": "Style for {} placeholders in format strings"
958             },
959             {
960                 "id": "punctuation",
961                 "description": "generic punctuation"
962             },
963             {
964                 "id": "parenthesis",
965                 "description": "( or )",
966                 "superType": "punctuation"
967             },
968             {
969                 "id": "bracket",
970                 "description": "[ or ]",
971                 "superType": "punctuation"
972             },
973             {
974                 "id": "brace",
975                 "description": "{ or }",
976                 "superType": "punctuation"
977             },
978             {
979                 "id": "angle",
980                 "description": "< or >",
981                 "superType": "punctuation"
982             },
983             {
984                 "id": "comma",
985                 "description": ",",
986                 "superType": "punctuation"
987             },
988             {
989                 "id": "colon",
990                 "description": ":",
991                 "superType": "punctuation"
992             },
993             {
994                 "id": "semicolon",
995                 "description": ";",
996                 "superType": "punctuation"
997             },
998             {
999                 "id": "dot",
1000                 "description": ".",
1001                 "superType": "punctuation"
1002             }
1003         ],
1004         "semanticTokenModifiers": [
1005             {
1006                 "id": "attribute",
1007                 "description": "Style for elements within attributes"
1008             },
1009             {
1010                 "id": "constant",
1011                 "description": "Style for compile-time constants"
1012             },
1013             {
1014                 "id": "controlFlow",
1015                 "description": "Style for control flow keywords"
1016             },
1017             {
1018                 "id": "mutable",
1019                 "description": "Style for mutable bindings"
1020             },
1021             {
1022                 "id": "unsafe",
1023                 "description": "Style for unsafe operations"
1024             },
1025             {
1026                 "id": "consuming",
1027                 "description": "Style for non-Copy lvalues consumed by method/function call"
1028             },
1029             {
1030                 "id": "callable",
1031                 "description": "Style for variables/parameters that can be used in call expressions"
1032             }
1033         ],
1034         "semanticTokenScopes": [
1035             {
1036                 "language": "rust",
1037                 "scopes": {
1038                     "attribute": [
1039                         "meta.attribute.rust"
1040                     ],
1041                     "function.attribute": [
1042                         "entity.name.function.attribute.rust"
1043                     ],
1044                     "boolean": [
1045                         "constant.language.boolean.rust"
1046                     ],
1047                     "builtinType": [
1048                         "support.type.primitive.rust"
1049                     ],
1050                     "lifetime": [
1051                         "storage.modifier.lifetime.rust"
1052                     ],
1053                     "typeAlias": [
1054                         "entity.name.type.typeAlias.rust"
1055                     ],
1056                     "union": [
1057                         "entity.name.type.union.rust"
1058                     ],
1059                     "struct": [
1060                         "entity.name.type.struct.rust"
1061                     ],
1062                     "keyword": [
1063                         "keyword.other.rust"
1064                     ],
1065                     "keyword.controlFlow": [
1066                         "keyword.control.rust"
1067                     ],
1068                     "variable.constant": [
1069                         "variable.other.constant.rust"
1070                     ],
1071                     "formatSpecifier": [
1072                         "punctuation.section.embedded.rust"
1073                     ],
1074                     "*.mutable": [
1075                         "markup.underline"
1076                     ]
1077                 }
1078             }
1079         ],
1080         "menus": {
1081             "commandPalette": [
1082                 {
1083                     "command": "rust-analyzer.syntaxTree",
1084                     "when": "inRustProject"
1085                 },
1086                 {
1087                     "command": "rust-analyzer.viewHir",
1088                     "when": "inRustProject"
1089                 },
1090                 {
1091                     "command": "rust-analyzer.expandMacro",
1092                     "when": "inRustProject"
1093                 },
1094                 {
1095                     "command": "rust-analyzer.matchingBrace",
1096                     "when": "inRustProject"
1097                 },
1098                 {
1099                     "command": "rust-analyzer.parentModule",
1100                     "when": "inRustProject"
1101                 },
1102                 {
1103                     "command": "rust-analyzer.joinLines",
1104                     "when": "inRustProject"
1105                 },
1106                 {
1107                     "command": "rust-analyzer.run",
1108                     "when": "inRustProject"
1109                 },
1110                 {
1111                     "command": "rust-analyzer.debug",
1112                     "when": "inRustProject"
1113                 },
1114                 {
1115                     "command": "rust-analyzer.newDebugConfig",
1116                     "when": "inRustProject"
1117                 },
1118                 {
1119                     "command": "rust-analyzer.analyzerStatus",
1120                     "when": "inRustProject"
1121                 },
1122                 {
1123                     "command": "rust-analyzer.memoryUsage",
1124                     "when": "inRustProject"
1125                 },
1126                 {
1127                     "command": "rust-analyzer.reloadWorkspace",
1128                     "when": "inRustProject"
1129                 },
1130                 {
1131                     "command": "rust-analyzer.reload",
1132                     "when": "inRustProject"
1133                 },
1134                 {
1135                     "command": "rust-analyzer.updateGithubToken",
1136                     "when": "inRustProject"
1137                 },
1138                 {
1139                     "command": "rust-analyzer.onEnter",
1140                     "when": "inRustProject"
1141                 },
1142                 {
1143                     "command": "rust-analyzer.ssr",
1144                     "when": "inRustProject"
1145                 },
1146                 {
1147                     "command": "rust-analyzer.serverVersion",
1148                     "when": "inRustProject"
1149                 },
1150                 {
1151                     "command": "rust-analyzer.toggleInlayHints",
1152                     "when": "inRustProject"
1153                 },
1154                 {
1155                     "command": "rust-analyzer.openDocs",
1156                     "when": "inRustProject"
1157                 },
1158                 {
1159                     "command": "rust-analyzer.openCargoToml",
1160                     "when": "inRustProject"
1161                 }
1162             ]
1163         }
1164     }
1165 }