6bd1ff16e5
The new name seems much simpler and it doesn't limit this config value only to downloading the server binary. Thus we wouldn't need to create another config properties to handle other downloads whatsoever. Anyway, I believe (heuristically) that most of the users would want to set "askBeforeDownload": false once and never bother clicking on the notification again (because otherwise there is no big point in installing rust-analyzer if it cannot install the server)
523 lines
18 KiB
JSON
523 lines
18 KiB
JSON
{
|
|
"name": "rust-analyzer",
|
|
"displayName": "rust-analyzer",
|
|
"description": "An alternative rust language server to the RLS",
|
|
"preview": true,
|
|
"private": true,
|
|
"icon": "icon.png",
|
|
"//": "The real version is in release.yaml, this one just needs to be bigger",
|
|
"version": "0.2.20200211-dev",
|
|
"publisher": "matklad",
|
|
"repository": {
|
|
"url": "https://github.com/rust-analyzer/rust-analyzer.git",
|
|
"type": "git"
|
|
},
|
|
"homepage": "https://rust-analyzer.github.io/",
|
|
"license": "MIT OR Apache-2.0",
|
|
"keywords": [
|
|
"rust"
|
|
],
|
|
"categories": [
|
|
"Programming Languages"
|
|
],
|
|
"engines": {
|
|
"vscode": "^1.42.0"
|
|
},
|
|
"enableProposedApi": true,
|
|
"scripts": {
|
|
"vscode:prepublish": "tsc && rollup -c",
|
|
"package": "vsce package -o rust-analyzer.vsix",
|
|
"watch": "tsc --watch",
|
|
"lint": "tsfmt --verify && eslint -c .eslintrc.js --ext ts ./src",
|
|
"fix": " tsfmt -r && eslint -c .eslintrc.js --ext ts ./src --fix"
|
|
},
|
|
"dependencies": {
|
|
"jsonc-parser": "^2.2.1",
|
|
"node-fetch": "^2.6.0",
|
|
"vscode-languageclient": "^6.1.1"
|
|
},
|
|
"devDependencies": {
|
|
"@rollup/plugin-commonjs": "^11.0.2",
|
|
"@rollup/plugin-node-resolve": "^7.1.1",
|
|
"@types/node": "^12.12.29",
|
|
"@types/node-fetch": "^2.5.5",
|
|
"@types/vscode": "^1.42.0",
|
|
"@typescript-eslint/eslint-plugin": "^2.22.0",
|
|
"@typescript-eslint/parser": "^2.22.0",
|
|
"eslint": "^6.8.0",
|
|
"rollup": "^1.32.1",
|
|
"tslib": "^1.11.1",
|
|
"typescript": "^3.8.3",
|
|
"typescript-formatter": "^7.2.2",
|
|
"vsce": "^1.74.0"
|
|
},
|
|
"activationEvents": [
|
|
"onLanguage:rust",
|
|
"onCommand:rust-analyzer.analyzerStatus",
|
|
"onCommand:rust-analyzer.collectGarbage",
|
|
"workspaceContains:**/Cargo.toml"
|
|
],
|
|
"main": "./out/main",
|
|
"contributes": {
|
|
"taskDefinitions": [
|
|
{
|
|
"type": "cargo",
|
|
"required": [
|
|
"command"
|
|
],
|
|
"properties": {
|
|
"label": {
|
|
"type": "string"
|
|
},
|
|
"command": {
|
|
"type": "string"
|
|
},
|
|
"args": {
|
|
"type": "array"
|
|
},
|
|
"env": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"commands": [
|
|
{
|
|
"command": "rust-analyzer.syntaxTree",
|
|
"title": "Show Syntax Tree",
|
|
"category": "Rust Analyzer"
|
|
},
|
|
{
|
|
"command": "rust-analyzer.expandMacro",
|
|
"title": "Expand macro recursively",
|
|
"category": "Rust Analyzer"
|
|
},
|
|
{
|
|
"command": "rust-analyzer.matchingBrace",
|
|
"title": "Find matching brace",
|
|
"category": "Rust Analyzer"
|
|
},
|
|
{
|
|
"command": "rust-analyzer.parentModule",
|
|
"title": "Locate parent module",
|
|
"category": "Rust Analyzer"
|
|
},
|
|
{
|
|
"command": "rust-analyzer.joinLines",
|
|
"title": "Join lines",
|
|
"category": "Rust Analyzer"
|
|
},
|
|
{
|
|
"command": "rust-analyzer.run",
|
|
"title": "Run",
|
|
"category": "Rust Analyzer"
|
|
},
|
|
{
|
|
"command": "rust-analyzer.analyzerStatus",
|
|
"title": "Status",
|
|
"category": "Rust Analyzer"
|
|
},
|
|
{
|
|
"command": "rust-analyzer.collectGarbage",
|
|
"title": "Run garbage collection",
|
|
"category": "Rust Analyzer"
|
|
},
|
|
{
|
|
"command": "rust-analyzer.reload",
|
|
"title": "Restart server",
|
|
"category": "Rust Analyzer"
|
|
},
|
|
{
|
|
"command": "rust-analyzer.onEnter",
|
|
"title": "Enhanced enter key",
|
|
"category": "Rust Analyzer"
|
|
},
|
|
{
|
|
"command": "rust-analyzer.ssr",
|
|
"title": "Structural Search Replace",
|
|
"category": "Rust Analyzer"
|
|
},
|
|
{
|
|
"command": "rust-analyzer.serverVersion",
|
|
"title": "Show RA Version",
|
|
"category": "Rust Analyzer"
|
|
}
|
|
],
|
|
"keybindings": [
|
|
{
|
|
"command": "rust-analyzer.parentModule",
|
|
"key": "ctrl+u",
|
|
"when": "editorTextFocus && editorLangId == rust"
|
|
},
|
|
{
|
|
"command": "rust-analyzer.matchingBrace",
|
|
"key": "ctrl+shift+m",
|
|
"when": "editorTextFocus && editorLangId == rust"
|
|
},
|
|
{
|
|
"command": "rust-analyzer.joinLines",
|
|
"key": "ctrl+shift+j",
|
|
"when": "editorTextFocus && editorLangId == rust"
|
|
},
|
|
{
|
|
"command": "rust-analyzer.onEnter",
|
|
"key": "enter",
|
|
"when": "editorTextFocus && !suggestWidgetVisible && editorLangId == rust && !vim.active || vim.mode == 'Insert' && editorTextFocus && !suggestWidgetVisible && editorLangId == rust"
|
|
}
|
|
],
|
|
"configuration": {
|
|
"type": "object",
|
|
"title": "Rust Analyzer",
|
|
"properties": {
|
|
"rust-analyzer.highlighting.semanticTokens": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "Use proposed semantic tokens API for syntax highlighting"
|
|
},
|
|
"rust-analyzer.highlightingOn": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "Highlight Rust code (overrides built-in syntax highlighting)"
|
|
},
|
|
"rust-analyzer.rainbowHighlightingOn": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "When highlighting Rust code, use a unique color per identifier"
|
|
},
|
|
"rust-analyzer.featureFlags": {
|
|
"type": "object",
|
|
"default": {},
|
|
"description": "Fine grained feature flags to disable annoying features",
|
|
"properties": {
|
|
"lsp.diagnostics": {
|
|
"type": "boolean",
|
|
"description": "Whether to show diagnostics from `cargo check`"
|
|
},
|
|
"completion.insertion.add-call-parenthesis": {
|
|
"type": "boolean",
|
|
"description": "Whether to add parenthesis when completing functions"
|
|
},
|
|
"completion.insertion.add-argument-snippets": {
|
|
"type": "boolean",
|
|
"description": "Whether to add argument snippets when completing functions"
|
|
},
|
|
"completion.enable-postfix": {
|
|
"type": "boolean",
|
|
"description": "Whether to show postfix snippets like `dbg`, `if`, `not`, etc."
|
|
},
|
|
"call-info.full": {
|
|
"type": "boolean",
|
|
"description": "Show function name and docs in parameter hints"
|
|
},
|
|
"notifications.workspace-loaded": {
|
|
"type": "boolean",
|
|
"description": "Whether to show `workspace loaded` message"
|
|
},
|
|
"notifications.cargo-toml-not-found": {
|
|
"type": "boolean",
|
|
"description": "Whether to show `can't find Cargo.toml` error message"
|
|
}
|
|
}
|
|
},
|
|
"rust-analyzer.askBeforeDownload": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Whether to ask for permission before downloading any files from the Internet"
|
|
},
|
|
"rust-analyzer.serverPath": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
],
|
|
"default": null,
|
|
"description": "Path to rust-analyzer executable (points to bundled binary by default)"
|
|
},
|
|
"rust-analyzer.excludeGlobs": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"default": [],
|
|
"description": "Paths to exclude from analysis"
|
|
},
|
|
"rust-analyzer.rustfmtArgs": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"default": [],
|
|
"description": "Additional arguments to rustfmt"
|
|
},
|
|
"rust-analyzer.useClientWatching": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "client provided file watching instead of notify watching."
|
|
},
|
|
"rust-analyzer.cargo-watch.enable": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Run `cargo check` for diagnostics on save"
|
|
},
|
|
"rust-analyzer.cargo-watch.arguments": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"description": "`cargo-watch` arguments. (e.g: `--features=\"shumway,pdf\"` will run as `cargo watch -x \"check --features=\"shumway,pdf\"\"` )",
|
|
"default": []
|
|
},
|
|
"rust-analyzer.cargo-watch.command": {
|
|
"type": "string",
|
|
"description": "`cargo-watch` command. (e.g: `clippy` will run as `cargo watch -x clippy` )",
|
|
"default": "check"
|
|
},
|
|
"rust-analyzer.cargo-watch.allTargets": {
|
|
"type": "boolean",
|
|
"description": "Check all targets and tests (will be passed as `--all-targets`)",
|
|
"default": true
|
|
},
|
|
"rust-analyzer.trace.server": {
|
|
"type": "string",
|
|
"scope": "window",
|
|
"enum": [
|
|
"off",
|
|
"messages",
|
|
"verbose"
|
|
],
|
|
"enumDescriptions": [
|
|
"No traces",
|
|
"Error only",
|
|
"Full log"
|
|
],
|
|
"default": "off",
|
|
"description": "Trace requests to the rust-analyzer"
|
|
},
|
|
"rust-analyzer.trace.extension": {
|
|
"description": "Enable logging of VS Code extensions itself",
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"rust-analyzer.lruCapacity": {
|
|
"type": [
|
|
"null",
|
|
"integer"
|
|
],
|
|
"default": null,
|
|
"minimum": 0,
|
|
"exclusiveMinimum": true,
|
|
"description": "Number of syntax trees rust-analyzer keeps in memory"
|
|
},
|
|
"rust-analyzer.displayInlayHints": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Display additional type and parameter information in the editor"
|
|
},
|
|
"rust-analyzer.maxInlayHintLength": {
|
|
"type": [
|
|
"null",
|
|
"integer"
|
|
],
|
|
"default": 20,
|
|
"minimum": 0,
|
|
"exclusiveMinimum": true,
|
|
"description": "Maximum length for inlay hints"
|
|
},
|
|
"rust-analyzer.cargoFeatures.noDefaultFeatures": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "Do not activate the `default` feature"
|
|
},
|
|
"rust-analyzer.cargoFeatures.allFeatures": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Activate all available features"
|
|
},
|
|
"rust-analyzer.cargoFeatures.features": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"default": [],
|
|
"description": "List of features to activate"
|
|
}
|
|
}
|
|
},
|
|
"problemPatterns": [
|
|
{
|
|
"name": "rustc",
|
|
"patterns": [
|
|
{
|
|
"regexp": "^(warning|warn|error)(?:\\[(.*?)\\])?: (.*)$",
|
|
"severity": 1,
|
|
"code": 2,
|
|
"message": 3
|
|
},
|
|
{
|
|
"regexp": "^[\\s->=]*(.*?):(\\d*):(\\d*)\\s*$",
|
|
"file": 1,
|
|
"line": 2,
|
|
"column": 3
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "rustc-json",
|
|
"patterns": [
|
|
{
|
|
"regexp": "^.*\"message\":{\"message\":\"([^\"]*).*?\"file_name\":\"([^\"]+).*?\"line_start\":(\\d+).*?\"line_end\":(\\d+).*?\"column_start\":(\\d+).*?\"column_end\":(\\d+).*}$",
|
|
"message": 1,
|
|
"file": 2,
|
|
"line": 3,
|
|
"endLine": 4,
|
|
"column": 5,
|
|
"endColumn": 6
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"problemMatchers": [
|
|
{
|
|
"name": "rustc",
|
|
"fileLocation": [
|
|
"relative",
|
|
"${workspaceRoot}"
|
|
],
|
|
"pattern": "$rustc"
|
|
},
|
|
{
|
|
"name": "rustc-json",
|
|
"fileLocation": [
|
|
"relative",
|
|
"${workspaceRoot}"
|
|
],
|
|
"pattern": "$rustc-json"
|
|
},
|
|
{
|
|
"name": "rustc-watch",
|
|
"fileLocation": [
|
|
"relative",
|
|
"${workspaceRoot}"
|
|
],
|
|
"background": {
|
|
"beginsPattern": "^\\[Running\\b",
|
|
"endsPattern": "^\\[Finished running\\b"
|
|
},
|
|
"pattern": "$rustc"
|
|
}
|
|
],
|
|
"colors": [
|
|
{
|
|
"id": "rust_analyzer.inlayHint",
|
|
"description": "Color for inlay hints",
|
|
"defaults": {
|
|
"dark": "#A0A0A0F0",
|
|
"light": "#747474",
|
|
"highContrast": "#BEBEBE"
|
|
}
|
|
}
|
|
],
|
|
"semanticTokenTypes": [
|
|
{
|
|
"id": "attribute",
|
|
"description": "Style for attributes"
|
|
},
|
|
{
|
|
"id": "builtinType",
|
|
"description": "Style for builtin types"
|
|
},
|
|
{
|
|
"id": "lifetime",
|
|
"description": "Style for lifetimes"
|
|
},
|
|
{
|
|
"id": "typeAlias",
|
|
"description": "Style for type aliases"
|
|
},
|
|
{
|
|
"id": "union",
|
|
"description": "Style for C-style untagged unions"
|
|
}
|
|
],
|
|
"semanticTokenModifiers": [
|
|
{
|
|
"id": "constant",
|
|
"description": "Style for compile-time constants"
|
|
},
|
|
{
|
|
"id": "control",
|
|
"description": "Style for control flow keywords"
|
|
},
|
|
{
|
|
"id": "mutable",
|
|
"description": "Style for mutable bindings"
|
|
},
|
|
{
|
|
"id": "unsafe",
|
|
"description": "Style for unsafe operations"
|
|
}
|
|
],
|
|
"semanticTokenStyleDefaults": [
|
|
{
|
|
"selector": "attribute",
|
|
"scope": [
|
|
"meta.attribute"
|
|
]
|
|
},
|
|
{
|
|
"selector": "builtinType",
|
|
"scope": [
|
|
"support.type.primitive"
|
|
]
|
|
},
|
|
{
|
|
"selector": "lifetime",
|
|
"scope": [
|
|
"entity.name.lifetime.rust"
|
|
]
|
|
},
|
|
{
|
|
"selector": "typeAlias",
|
|
"scope": [
|
|
"entity.name.typeAlias"
|
|
]
|
|
},
|
|
{
|
|
"selector": "union",
|
|
"scope": [
|
|
"entity.name.union"
|
|
]
|
|
},
|
|
{
|
|
"selector": "keyword.unsafe",
|
|
"scope": [
|
|
"keyword.other.unsafe"
|
|
]
|
|
},
|
|
{
|
|
"selector": "keyword.control",
|
|
"scope": [
|
|
"keyword.control"
|
|
]
|
|
},
|
|
{
|
|
"selector": "variable.constant",
|
|
"scope": [
|
|
"entity.name.constant"
|
|
]
|
|
},
|
|
{
|
|
"selector": "*.mutable",
|
|
"light": {
|
|
"fontStyle": "underline"
|
|
},
|
|
"dark": {
|
|
"fontStyle": "underline"
|
|
},
|
|
"highContrast": {
|
|
"fontStyle": "underline"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|