rust-analyzer/editors/code/package.json

470 lines
16 KiB
JSON
Raw Normal View History

2018-07-30 18:58:49 +00:00
{
2018-09-16 09:54:24 +00:00
"name": "ra-lsp",
"displayName": "ra-lsp",
"description": "An alternative rust language server to the RLS",
"preview": true,
"private": true,
2018-08-27 19:52:43 +00:00
"version": "0.0.1",
"publisher": "matklad",
"repository": {
2018-09-16 09:54:24 +00:00
"url": "https://github.com/matklad/rust-analyzer/"
2018-08-27 19:52:43 +00:00
},
"categories": [
"Other"
2018-08-10 22:04:09 +00:00
],
2018-08-27 19:52:43 +00:00
"engines": {
2019-04-21 08:32:48 +00:00
"vscode": "^1.33.0"
2018-08-27 19:52:43 +00:00
},
"scripts": {
"vscode:prepublish": "npm run compile",
"package": "vsce package",
2019-04-01 17:11:22 +00:00
"compile": "tsc -p ./ && shx cp src/utils/terminateProcess.sh out/utils/terminateProcess.sh",
2018-08-27 19:52:43 +00:00
"watch": "tsc -watch -p ./",
2018-10-08 21:36:47 +00:00
"postinstall": "node ./node_modules/vscode/bin/install",
"fix": "prettier **/*.{json,ts} --write && tslint --project . --fix",
2018-10-08 21:36:47 +00:00
"lint": "tslint --project .",
Initial Visual Studio Code unit tests As promised in #1439 this is an initial attempt at unit testing the VSCode extension. There are two separate parts to this: getting the test framework working and unit testing the code in #1439. The test framework nearly intact from the VSCode extension generator. The main thing missing was `test/index.ts` which acts as an entry point for Mocha. This was simply copied back in. I also needed to open the test VSCode instance inside a workspace as our file URI generation depends on a workspace being open. There are two ways to run the test framework: 1. Opening the extension's source in VSCode, pressing F5 and selecting the "Extensions Test" debug target. 2. Closing all copies of VSCode and running `npm test`. This is started from the command line but actually opens a temporary VSCode window to host the tests. This doesn't attempt to wire this up to CI. That requires running a headless X11 server which is a bit daunting. I'll assess the difficulty of that in a follow-up branch. This PR is at least helpful for local development without having to induce errors on a Rust project. For the actual tests this uses snapshots of `rustc` output from a real Rust project captured from the command line. Except for extracting the `message` object and reformatting they're copied verbatim into fixture JSON files. Only four different types of diagnostics are tested but they represent the main combinations of code actions and related information possible. They can be considered the happy path tests; as we encounter corner-cases we can introduce new tests fixtures.
2019-06-26 10:14:18 +00:00
"test": "node node_modules/vscode/bin/test",
2018-10-08 21:36:47 +00:00
"prettier": "prettier **/*.{json,ts}",
2019-07-29 08:39:40 +00:00
"travis": "npm run compile && npm run test && npm run lint && npm run prettier -- --write && git diff --exit-code"
2018-10-08 21:36:47 +00:00
},
"prettier": {
2018-10-08 21:38:33 +00:00
"tabWidth": 4,
"singleQuote": true
2018-08-27 19:52:43 +00:00
},
"dependencies": {
"seedrandom": "^3.0.1",
2019-04-21 08:32:48 +00:00
"vscode-languageclient": "^5.3.0-next.4"
2018-08-27 19:52:43 +00:00
},
"devDependencies": {
2019-07-29 08:22:56 +00:00
"@types/mocha": "^5.2.7",
"@types/node": "^10.14.13",
"@types/seedrandom": "^2.4.28",
2019-07-29 08:22:56 +00:00
"prettier": "^1.18.2",
2019-04-21 08:32:48 +00:00
"shx": "^0.3.1",
2019-07-29 08:22:56 +00:00
"tslint": "^5.18.0",
2019-02-07 19:55:09 +00:00
"tslint-config-prettier": "^1.18.0",
2019-07-29 08:22:56 +00:00
"typescript": "^3.5.3",
2019-07-25 09:17:27 +00:00
"vsce": "^1.66.0",
2019-07-29 08:22:56 +00:00
"vscode": "^1.1.35"
2018-08-27 19:52:43 +00:00
},
"activationEvents": [
"onLanguage:rust",
"onCommand:rust-analyzer.analyzerStatus",
"onCommand:rust-analyzer.collectGarbage",
"workspaceContains:**/Cargo.toml"
2018-08-13 10:46:05 +00:00
],
2018-08-27 19:52:43 +00:00
"main": "./out/extension",
"contributes": {
"taskDefinitions": [
{
"type": "cargo",
"required": [
"command"
],
"properties": {
"label": {
"type": "string"
},
"command": {
"type": "string"
},
"args": {
"type": "array"
},
"env": {
"type": "object"
}
}
}
],
"commands": [
{
2019-01-28 11:43:07 +00:00
"command": "rust-analyzer.syntaxTree",
"title": "Show Syntax Tree",
2019-01-29 17:16:14 +00:00
"category": "Rust Analyzer"
2018-08-27 19:52:43 +00:00
},
{
2019-01-28 11:43:07 +00:00
"command": "rust-analyzer.matchingBrace",
2019-01-29 17:16:14 +00:00
"title": "Find matching brace",
"category": "Rust Analyzer"
2018-08-27 19:52:43 +00:00
},
{
2019-01-28 11:43:07 +00:00
"command": "rust-analyzer.parentModule",
2019-01-29 17:16:14 +00:00
"title": "Locate parent module",
"category": "Rust Analyzer"
2018-08-27 19:52:43 +00:00
},
{
2019-01-28 11:43:07 +00:00
"command": "rust-analyzer.joinLines",
2019-01-29 17:16:14 +00:00
"title": "Join lines",
"category": "Rust Analyzer"
2018-08-27 19:52:43 +00:00
},
{
2019-01-28 11:43:07 +00:00
"command": "rust-analyzer.run",
2019-01-29 17:16:14 +00:00
"title": "Run",
"category": "Rust Analyzer"
2019-01-22 21:15:03 +00:00
},
{
2019-01-28 11:43:07 +00:00
"command": "rust-analyzer.analyzerStatus",
2019-01-29 17:16:14 +00:00
"title": "Status",
"category": "Rust Analyzer"
2019-01-25 16:11:58 +00:00
},
{
2019-01-28 11:43:07 +00:00
"command": "rust-analyzer.collectGarbage",
2019-01-29 17:16:14 +00:00
"title": "Run garbage collection",
"category": "Rust Analyzer"
2019-04-15 19:41:27 +00:00
},
{
"command": "rust-analyzer.reload",
"title": "Restart server",
"category": "Rust Analyzer"
2019-04-13 20:13:21 +00:00
},
{
"command": "rust-analyzer.startCargoWatch",
"title": "Start Cargo Watch",
"category": "Rust Analyzer"
},
{
"command": "rust-analyzer.stopCargoWatch",
"title": "Stop Cargo Watch",
"category": "Rust Analyzer"
2018-08-27 19:52:43 +00:00
}
],
"keybindings": [
{
2019-01-28 11:43:07 +00:00
"command": "rust-analyzer.parentModule",
2018-08-27 19:52:43 +00:00
"key": "ctrl+u",
"when": "editorTextFocus && editorLangId == rust"
},
{
2019-01-28 11:43:07 +00:00
"command": "rust-analyzer.matchingBrace",
2018-08-27 19:52:43 +00:00
"key": "ctrl+shift+m",
"when": "editorTextFocus && editorLangId == rust"
},
{
2019-01-28 11:43:07 +00:00
"command": "rust-analyzer.joinLines",
2018-08-27 19:52:43 +00:00
"key": "ctrl+shift+j",
"when": "editorTextFocus && editorLangId == rust"
},
{
2019-01-28 11:43:07 +00:00
"command": "rust-analyzer.run",
2018-08-27 19:52:43 +00:00
"key": "ctrl+r",
"when": "editorTextFocus && editorLangId == rust"
}
2018-08-13 10:46:05 +00:00
],
"configuration": {
"type": "object",
"title": "Rust Analyzer",
"properties": {
2019-01-28 11:43:07 +00:00
"rust-analyzer.highlightingOn": {
"type": "boolean",
"default": false,
"description": "Highlight Rust code (overrides built-in syntax highlighting)"
},
2019-05-27 09:26:15 +00:00
"rust-analyzer.rainbowHighlightingOn": {
"type": "boolean",
"default": false,
"description": "When highlighting Rust code, use a unique color per identifier"
},
"rust-analyzer.showWorkspaceLoadedNotification": {
"type": "boolean",
"default": true,
"description": "Show notification when workspace was loaded"
},
"rust-analyzer.enableEnhancedTyping": {
"type": "boolean",
"default": true,
"description": "Enables enhanced typing. NOTE: If using a VIM extension, you should set this to false"
},
2019-01-28 11:43:07 +00:00
"rust-analyzer.raLspServerPath": {
"type": [
"string"
],
"default": "ra_lsp_server",
"description": "Path to ra_lsp_server executable"
},
"rust-analyzer.enableCargoWatchOnStartup": {
"type": "string",
"default": "ask",
"enum": [
"ask",
"enabled",
"disabled"
],
"enumDescriptions": [
"Asks each time whether to run `cargo watch`",
"`cargo watch` is always started",
"Don't start `cargo watch`"
],
"description": "Whether to run `cargo watch` on startup"
},
"rust-analyzer.excludeGlobs": {
"type": "array",
"default": "[]",
"description": "Paths to exclude from analysis"
},
2019-06-24 10:50:34 +00:00
"rust-analyzer.cargo-watch.arguments": {
2019-04-02 06:43:02 +00:00
"type": "string",
2019-06-24 10:02:20 +00:00
"description": "`cargo-watch` arguments. (e.g: `--features=\"shumway,pdf\"` will run as `cargo watch -x \"check --features=\"shumway,pdf\"\"` )",
2019-04-02 06:43:02 +00:00
"default": ""
},
"rust-analyzer.cargo-watch.command": {
2019-06-24 10:02:20 +00:00
"type": "string",
"description": "`cargo-watch` command. (e.g: `clippy` will run as `cargo watch -x clippy` )",
2019-06-24 10:50:34 +00:00
"default": "check"
2019-06-24 10:02:20 +00:00
},
2019-01-28 11:43:07 +00:00
"rust-analyzer.trace.server": {
"type": "string",
"scope": "window",
"enum": [
"off",
"messages",
"verbose"
],
2019-04-02 06:43:02 +00:00
"enumDescriptions": [
"No traces",
"Error only",
"Full log"
],
"default": "off",
2019-01-28 11:43:07 +00:00
"description": "Trace requests to the ra_lsp_server"
2019-04-02 05:07:40 +00:00
},
"rust-analyzer.trace.cargo-watch": {
"type": "string",
"scope": "window",
"enum": [
"off",
"error",
"verbose"
],
"default": "off",
"description": "Trace output of cargo-watch"
2019-06-07 17:49:29 +00:00
},
"rust-analyzer.lruCapacity": {
"type": "number",
"default": null,
"description": "Number of syntax trees rust-analyzer keeps in memory"
2019-07-23 13:38:21 +00:00
},
"rust-analyzer.displayInlayHints": {
"type": "boolean",
"default": true,
"description": "Display additional type information in the editor"
}
}
},
"problemPatterns": [
2018-08-27 19:52:43 +00:00
{
"name": "rustc",
"patterns": [
2018-08-27 19:52:43 +00:00
{
"regexp": "^(warning|warn|error)(?:\\[(.*?)\\])?: (.*)$",
2018-08-27 19:52:43 +00:00
"severity": 1,
"code": 2,
"message": 3
2018-08-27 19:52:43 +00:00
},
{
"regexp": "^[\\s->=]*(.*?):(\\d*):(\\d*)\\s*$",
"file": 1,
"line": 2,
"column": 3
2018-08-27 19:52:43 +00:00
}
]
}
],
"problemMatchers": [
{
"name": "rustc",
"fileLocation": [
"relative",
"${workspaceRoot}"
],
"pattern": "$rustc"
2019-04-14 10:45:36 +00:00
},
{
"name": "rustc-watch",
"fileLocation": [
"relative",
"${workspaceRoot}"
],
"background": {
"beginsPattern": "^\\[Running\\b",
"endsPattern": "^\\[Finished running\\b"
},
"pattern": "$rustc"
}
],
"colors": [
{
"id": "ralsp.comment",
"description": "Color for comments",
"defaults": {
2019-05-21 13:28:10 +00:00
"dark": "#6A9955",
"light": "#008000",
"highContrast": "#7CA668"
}
},
{
"id": "ralsp.string",
"description": "Color for strings",
"defaults": {
2019-05-21 13:28:10 +00:00
"dark": "#CE9178",
"light": "#A31515",
"highContrast": "#CE9178"
}
},
{
"id": "ralsp.keyword",
"description": "Color for keywords",
"defaults": {
2019-05-21 13:28:10 +00:00
"dark": "#569cd6",
"light": "#0000FF",
"highContrast": "#569CD6"
}
},
{
2019-05-21 13:28:10 +00:00
"id": "ralsp.keyword.control",
"description": "Color for control keywords",
"defaults": {
2019-05-21 13:28:10 +00:00
"dark": "#C586C0",
"light": "#AF00DB",
"highContrast": "#C586C0"
}
},
2019-05-21 13:28:10 +00:00
{
"id": "ralsp.keyword.unsafe",
"description": "Color for unsafe",
"defaults": {
"dark": "#FF3030",
"light": "#FF1010",
"highContrast": "#FF1010"
}
},
{
"id": "ralsp.function",
"description": "Color for functions",
"defaults": {
2019-05-21 13:28:10 +00:00
"dark": "#DCDCAA",
"light": "#795E26",
"highContrast": "#DCDCAA"
}
},
{
"id": "ralsp.parameter",
"description": "Color for parameters",
"defaults": {
2019-05-21 13:28:10 +00:00
"dark": "#9CDCFE",
"light": "#001080",
"highContrast": "#9CDCFE"
}
},
{
"id": "ralsp.builtin",
"description": "Color for builtins",
"defaults": {
"dark": "#DD6718",
"light": "#DD6718",
"highContrast": "#DD6718"
}
},
{
"id": "ralsp.text",
"description": "Color for text",
"defaults": {
2019-05-21 13:28:10 +00:00
"dark": "#D4D4D4",
"light": "#000000",
"highContrast": "#FFFFFF"
}
},
{
"id": "ralsp.attribute",
"description": "Color for attributes",
"defaults": {
2019-05-21 13:28:10 +00:00
"dark": "#9FE9BF",
"light": "#1F4B1F",
"highContrast": "#108010"
}
},
{
"id": "ralsp.literal",
"description": "Color for literals",
"defaults": {
2019-05-21 13:28:10 +00:00
"dark": "#BECEA8",
"light": "#09885A",
"highContrast": "#B5CEA8"
}
},
{
"id": "ralsp.macro",
2019-05-23 10:26:38 +00:00
"description": "Color for macros",
"defaults": {
"dark": "#BFEBBF",
"light": "#DD6718",
"highContrast": "#ED7718"
}
2019-05-23 10:26:38 +00:00
},
{
"id": "ralsp.constant",
"description": "Color for constants",
"defaults": {
"dark": "#569cd6",
"light": "#267cb6",
"highContrast": "#569cd6"
}
},
{
"id": "ralsp.type",
"description": "Color for types",
"defaults": {
"dark": "#4EC9B0",
"light": "#267F99",
"highContrast": "#4EC9B0"
}
},
{
"id": "ralsp.field",
"description": "Color for fields",
"defaults": {
"dark": "#4EC9B0",
"light": "#267F99",
"highContrast": "#4EC9B0"
}
},
{
"id": "ralsp.variable",
"description": "Color for variables",
"defaults": {
"dark": "#4EC9B0",
"light": "#267F99",
"highContrast": "#4EC9B0"
}
},
{
"id": "ralsp.variable.mut",
"description": "Color for mutable variables",
"defaults": {
2019-07-19 11:43:36 +00:00
"dark": "#4EC9B0",
"light": "#267F99",
"highContrast": "#4EC9B0"
}
},
2019-05-23 10:26:38 +00:00
{
"id": "ralsp.module",
"description": "Color for modules",
"defaults": {
"dark": "#D4D4D4",
"light": "#000000",
"highContrast": "#FFFFFF"
}
2019-07-23 13:38:21 +00:00
},
{
"id": "ralsp.inlayHint",
"description": "Color for inlay hints",
"defaults": {
"dark": "#A0A0A0F0",
"light": "#747474",
"highContrast": "#BEBEBE"
}
}
2018-08-13 10:46:05 +00:00
]
2018-08-27 19:52:43 +00:00
}
}