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