diff options
-rw-r--r-- | .github/workflows/ci.yaml | 2 | ||||
-rw-r--r-- | .github/workflows/release.yaml | 22 | ||||
-rw-r--r-- | .vscode/launch.json | 4 | ||||
-rw-r--r-- | .vscode/tasks.json | 2 | ||||
-rw-r--r-- | Cargo.lock | 76 | ||||
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | crates/ra_db/src/input.rs | 2 | ||||
-rw-r--r-- | crates/ra_ide_db/src/feature_flags.rs | 2 | ||||
-rw-r--r-- | crates/ra_lsp_server/src/cargo_target_spec.rs | 113 | ||||
-rw-r--r-- | crates/ra_prof/src/lib.rs | 4 | ||||
-rw-r--r-- | crates/ra_project_model/src/sysroot.rs | 72 | ||||
-rw-r--r-- | crates/ra_syntax/Cargo.toml | 2 | ||||
-rw-r--r-- | crates/ra_tt/Cargo.toml | 2 | ||||
-rw-r--r-- | crates/rust-analyzer/Cargo.toml (renamed from crates/ra_lsp_server/Cargo.toml) | 7 | ||||
-rw-r--r-- | crates/rust-analyzer/build.rs (renamed from crates/ra_lsp_server/build.rs) | 0 | ||||
-rw-r--r-- | crates/rust-analyzer/src/bin/args.rs (renamed from crates/ra_lsp_server/src/args.rs) | 16 | ||||
-rw-r--r-- | crates/rust-analyzer/src/bin/main.rs (renamed from crates/ra_lsp_server/src/main.rs) | 10 | ||||
-rw-r--r-- | crates/rust-analyzer/src/caps.rs (renamed from crates/ra_lsp_server/src/caps.rs) | 0 | ||||
-rw-r--r-- | crates/rust-analyzer/src/cargo_target_spec.rs | 118 | ||||
-rw-r--r-- | crates/rust-analyzer/src/cli.rs (renamed from crates/ra_lsp_server/src/cli.rs) | 2 | ||||
-rw-r--r-- | crates/rust-analyzer/src/cli/analysis_bench.rs (renamed from crates/ra_lsp_server/src/cli/analysis_bench.rs) | 2 | ||||
-rw-r--r-- | crates/rust-analyzer/src/cli/analysis_stats.rs (renamed from crates/ra_lsp_server/src/cli/analysis_stats.rs) | 3 | ||||
-rw-r--r-- | crates/rust-analyzer/src/cli/load_cargo.rs (renamed from crates/ra_lsp_server/src/cli/load_cargo.rs) | 18 | ||||
-rw-r--r-- | crates/rust-analyzer/src/cli/progress_report.rs (renamed from crates/ra_lsp_server/src/cli/progress_report.rs) | 0 | ||||
-rw-r--r-- | crates/rust-analyzer/src/config.rs (renamed from crates/ra_lsp_server/src/config.rs) | 0 | ||||
-rw-r--r-- | crates/rust-analyzer/src/conv.rs (renamed from crates/ra_lsp_server/src/conv.rs) | 3 | ||||
-rw-r--r-- | crates/rust-analyzer/src/diagnostics.rs (renamed from crates/ra_lsp_server/src/diagnostics.rs) | 4 | ||||
-rw-r--r-- | crates/rust-analyzer/src/lib.rs (renamed from crates/ra_lsp_server/src/lib.rs) | 7 | ||||
-rw-r--r-- | crates/rust-analyzer/src/main_loop.rs (renamed from crates/ra_lsp_server/src/main_loop.rs) | 4 | ||||
-rw-r--r-- | crates/rust-analyzer/src/main_loop/handlers.rs (renamed from crates/ra_lsp_server/src/main_loop/handlers.rs) | 10 | ||||
-rw-r--r-- | crates/rust-analyzer/src/main_loop/pending_requests.rs (renamed from crates/ra_lsp_server/src/main_loop/pending_requests.rs) | 2 | ||||
-rw-r--r-- | crates/rust-analyzer/src/main_loop/subscriptions.rs (renamed from crates/ra_lsp_server/src/main_loop/subscriptions.rs) | 3 | ||||
-rw-r--r-- | crates/rust-analyzer/src/markdown.rs (renamed from crates/ra_lsp_server/src/markdown.rs) | 0 | ||||
-rw-r--r-- | crates/rust-analyzer/src/req.rs (renamed from crates/ra_lsp_server/src/req.rs) | 0 | ||||
-rw-r--r-- | crates/rust-analyzer/src/vfs_glob.rs (renamed from crates/ra_lsp_server/src/vfs_glob.rs) | 2 | ||||
-rw-r--r-- | crates/rust-analyzer/src/world.rs (renamed from crates/ra_lsp_server/src/world.rs) | 4 | ||||
-rw-r--r-- | crates/rust-analyzer/tests/heavy_tests/main.rs (renamed from crates/ra_lsp_server/tests/heavy_tests/main.rs) | 2 | ||||
-rw-r--r-- | crates/rust-analyzer/tests/heavy_tests/support.rs (renamed from crates/ra_lsp_server/tests/heavy_tests/support.rs) | 2 | ||||
-rw-r--r-- | docs/dev/README.md | 18 | ||||
-rw-r--r-- | docs/dev/architecture.md | 6 | ||||
-rw-r--r-- | docs/dev/debugging.md | 16 | ||||
-rw-r--r-- | docs/user/readme.adoc | 16 | ||||
-rw-r--r-- | editors/code/.eslintrc.js | 34 | ||||
-rw-r--r-- | editors/code/package-lock.json | 904 | ||||
-rw-r--r-- | editors/code/package.json | 14 | ||||
-rw-r--r-- | editors/code/src/commands/index.ts | 2 | ||||
-rw-r--r-- | editors/code/src/commands/ssr.ts | 4 | ||||
-rw-r--r-- | editors/code/src/config.ts | 42 | ||||
-rw-r--r-- | editors/code/src/highlighting.ts | 2 | ||||
-rw-r--r-- | editors/code/src/inlay_hints.ts | 8 | ||||
-rw-r--r-- | editors/code/src/installation/download_artifact.ts | 4 | ||||
-rw-r--r-- | editors/code/src/installation/fetch_artifact_release_info.ts | 6 | ||||
-rw-r--r-- | editors/code/src/installation/server.ts | 2 | ||||
-rw-r--r-- | editors/code/src/main.ts | 12 | ||||
-rw-r--r-- | editors/code/src/status_display.ts | 2 | ||||
-rw-r--r-- | editors/code/tslint.json | 10 | ||||
-rw-r--r-- | xtask/src/install.rs | 4 | ||||
-rw-r--r-- | xtask/tests/tidy-tests/docs.rs | 1 |
58 files changed, 1247 insertions, 384 deletions
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 2605bc6ae..42b1c6921 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml | |||
@@ -95,5 +95,7 @@ jobs: | |||
95 | 95 | ||
96 | - run: npm ci | 96 | - run: npm ci |
97 | working-directory: ./editors/code | 97 | working-directory: ./editors/code |
98 | - run: npm run fmt | ||
99 | working-directory: ./editors/code | ||
98 | - run: npm run package --scripts-prepend-node-path | 100 | - run: npm run package --scripts-prepend-node-path |
99 | working-directory: ./editors/code | 101 | working-directory: ./editors/code |
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index d6d5dba95..a697c0071 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml | |||
@@ -44,29 +44,29 @@ jobs: | |||
44 | CC: clang | 44 | CC: clang |
45 | with: | 45 | with: |
46 | command: build | 46 | command: build |
47 | args: --package ra_lsp_server --bin ra_lsp_server --release --target x86_64-unknown-linux-musl | 47 | args: --package rust-analyzer --bin rust-analyzer --release --target x86_64-unknown-linux-musl |
48 | 48 | ||
49 | - name: Build | 49 | - name: Build |
50 | if: matrix.os != 'ubuntu-latest' | 50 | if: matrix.os != 'ubuntu-latest' |
51 | uses: actions-rs/cargo@v1 | 51 | uses: actions-rs/cargo@v1 |
52 | with: | 52 | with: |
53 | command: build | 53 | command: build |
54 | args: --package ra_lsp_server --bin ra_lsp_server --release | 54 | args: --package rust-analyzer --bin rust-analyzer --release |
55 | 55 | ||
56 | - name: Create distribution dir | 56 | - name: Create distribution dir |
57 | run: mkdir ./dist | 57 | run: mkdir ./dist |
58 | 58 | ||
59 | - name: Copy binary | 59 | - name: Copy binary |
60 | if: matrix.os == 'ubuntu-latest' | 60 | if: matrix.os == 'ubuntu-latest' |
61 | run: cp ./target/x86_64-unknown-linux-musl/release/ra_lsp_server ./dist/ra_lsp_server-linux && strip ./dist/ra_lsp_server-linux | 61 | run: cp ./target/x86_64-unknown-linux-musl/release/rust-analyzer ./dist/rust-analyzer-linux && strip ./dist/rust-analyzer-linux |
62 | 62 | ||
63 | - name: Copy binary | 63 | - name: Copy binary |
64 | if: matrix.os == 'macos-latest' | 64 | if: matrix.os == 'macos-latest' |
65 | run: cp ./target/release/ra_lsp_server ./dist/ra_lsp_server-mac | 65 | run: cp ./target/release/rust-analyzer ./dist/rust-analyzer-mac |
66 | 66 | ||
67 | - name: Copy binary | 67 | - name: Copy binary |
68 | if: matrix.os == 'windows-latest' | 68 | if: matrix.os == 'windows-latest' |
69 | run: copy ./target/release/ra_lsp_server.exe ./dist/ra_lsp_server-windows.exe | 69 | run: copy ./target/release/rust-analyzer.exe ./dist/rust-analyzer-windows.exe |
70 | 70 | ||
71 | - name: Upload artifacts | 71 | - name: Upload artifacts |
72 | uses: actions/upload-artifact@v1 | 72 | uses: actions/upload-artifact@v1 |
@@ -153,8 +153,8 @@ jobs: | |||
153 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | 153 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
154 | with: | 154 | with: |
155 | upload_url: ${{ steps.create_release.outputs.upload_url }} | 155 | upload_url: ${{ steps.create_release.outputs.upload_url }} |
156 | asset_path: ./dist/ra_lsp_server-linux | 156 | asset_path: ./dist/rust-analyzer-linux |
157 | asset_name: ra_lsp_server-linux | 157 | asset_name: rust-analyzer-linux |
158 | asset_content_type: application/octet-stream | 158 | asset_content_type: application/octet-stream |
159 | 159 | ||
160 | - uses: actions/[email protected] | 160 | - uses: actions/[email protected] |
@@ -162,8 +162,8 @@ jobs: | |||
162 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | 162 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
163 | with: | 163 | with: |
164 | upload_url: ${{ steps.create_release.outputs.upload_url }} | 164 | upload_url: ${{ steps.create_release.outputs.upload_url }} |
165 | asset_path: ./dist/ra_lsp_server-mac | 165 | asset_path: ./dist/rust-analyzer-mac |
166 | asset_name: ra_lsp_server-mac | 166 | asset_name: rust-analyzer-mac |
167 | asset_content_type: application/octet-stream | 167 | asset_content_type: application/octet-stream |
168 | 168 | ||
169 | - uses: actions/[email protected] | 169 | - uses: actions/[email protected] |
@@ -171,8 +171,8 @@ jobs: | |||
171 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | 171 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
172 | with: | 172 | with: |
173 | upload_url: ${{ steps.create_release.outputs.upload_url }} | 173 | upload_url: ${{ steps.create_release.outputs.upload_url }} |
174 | asset_path: ./dist/ra_lsp_server-windows.exe | 174 | asset_path: ./dist/rust-analyzer-windows.exe |
175 | asset_name: ra_lsp_server-windows.exe | 175 | asset_name: rust-analyzer-windows.exe |
176 | asset_content_type: application/octet-stream | 176 | asset_content_type: application/octet-stream |
177 | 177 | ||
178 | - uses: actions/[email protected] | 178 | - uses: actions/[email protected] |
diff --git a/.vscode/launch.json b/.vscode/launch.json index b1bd98d4a..2e5c61735 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json | |||
@@ -45,7 +45,7 @@ | |||
45 | "<node_internals>/**/*.js" | 45 | "<node_internals>/**/*.js" |
46 | ], | 46 | ], |
47 | "env": { | 47 | "env": { |
48 | "__RA_LSP_SERVER_DEBUG": "${workspaceFolder}/target/debug/ra_lsp_server" | 48 | "__RA_LSP_SERVER_DEBUG": "${workspaceFolder}/target/debug/rust-analyzer" |
49 | } | 49 | } |
50 | }, | 50 | }, |
51 | { | 51 | { |
@@ -59,7 +59,7 @@ | |||
59 | "name": "Attach To Server", | 59 | "name": "Attach To Server", |
60 | "type": "lldb", | 60 | "type": "lldb", |
61 | "request": "attach", | 61 | "request": "attach", |
62 | "program": "${workspaceFolder}/target/debug/ra_lsp_server", | 62 | "program": "${workspaceFolder}/target/debug/rust-analyzer", |
63 | "pid": "${command:pickMyProcess}", | 63 | "pid": "${command:pickMyProcess}", |
64 | "sourceLanguages": [ | 64 | "sourceLanguages": [ |
65 | "rust" | 65 | "rust" |
diff --git a/.vscode/tasks.json b/.vscode/tasks.json index fc9a8593b..4037e7cce 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json | |||
@@ -19,7 +19,7 @@ | |||
19 | "label": "Build Server", | 19 | "label": "Build Server", |
20 | "group": "build", | 20 | "group": "build", |
21 | "type": "shell", | 21 | "type": "shell", |
22 | "command": "cargo build --package ra_lsp_server", | 22 | "command": "cargo build --package rust-analyzer", |
23 | "problemMatcher": "$rustc" | 23 | "problemMatcher": "$rustc" |
24 | }, | 24 | }, |
25 | ] | 25 | ] |
diff --git a/Cargo.lock b/Cargo.lock index c22cbca3a..c10d72aa4 100644 --- a/Cargo.lock +++ b/Cargo.lock | |||
@@ -1095,44 +1095,6 @@ dependencies = [ | |||
1095 | ] | 1095 | ] |
1096 | 1096 | ||
1097 | [[package]] | 1097 | [[package]] |
1098 | name = "ra_lsp_server" | ||
1099 | version = "0.1.0" | ||
1100 | dependencies = [ | ||
1101 | "anyhow", | ||
1102 | "crossbeam-channel", | ||
1103 | "either", | ||
1104 | "env_logger", | ||
1105 | "globset", | ||
1106 | "itertools", | ||
1107 | "jod-thread", | ||
1108 | "log", | ||
1109 | "lsp-server", | ||
1110 | "lsp-types", | ||
1111 | "parking_lot", | ||
1112 | "pico-args", | ||
1113 | "ra_cargo_watch", | ||
1114 | "ra_db", | ||
1115 | "ra_hir", | ||
1116 | "ra_hir_def", | ||
1117 | "ra_hir_ty", | ||
1118 | "ra_ide", | ||
1119 | "ra_prof", | ||
1120 | "ra_project_model", | ||
1121 | "ra_syntax", | ||
1122 | "ra_text_edit", | ||
1123 | "ra_vfs", | ||
1124 | "rand", | ||
1125 | "relative-path", | ||
1126 | "rustc-hash", | ||
1127 | "serde", | ||
1128 | "serde_json", | ||
1129 | "tempfile", | ||
1130 | "test_utils", | ||
1131 | "threadpool", | ||
1132 | "winapi 0.3.8", | ||
1133 | ] | ||
1134 | |||
1135 | [[package]] | ||
1136 | name = "ra_mbe" | 1098 | name = "ra_mbe" |
1137 | version = "0.1.0" | 1099 | version = "0.1.0" |
1138 | dependencies = [ | 1100 | dependencies = [ |
@@ -1354,6 +1316,44 @@ dependencies = [ | |||
1354 | ] | 1316 | ] |
1355 | 1317 | ||
1356 | [[package]] | 1318 | [[package]] |
1319 | name = "rust-analyzer" | ||
1320 | version = "0.1.0" | ||
1321 | dependencies = [ | ||
1322 | "anyhow", | ||
1323 | "crossbeam-channel", | ||
1324 | "either", | ||
1325 | "env_logger", | ||
1326 | "globset", | ||
1327 | "itertools", | ||
1328 | "jod-thread", | ||
1329 | "log", | ||
1330 | "lsp-server", | ||
1331 | "lsp-types", | ||
1332 | "parking_lot", | ||
1333 | "pico-args", | ||
1334 | "ra_cargo_watch", | ||
1335 | "ra_db", | ||
1336 | "ra_hir", | ||
1337 | "ra_hir_def", | ||
1338 | "ra_hir_ty", | ||
1339 | "ra_ide", | ||
1340 | "ra_prof", | ||
1341 | "ra_project_model", | ||
1342 | "ra_syntax", | ||
1343 | "ra_text_edit", | ||
1344 | "ra_vfs", | ||
1345 | "rand", | ||
1346 | "relative-path", | ||
1347 | "rustc-hash", | ||
1348 | "serde", | ||
1349 | "serde_json", | ||
1350 | "tempfile", | ||
1351 | "test_utils", | ||
1352 | "threadpool", | ||
1353 | "winapi 0.3.8", | ||
1354 | ] | ||
1355 | |||
1356 | [[package]] | ||
1357 | name = "rustc-demangle" | 1357 | name = "rustc-demangle" |
1358 | version = "0.1.16" | 1358 | version = "0.1.16" |
1359 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1359 | source = "registry+https://github.com/rust-lang/crates.io-index" |
@@ -35,7 +35,7 @@ $ git clone https://github.com/rust-analyzer/rust-analyzer && cd rust-analyzer | |||
35 | # install both the language server and VS Code extension | 35 | # install both the language server and VS Code extension |
36 | $ cargo xtask install | 36 | $ cargo xtask install |
37 | 37 | ||
38 | # alternatively, install only the server. Binary name is `ra_lsp_server`. | 38 | # alternatively, install only the server. Binary name is `rust-analyzer`. |
39 | $ cargo xtask install --server | 39 | $ cargo xtask install --server |
40 | ``` | 40 | ``` |
41 | 41 | ||
diff --git a/crates/ra_db/src/input.rs b/crates/ra_db/src/input.rs index 1f1dcea42..1b4b47215 100644 --- a/crates/ra_db/src/input.rs +++ b/crates/ra_db/src/input.rs | |||
@@ -3,7 +3,7 @@ | |||
3 | //! derived from this input. | 3 | //! derived from this input. |
4 | //! | 4 | //! |
5 | //! Note that neither this module, nor any other part of the analyzer's core do | 5 | //! Note that neither this module, nor any other part of the analyzer's core do |
6 | //! actual IO. See `vfs` and `project_model` in the `ra_lsp_server` crate for how | 6 | //! actual IO. See `vfs` and `project_model` in the `rust-analyzer` crate for how |
7 | //! actual IO is done and lowered to input. | 7 | //! actual IO is done and lowered to input. |
8 | 8 | ||
9 | use std::{fmt, str::FromStr}; | 9 | use std::{fmt, str::FromStr}; |
diff --git a/crates/ra_ide_db/src/feature_flags.rs b/crates/ra_ide_db/src/feature_flags.rs index 1b3cabf4d..76655f572 100644 --- a/crates/ra_ide_db/src/feature_flags.rs +++ b/crates/ra_ide_db/src/feature_flags.rs | |||
@@ -13,7 +13,7 @@ use rustc_hash::FxHashMap; | |||
13 | /// checked at compile time, to keep things simple and flexible. | 13 | /// checked at compile time, to keep things simple and flexible. |
14 | /// | 14 | /// |
15 | /// Also note that, at the moment, `FeatureFlags` also store features for | 15 | /// Also note that, at the moment, `FeatureFlags` also store features for |
16 | /// `ra_lsp_server`. This should be benign layering violation. | 16 | /// `rust-analyzer`. This should be benign layering violation. |
17 | #[derive(Debug)] | 17 | #[derive(Debug)] |
18 | pub struct FeatureFlags { | 18 | pub struct FeatureFlags { |
19 | flags: FxHashMap<String, bool>, | 19 | flags: FxHashMap<String, bool>, |
diff --git a/crates/ra_lsp_server/src/cargo_target_spec.rs b/crates/ra_lsp_server/src/cargo_target_spec.rs deleted file mode 100644 index 5fd1e7b6b..000000000 --- a/crates/ra_lsp_server/src/cargo_target_spec.rs +++ /dev/null | |||
@@ -1,113 +0,0 @@ | |||
1 | //! FIXME: write short doc here | ||
2 | |||
3 | use ra_ide::{FileId, RunnableKind, TestId}; | ||
4 | use ra_project_model::{self, ProjectWorkspace, TargetKind}; | ||
5 | |||
6 | use crate::{world::WorldSnapshot, Result}; | ||
7 | |||
8 | pub(crate) fn runnable_args( | ||
9 | world: &WorldSnapshot, | ||
10 | file_id: FileId, | ||
11 | kind: &RunnableKind, | ||
12 | ) -> Result<Vec<String>> { | ||
13 | let spec = CargoTargetSpec::for_file(world, file_id)?; | ||
14 | let mut res = Vec::new(); | ||
15 | match kind { | ||
16 | RunnableKind::Test { test_id } => { | ||
17 | res.push("test".to_string()); | ||
18 | if let Some(spec) = spec { | ||
19 | spec.push_to(&mut res); | ||
20 | } | ||
21 | res.push("--".to_string()); | ||
22 | res.push(test_id.to_string()); | ||
23 | if let TestId::Path(_) = test_id { | ||
24 | res.push("--exact".to_string()); | ||
25 | } | ||
26 | res.push("--nocapture".to_string()); | ||
27 | } | ||
28 | RunnableKind::TestMod { path } => { | ||
29 | res.push("test".to_string()); | ||
30 | if let Some(spec) = spec { | ||
31 | spec.push_to(&mut res); | ||
32 | } | ||
33 | res.push("--".to_string()); | ||
34 | res.push(path.to_string()); | ||
35 | res.push("--nocapture".to_string()); | ||
36 | } | ||
37 | RunnableKind::Bench { test_id } => { | ||
38 | res.push("bench".to_string()); | ||
39 | if let Some(spec) = spec { | ||
40 | spec.push_to(&mut res); | ||
41 | } | ||
42 | res.push("--".to_string()); | ||
43 | res.push(test_id.to_string()); | ||
44 | if let TestId::Path(_) = test_id { | ||
45 | res.push("--exact".to_string()); | ||
46 | } | ||
47 | res.push("--nocapture".to_string()); | ||
48 | } | ||
49 | RunnableKind::Bin => { | ||
50 | res.push("run".to_string()); | ||
51 | if let Some(spec) = spec { | ||
52 | spec.push_to(&mut res); | ||
53 | } | ||
54 | } | ||
55 | } | ||
56 | Ok(res) | ||
57 | } | ||
58 | |||
59 | pub struct CargoTargetSpec { | ||
60 | pub package: String, | ||
61 | pub target: String, | ||
62 | pub target_kind: TargetKind, | ||
63 | } | ||
64 | |||
65 | impl CargoTargetSpec { | ||
66 | pub fn for_file(world: &WorldSnapshot, file_id: FileId) -> Result<Option<CargoTargetSpec>> { | ||
67 | let &crate_id = match world.analysis().crate_for(file_id)?.first() { | ||
68 | Some(crate_id) => crate_id, | ||
69 | None => return Ok(None), | ||
70 | }; | ||
71 | let file_id = world.analysis().crate_root(crate_id)?; | ||
72 | let path = world.file_id_to_path(file_id); | ||
73 | let res = world.workspaces.iter().find_map(|ws| match ws { | ||
74 | ProjectWorkspace::Cargo { cargo, .. } => { | ||
75 | let tgt = cargo.target_by_root(&path)?; | ||
76 | Some(CargoTargetSpec { | ||
77 | package: tgt.package(&cargo).name(&cargo).to_string(), | ||
78 | target: tgt.name(&cargo).to_string(), | ||
79 | target_kind: tgt.kind(&cargo), | ||
80 | }) | ||
81 | } | ||
82 | ProjectWorkspace::Json { .. } => None, | ||
83 | }); | ||
84 | Ok(res) | ||
85 | } | ||
86 | |||
87 | pub fn push_to(self, buf: &mut Vec<String>) { | ||
88 | buf.push("--package".to_string()); | ||
89 | buf.push(self.package); | ||
90 | match self.target_kind { | ||
91 | TargetKind::Bin => { | ||
92 | buf.push("--bin".to_string()); | ||
93 | buf.push(self.target); | ||
94 | } | ||
95 | TargetKind::Test => { | ||
96 | buf.push("--test".to_string()); | ||
97 | buf.push(self.target); | ||
98 | } | ||
99 | TargetKind::Bench => { | ||
100 | buf.push("--bench".to_string()); | ||
101 | buf.push(self.target); | ||
102 | } | ||
103 | TargetKind::Example => { | ||
104 | buf.push("--example".to_string()); | ||
105 | buf.push(self.target); | ||
106 | } | ||
107 | TargetKind::Lib => { | ||
108 | buf.push("--lib".to_string()); | ||
109 | } | ||
110 | TargetKind::Other => (), | ||
111 | } | ||
112 | } | ||
113 | } | ||
diff --git a/crates/ra_prof/src/lib.rs b/crates/ra_prof/src/lib.rs index 7ff8db58a..c267bc85f 100644 --- a/crates/ra_prof/src/lib.rs +++ b/crates/ra_prof/src/lib.rs | |||
@@ -351,13 +351,13 @@ impl Drop for Scope { | |||
351 | /// 2. Build with `cpu_profiler` feature. | 351 | /// 2. Build with `cpu_profiler` feature. |
352 | /// 3. Tun the code, the *raw* output would be in the `./out.profile` file. | 352 | /// 3. Tun the code, the *raw* output would be in the `./out.profile` file. |
353 | /// 4. Install pprof for visualization (https://github.com/google/pprof). | 353 | /// 4. Install pprof for visualization (https://github.com/google/pprof). |
354 | /// 5. Use something like `pprof -svg target/release/ra_lsp_server ./out.profile` to see the results. | 354 | /// 5. Use something like `pprof -svg target/release/rust-analyzer ./out.profile` to see the results. |
355 | /// | 355 | /// |
356 | /// For example, here's how I run profiling on NixOS: | 356 | /// For example, here's how I run profiling on NixOS: |
357 | /// | 357 | /// |
358 | /// ```bash | 358 | /// ```bash |
359 | /// $ nix-shell -p gperftools --run \ | 359 | /// $ nix-shell -p gperftools --run \ |
360 | /// 'cargo run --release -p ra_lsp_server -- parse < ~/projects/rustbench/parser.rs > /dev/null' | 360 | /// 'cargo run --release -p rust-analyzer -- parse < ~/projects/rustbench/parser.rs > /dev/null' |
361 | /// ``` | 361 | /// ``` |
362 | #[derive(Debug)] | 362 | #[derive(Debug)] |
363 | pub struct CpuProfiler { | 363 | pub struct CpuProfiler { |
diff --git a/crates/ra_project_model/src/sysroot.rs b/crates/ra_project_model/src/sysroot.rs index 7b9cc899c..db779a2d2 100644 --- a/crates/ra_project_model/src/sysroot.rs +++ b/crates/ra_project_model/src/sysroot.rs | |||
@@ -1,10 +1,10 @@ | |||
1 | //! FIXME: write short doc here | 1 | //! FIXME: write short doc here |
2 | 2 | ||
3 | use anyhow::{anyhow, bail, Context, Result}; | 3 | use anyhow::{bail, Context, Result}; |
4 | use std::{ | 4 | use std::{ |
5 | env, | 5 | env, |
6 | path::{Path, PathBuf}, | 6 | path::{Path, PathBuf}, |
7 | process::Command, | 7 | process::{Command, Output}, |
8 | }; | 8 | }; |
9 | 9 | ||
10 | use ra_arena::{impl_arena_id, Arena, RawId}; | 10 | use ra_arena::{impl_arena_id, Arena, RawId}; |
@@ -47,18 +47,7 @@ impl Sysroot { | |||
47 | } | 47 | } |
48 | 48 | ||
49 | pub fn discover(cargo_toml: &Path) -> Result<Sysroot> { | 49 | pub fn discover(cargo_toml: &Path) -> Result<Sysroot> { |
50 | let src = try_find_src_path(cargo_toml)?; | 50 | let src = get_or_install_rust_src(cargo_toml)?; |
51 | |||
52 | if !src.exists() { | ||
53 | Err(anyhow!( | ||
54 | "can't load standard library from sysroot\n\ | ||
55 | {}\n\ | ||
56 | (discovered via `rustc --print sysroot`)\n\ | ||
57 | try running `rustup component add rust-src` or set `RUST_SRC_PATH`", | ||
58 | src.display(), | ||
59 | ))?; | ||
60 | } | ||
61 | |||
62 | let mut sysroot = Sysroot { crates: Arena::default() }; | 51 | let mut sysroot = Sysroot { crates: Arena::default() }; |
63 | for name in SYSROOT_CRATES.trim().lines() { | 52 | for name in SYSROOT_CRATES.trim().lines() { |
64 | let root = src.join(format!("lib{}", name)).join("lib.rs"); | 53 | let root = src.join(format!("lib{}", name)).join("lib.rs"); |
@@ -90,27 +79,54 @@ impl Sysroot { | |||
90 | } | 79 | } |
91 | } | 80 | } |
92 | 81 | ||
93 | fn try_find_src_path(cargo_toml: &Path) -> Result<PathBuf> { | 82 | fn create_command_text(program: &str, args: &[&str]) -> String { |
94 | if let Ok(path) = env::var("RUST_SRC_PATH") { | 83 | format!("{} {}", program, args.join(" ")) |
95 | return Ok(path.into()); | 84 | } |
96 | } | ||
97 | 85 | ||
98 | let rustc_output = Command::new("rustc") | 86 | fn run_command_in_cargo_dir(cargo_toml: &Path, program: &str, args: &[&str]) -> Result<Output> { |
87 | let output = Command::new(program) | ||
99 | .current_dir(cargo_toml.parent().unwrap()) | 88 | .current_dir(cargo_toml.parent().unwrap()) |
100 | .args(&["--print", "sysroot"]) | 89 | .args(args) |
101 | .output() | 90 | .output() |
102 | .context("rustc --print sysroot failed")?; | 91 | .context(format!("{} failed", create_command_text(program, args)))?; |
103 | if !rustc_output.status.success() { | 92 | if !output.status.success() { |
104 | match rustc_output.status.code() { | 93 | match output.status.code() { |
105 | Some(code) => { | 94 | Some(code) => bail!( |
106 | bail!("failed to locate sysroot: rustc --print sysroot exited with code {}", code) | 95 | "failed to run the command: '{}' exited with code {}", |
107 | } | 96 | create_command_text(program, args), |
108 | None => bail!("failed to locate sysroot: rustc --print sysroot terminated by signal"), | 97 | code |
98 | ), | ||
99 | None => bail!( | ||
100 | "failed to run the command: '{}' terminated by signal", | ||
101 | create_command_text(program, args) | ||
102 | ), | ||
109 | }; | 103 | }; |
110 | } | 104 | } |
105 | Ok(output) | ||
106 | } | ||
107 | |||
108 | fn get_or_install_rust_src(cargo_toml: &Path) -> Result<PathBuf> { | ||
109 | if let Ok(path) = env::var("RUST_SRC_PATH") { | ||
110 | return Ok(path.into()); | ||
111 | } | ||
112 | let rustc_output = run_command_in_cargo_dir(cargo_toml, "rustc", &["--print", "sysroot"])?; | ||
111 | let stdout = String::from_utf8(rustc_output.stdout)?; | 113 | let stdout = String::from_utf8(rustc_output.stdout)?; |
112 | let sysroot_path = Path::new(stdout.trim()); | 114 | let sysroot_path = Path::new(stdout.trim()); |
113 | Ok(sysroot_path.join("lib/rustlib/src/rust/src")) | 115 | let src_path = sysroot_path.join("lib/rustlib/src/rust/src"); |
116 | |||
117 | if !src_path.exists() { | ||
118 | run_command_in_cargo_dir(cargo_toml, "rustup", &["component", "add", "rust-src"])?; | ||
119 | } | ||
120 | if !src_path.exists() { | ||
121 | bail!( | ||
122 | "can't load standard library from sysroot\n\ | ||
123 | {}\n\ | ||
124 | (discovered via `rustc --print sysroot`)\n\ | ||
125 | try running `rustup component add rust-src` or set `RUST_SRC_PATH`", | ||
126 | src_path.display(), | ||
127 | ) | ||
128 | } | ||
129 | Ok(src_path) | ||
114 | } | 130 | } |
115 | 131 | ||
116 | impl SysrootCrate { | 132 | impl SysrootCrate { |
diff --git a/crates/ra_syntax/Cargo.toml b/crates/ra_syntax/Cargo.toml index 83db943fe..cb72972c5 100644 --- a/crates/ra_syntax/Cargo.toml +++ b/crates/ra_syntax/Cargo.toml | |||
@@ -22,7 +22,7 @@ ra_text_edit = { path = "../ra_text_edit" } | |||
22 | ra_parser = { path = "../ra_parser" } | 22 | ra_parser = { path = "../ra_parser" } |
23 | 23 | ||
24 | # This crate transitively depends on `smol_str` via `rowan`. | 24 | # This crate transitively depends on `smol_str` via `rowan`. |
25 | # ideally, `serde` should be enabled by `ra_lsp_server`, but we enable it here | 25 | # ideally, `serde` should be enabled by `rust-analyzer`, but we enable it here |
26 | # to reduce number of compilations | 26 | # to reduce number of compilations |
27 | smol_str = { version = "0.1.12", features = ["serde"] } | 27 | smol_str = { version = "0.1.12", features = ["serde"] } |
28 | serde = { version = "1", features = ["derive"] } | 28 | serde = { version = "1", features = ["derive"] } |
diff --git a/crates/ra_tt/Cargo.toml b/crates/ra_tt/Cargo.toml index b8dceb92a..c9601fdcc 100644 --- a/crates/ra_tt/Cargo.toml +++ b/crates/ra_tt/Cargo.toml | |||
@@ -8,6 +8,6 @@ authors = ["rust-analyzer developers"] | |||
8 | doctest = false | 8 | doctest = false |
9 | 9 | ||
10 | [dependencies] | 10 | [dependencies] |
11 | # ideally, `serde` should be enabled by `ra_lsp_server`, but we enable it here | 11 | # ideally, `serde` should be enabled by `rust-analyzer`, but we enable it here |
12 | # to reduce number of compilations | 12 | # to reduce number of compilations |
13 | smol_str = { version = "0.1.12", features = ["serde"] } | 13 | smol_str = { version = "0.1.12", features = ["serde"] } |
diff --git a/crates/ra_lsp_server/Cargo.toml b/crates/rust-analyzer/Cargo.toml index da523ba8a..3dae43d2a 100644 --- a/crates/ra_lsp_server/Cargo.toml +++ b/crates/rust-analyzer/Cargo.toml | |||
@@ -1,12 +1,17 @@ | |||
1 | [package] | 1 | [package] |
2 | edition = "2018" | 2 | edition = "2018" |
3 | name = "ra_lsp_server" | 3 | name = "rust-analyzer" |
4 | version = "0.1.0" | 4 | version = "0.1.0" |
5 | authors = ["rust-analyzer developers"] | 5 | authors = ["rust-analyzer developers"] |
6 | autobins = false | ||
6 | 7 | ||
7 | [lib] | 8 | [lib] |
8 | doctest = false | 9 | doctest = false |
9 | 10 | ||
11 | [[bin]] | ||
12 | name = "rust-analyzer" | ||
13 | path = "./src/bin/main.rs" | ||
14 | |||
10 | [dependencies] | 15 | [dependencies] |
11 | anyhow = "1.0" | 16 | anyhow = "1.0" |
12 | crossbeam-channel = "0.4" | 17 | crossbeam-channel = "0.4" |
diff --git a/crates/ra_lsp_server/build.rs b/crates/rust-analyzer/build.rs index 05f9772c0..05f9772c0 100644 --- a/crates/ra_lsp_server/build.rs +++ b/crates/rust-analyzer/build.rs | |||
diff --git a/crates/ra_lsp_server/src/args.rs b/crates/rust-analyzer/src/bin/args.rs index 3890fe13a..5ad3963a2 100644 --- a/crates/ra_lsp_server/src/args.rs +++ b/crates/rust-analyzer/src/bin/args.rs | |||
@@ -5,7 +5,7 @@ | |||
5 | 5 | ||
6 | use anyhow::{bail, Result}; | 6 | use anyhow::{bail, Result}; |
7 | use pico_args::Arguments; | 7 | use pico_args::Arguments; |
8 | use ra_lsp_server::cli::{BenchWhat, Position, Verbosity}; | 8 | use rust_analyzer::cli::{BenchWhat, Position, Verbosity}; |
9 | 9 | ||
10 | use std::{fmt::Write, path::PathBuf}; | 10 | use std::{fmt::Write, path::PathBuf}; |
11 | 11 | ||
@@ -74,7 +74,7 @@ impl Args { | |||
74 | ra-cli-parse | 74 | ra-cli-parse |
75 | 75 | ||
76 | USAGE: | 76 | USAGE: |
77 | ra_lsp_server parse [FLAGS] | 77 | rust-analyzer parse [FLAGS] |
78 | 78 | ||
79 | FLAGS: | 79 | FLAGS: |
80 | -h, --help Prints help inforamtion | 80 | -h, --help Prints help inforamtion |
@@ -94,7 +94,7 @@ FLAGS: | |||
94 | ra-cli-symbols | 94 | ra-cli-symbols |
95 | 95 | ||
96 | USAGE: | 96 | USAGE: |
97 | ra_lsp_server highlight [FLAGS] | 97 | rust-analyzer highlight [FLAGS] |
98 | 98 | ||
99 | FLAGS: | 99 | FLAGS: |
100 | -h, --help Prints help inforamtion" | 100 | -h, --help Prints help inforamtion" |
@@ -113,7 +113,7 @@ FLAGS: | |||
113 | ra-cli-highlight | 113 | ra-cli-highlight |
114 | 114 | ||
115 | USAGE: | 115 | USAGE: |
116 | ra_lsp_server highlight [FLAGS] | 116 | rust-analyzer highlight [FLAGS] |
117 | 117 | ||
118 | FLAGS: | 118 | FLAGS: |
119 | -h, --help Prints help information | 119 | -h, --help Prints help information |
@@ -133,7 +133,7 @@ FLAGS: | |||
133 | ra-cli-analysis-stats | 133 | ra-cli-analysis-stats |
134 | 134 | ||
135 | USAGE: | 135 | USAGE: |
136 | ra_lsp_server analysis-stats [FLAGS] [OPTIONS] [PATH] | 136 | rust-analyzer analysis-stats [FLAGS] [OPTIONS] [PATH] |
137 | 137 | ||
138 | FLAGS: | 138 | FLAGS: |
139 | -h, --help Prints help information | 139 | -h, --help Prints help information |
@@ -168,10 +168,10 @@ ARGS: | |||
168 | if matches.contains(["-h", "--help"]) { | 168 | if matches.contains(["-h", "--help"]) { |
169 | eprintln!( | 169 | eprintln!( |
170 | "\ | 170 | "\ |
171 | ra_lsp_server-analysis-bench | 171 | rust-analyzer-analysis-bench |
172 | 172 | ||
173 | USAGE: | 173 | USAGE: |
174 | ra_lsp_server analysis-bench [FLAGS] [OPTIONS] [PATH] | 174 | rust-analyzer analysis-bench [FLAGS] [OPTIONS] [PATH] |
175 | 175 | ||
176 | FLAGS: | 176 | FLAGS: |
177 | -h, --help Prints help information | 177 | -h, --help Prints help information |
@@ -207,7 +207,7 @@ ARGS: | |||
207 | ra-cli | 207 | ra-cli |
208 | 208 | ||
209 | USAGE: | 209 | USAGE: |
210 | ra_lsp_server <SUBCOMMAND> | 210 | rust-analyzer <SUBCOMMAND> |
211 | 211 | ||
212 | FLAGS: | 212 | FLAGS: |
213 | -h, --help Prints help information | 213 | -h, --help Prints help information |
diff --git a/crates/ra_lsp_server/src/main.rs b/crates/rust-analyzer/src/bin/main.rs index a549e5ff1..69e709a25 100644 --- a/crates/ra_lsp_server/src/main.rs +++ b/crates/rust-analyzer/src/bin/main.rs | |||
@@ -1,9 +1,11 @@ | |||
1 | //! `ra_lsp_server` binary | 1 | //! Driver for rust-analyzer. |
2 | //! | ||
3 | //! Based on cli flags, either spawns an LSP server, or runs a batch analysis | ||
2 | mod args; | 4 | mod args; |
3 | 5 | ||
4 | use lsp_server::Connection; | 6 | use lsp_server::Connection; |
5 | use ra_lsp_server::{cli, from_json, show_message, Result, ServerConfig}; | ||
6 | use ra_prof; | 7 | use ra_prof; |
8 | use rust_analyzer::{cli, from_json, show_message, Result, ServerConfig}; | ||
7 | 9 | ||
8 | use crate::args::HelpPrinted; | 10 | use crate::args::HelpPrinted; |
9 | 11 | ||
@@ -49,7 +51,7 @@ fn run_server() -> Result<()> { | |||
49 | log::info!("lifecycle: server started"); | 51 | log::info!("lifecycle: server started"); |
50 | 52 | ||
51 | let (connection, io_threads) = Connection::stdio(); | 53 | let (connection, io_threads) = Connection::stdio(); |
52 | let server_capabilities = serde_json::to_value(ra_lsp_server::server_capabilities()).unwrap(); | 54 | let server_capabilities = serde_json::to_value(rust_analyzer::server_capabilities()).unwrap(); |
53 | 55 | ||
54 | let initialize_params = connection.initialize(server_capabilities)?; | 56 | let initialize_params = connection.initialize(server_capabilities)?; |
55 | let initialize_params = | 57 | let initialize_params = |
@@ -82,7 +84,7 @@ fn run_server() -> Result<()> { | |||
82 | }) | 84 | }) |
83 | .unwrap_or_default(); | 85 | .unwrap_or_default(); |
84 | 86 | ||
85 | ra_lsp_server::main_loop( | 87 | rust_analyzer::main_loop( |
86 | workspace_roots, | 88 | workspace_roots, |
87 | initialize_params.capabilities, | 89 | initialize_params.capabilities, |
88 | server_config, | 90 | server_config, |
diff --git a/crates/ra_lsp_server/src/caps.rs b/crates/rust-analyzer/src/caps.rs index c4711076c..c4711076c 100644 --- a/crates/ra_lsp_server/src/caps.rs +++ b/crates/rust-analyzer/src/caps.rs | |||
diff --git a/crates/rust-analyzer/src/cargo_target_spec.rs b/crates/rust-analyzer/src/cargo_target_spec.rs new file mode 100644 index 000000000..53751aafb --- /dev/null +++ b/crates/rust-analyzer/src/cargo_target_spec.rs | |||
@@ -0,0 +1,118 @@ | |||
1 | //! See `CargoTargetSpec` | ||
2 | |||
3 | use ra_ide::{FileId, RunnableKind, TestId}; | ||
4 | use ra_project_model::{self, ProjectWorkspace, TargetKind}; | ||
5 | |||
6 | use crate::{world::WorldSnapshot, Result}; | ||
7 | |||
8 | /// Abstract representation of Cargo target. | ||
9 | /// | ||
10 | /// We use it to cook up the set of cli args we need to pass to Cargo to | ||
11 | /// build/test/run the target. | ||
12 | pub(crate) struct CargoTargetSpec { | ||
13 | pub(crate) package: String, | ||
14 | pub(crate) target: String, | ||
15 | pub(crate) target_kind: TargetKind, | ||
16 | } | ||
17 | |||
18 | impl CargoTargetSpec { | ||
19 | pub(crate) fn runnable_args( | ||
20 | spec: Option<CargoTargetSpec>, | ||
21 | kind: &RunnableKind, | ||
22 | ) -> Result<Vec<String>> { | ||
23 | let mut res = Vec::new(); | ||
24 | match kind { | ||
25 | RunnableKind::Test { test_id } => { | ||
26 | res.push("test".to_string()); | ||
27 | if let Some(spec) = spec { | ||
28 | spec.push_to(&mut res); | ||
29 | } | ||
30 | res.push("--".to_string()); | ||
31 | res.push(test_id.to_string()); | ||
32 | if let TestId::Path(_) = test_id { | ||
33 | res.push("--exact".to_string()); | ||
34 | } | ||
35 | res.push("--nocapture".to_string()); | ||
36 | } | ||
37 | RunnableKind::TestMod { path } => { | ||
38 | res.push("test".to_string()); | ||
39 | if let Some(spec) = spec { | ||
40 | spec.push_to(&mut res); | ||
41 | } | ||
42 | res.push("--".to_string()); | ||
43 | res.push(path.to_string()); | ||
44 | res.push("--nocapture".to_string()); | ||
45 | } | ||
46 | RunnableKind::Bench { test_id } => { | ||
47 | res.push("bench".to_string()); | ||
48 | if let Some(spec) = spec { | ||
49 | spec.push_to(&mut res); | ||
50 | } | ||
51 | res.push("--".to_string()); | ||
52 | res.push(test_id.to_string()); | ||
53 | if let TestId::Path(_) = test_id { | ||
54 | res.push("--exact".to_string()); | ||
55 | } | ||
56 | res.push("--nocapture".to_string()); | ||
57 | } | ||
58 | RunnableKind::Bin => { | ||
59 | res.push("run".to_string()); | ||
60 | if let Some(spec) = spec { | ||
61 | spec.push_to(&mut res); | ||
62 | } | ||
63 | } | ||
64 | } | ||
65 | Ok(res) | ||
66 | } | ||
67 | |||
68 | pub(crate) fn for_file( | ||
69 | world: &WorldSnapshot, | ||
70 | file_id: FileId, | ||
71 | ) -> Result<Option<CargoTargetSpec>> { | ||
72 | let &crate_id = match world.analysis().crate_for(file_id)?.first() { | ||
73 | Some(crate_id) => crate_id, | ||
74 | None => return Ok(None), | ||
75 | }; | ||
76 | let file_id = world.analysis().crate_root(crate_id)?; | ||
77 | let path = world.file_id_to_path(file_id); | ||
78 | let res = world.workspaces.iter().find_map(|ws| match ws { | ||
79 | ProjectWorkspace::Cargo { cargo, .. } => { | ||
80 | let tgt = cargo.target_by_root(&path)?; | ||
81 | Some(CargoTargetSpec { | ||
82 | package: tgt.package(&cargo).name(&cargo).to_string(), | ||
83 | target: tgt.name(&cargo).to_string(), | ||
84 | target_kind: tgt.kind(&cargo), | ||
85 | }) | ||
86 | } | ||
87 | ProjectWorkspace::Json { .. } => None, | ||
88 | }); | ||
89 | Ok(res) | ||
90 | } | ||
91 | |||
92 | pub(crate) fn push_to(self, buf: &mut Vec<String>) { | ||
93 | buf.push("--package".to_string()); | ||
94 | buf.push(self.package); | ||
95 | match self.target_kind { | ||
96 | TargetKind::Bin => { | ||
97 | buf.push("--bin".to_string()); | ||
98 | buf.push(self.target); | ||
99 | } | ||
100 | TargetKind::Test => { | ||
101 | buf.push("--test".to_string()); | ||
102 | buf.push(self.target); | ||
103 | } | ||
104 | TargetKind::Bench => { | ||
105 | buf.push("--bench".to_string()); | ||
106 | buf.push(self.target); | ||
107 | } | ||
108 | TargetKind::Example => { | ||
109 | buf.push("--example".to_string()); | ||
110 | buf.push(self.target); | ||
111 | } | ||
112 | TargetKind::Lib => { | ||
113 | buf.push("--lib".to_string()); | ||
114 | } | ||
115 | TargetKind::Other => (), | ||
116 | } | ||
117 | } | ||
118 | } | ||
diff --git a/crates/ra_lsp_server/src/cli.rs b/crates/rust-analyzer/src/cli.rs index 3c7b8e250..c9738d101 100644 --- a/crates/ra_lsp_server/src/cli.rs +++ b/crates/rust-analyzer/src/cli.rs | |||
@@ -1,4 +1,4 @@ | |||
1 | //! FIXME: write short doc here | 1 | //! Various batch processing tasks, intended primarily for debugging. |
2 | 2 | ||
3 | mod load_cargo; | 3 | mod load_cargo; |
4 | mod analysis_stats; | 4 | mod analysis_stats; |
diff --git a/crates/ra_lsp_server/src/cli/analysis_bench.rs b/crates/rust-analyzer/src/cli/analysis_bench.rs index e00f81073..91855e592 100644 --- a/crates/ra_lsp_server/src/cli/analysis_bench.rs +++ b/crates/rust-analyzer/src/cli/analysis_bench.rs | |||
@@ -1,4 +1,4 @@ | |||
1 | //! FIXME: write short doc here | 1 | //! Benchmark operations like highlighting or goto definition. |
2 | 2 | ||
3 | use std::{ | 3 | use std::{ |
4 | path::{Path, PathBuf}, | 4 | path::{Path, PathBuf}, |
diff --git a/crates/ra_lsp_server/src/cli/analysis_stats.rs b/crates/rust-analyzer/src/cli/analysis_stats.rs index c27fabe3c..99ab6e443 100644 --- a/crates/ra_lsp_server/src/cli/analysis_stats.rs +++ b/crates/rust-analyzer/src/cli/analysis_stats.rs | |||
@@ -1,4 +1,5 @@ | |||
1 | //! FIXME: write short doc here | 1 | //! Fully type-check project and print various stats, like the number of type |
2 | //! errors. | ||
2 | 3 | ||
3 | use std::{collections::HashSet, fmt::Write, path::Path, time::Instant}; | 4 | use std::{collections::HashSet, fmt::Write, path::Path, time::Instant}; |
4 | 5 | ||
diff --git a/crates/ra_lsp_server/src/cli/load_cargo.rs b/crates/rust-analyzer/src/cli/load_cargo.rs index bb3e1513b..8cd08ecb6 100644 --- a/crates/ra_lsp_server/src/cli/load_cargo.rs +++ b/crates/rust-analyzer/src/cli/load_cargo.rs | |||
@@ -1,18 +1,18 @@ | |||
1 | //! FIXME: write short doc here | 1 | //! Loads a Cargo project into a static instance of analysis, without support |
2 | //! for incorporating changes. | ||
2 | 3 | ||
3 | use std::{collections::HashSet, path::Path}; | 4 | use std::path::Path; |
4 | 5 | ||
6 | use anyhow::Result; | ||
5 | use crossbeam_channel::{unbounded, Receiver}; | 7 | use crossbeam_channel::{unbounded, Receiver}; |
6 | use ra_db::{CrateGraph, FileId, SourceRootId}; | 8 | use ra_db::{CrateGraph, FileId, SourceRootId}; |
7 | use ra_ide::{AnalysisChange, AnalysisHost, FeatureFlags}; | 9 | use ra_ide::{AnalysisChange, AnalysisHost, FeatureFlags}; |
8 | use ra_project_model::{get_rustc_cfg_options, PackageRoot, ProjectWorkspace}; | 10 | use ra_project_model::{get_rustc_cfg_options, PackageRoot, ProjectWorkspace}; |
9 | use ra_vfs::{RootEntry, Vfs, VfsChange, VfsTask, Watch}; | 11 | use ra_vfs::{RootEntry, Vfs, VfsChange, VfsTask, Watch}; |
10 | use rustc_hash::FxHashMap; | 12 | use rustc_hash::{FxHashMap, FxHashSet}; |
11 | 13 | ||
12 | use crate::vfs_glob::RustPackageFilterBuilder; | 14 | use crate::vfs_glob::RustPackageFilterBuilder; |
13 | 15 | ||
14 | use anyhow::Result; | ||
15 | |||
16 | fn vfs_file_to_id(f: ra_vfs::VfsFile) -> FileId { | 16 | fn vfs_file_to_id(f: ra_vfs::VfsFile) -> FileId { |
17 | FileId(f.0) | 17 | FileId(f.0) |
18 | } | 18 | } |
@@ -20,7 +20,9 @@ fn vfs_root_to_id(r: ra_vfs::VfsRoot) -> SourceRootId { | |||
20 | SourceRootId(r.0) | 20 | SourceRootId(r.0) |
21 | } | 21 | } |
22 | 22 | ||
23 | pub fn load_cargo(root: &Path) -> Result<(AnalysisHost, FxHashMap<SourceRootId, PackageRoot>)> { | 23 | pub(crate) fn load_cargo( |
24 | root: &Path, | ||
25 | ) -> Result<(AnalysisHost, FxHashMap<SourceRootId, PackageRoot>)> { | ||
24 | let root = std::env::current_dir()?.join(root); | 26 | let root = std::env::current_dir()?.join(root); |
25 | let ws = ProjectWorkspace::discover(root.as_ref(), &Default::default())?; | 27 | let ws = ProjectWorkspace::discover(root.as_ref(), &Default::default())?; |
26 | let project_roots = ws.to_roots(); | 28 | let project_roots = ws.to_roots(); |
@@ -74,7 +76,7 @@ pub fn load_cargo(root: &Path) -> Result<(AnalysisHost, FxHashMap<SourceRootId, | |||
74 | Ok((host, source_roots)) | 76 | Ok((host, source_roots)) |
75 | } | 77 | } |
76 | 78 | ||
77 | pub fn load( | 79 | pub(crate) fn load( |
78 | source_roots: &FxHashMap<SourceRootId, PackageRoot>, | 80 | source_roots: &FxHashMap<SourceRootId, PackageRoot>, |
79 | crate_graph: CrateGraph, | 81 | crate_graph: CrateGraph, |
80 | vfs: &mut Vfs, | 82 | vfs: &mut Vfs, |
@@ -86,7 +88,7 @@ pub fn load( | |||
86 | analysis_change.set_crate_graph(crate_graph); | 88 | analysis_change.set_crate_graph(crate_graph); |
87 | 89 | ||
88 | // wait until Vfs has loaded all roots | 90 | // wait until Vfs has loaded all roots |
89 | let mut roots_loaded = HashSet::new(); | 91 | let mut roots_loaded = FxHashSet::default(); |
90 | for task in receiver { | 92 | for task in receiver { |
91 | vfs.handle_task(task); | 93 | vfs.handle_task(task); |
92 | let mut done = false; | 94 | let mut done = false; |
diff --git a/crates/ra_lsp_server/src/cli/progress_report.rs b/crates/rust-analyzer/src/cli/progress_report.rs index 31867a1e9..31867a1e9 100644 --- a/crates/ra_lsp_server/src/cli/progress_report.rs +++ b/crates/rust-analyzer/src/cli/progress_report.rs | |||
diff --git a/crates/ra_lsp_server/src/config.rs b/crates/rust-analyzer/src/config.rs index 3314269ec..3314269ec 100644 --- a/crates/ra_lsp_server/src/config.rs +++ b/crates/rust-analyzer/src/config.rs | |||
diff --git a/crates/ra_lsp_server/src/conv.rs b/crates/rust-analyzer/src/conv.rs index 8af74b211..90ef74056 100644 --- a/crates/ra_lsp_server/src/conv.rs +++ b/crates/rust-analyzer/src/conv.rs | |||
@@ -1,4 +1,5 @@ | |||
1 | //! Convenience module responsible for translating between rust-analyzer's types and LSP types. | 1 | //! Convenience module responsible for translating between rust-analyzer's types |
2 | //! and LSP types. | ||
2 | 3 | ||
3 | use lsp_types::{ | 4 | use lsp_types::{ |
4 | self, CreateFile, DiagnosticSeverity, DocumentChangeOperation, DocumentChanges, Documentation, | 5 | self, CreateFile, DiagnosticSeverity, DocumentChangeOperation, DocumentChanges, Documentation, |
diff --git a/crates/ra_lsp_server/src/diagnostics.rs b/crates/rust-analyzer/src/diagnostics.rs index ea08bce24..e7924f0a3 100644 --- a/crates/ra_lsp_server/src/diagnostics.rs +++ b/crates/rust-analyzer/src/diagnostics.rs | |||
@@ -1,7 +1,9 @@ | |||
1 | //! Book keeping for keeping diagnostics easily in sync with the client. | 1 | //! Book keeping for keeping diagnostics easily in sync with the client. |
2 | |||
3 | use std::{collections::HashMap, sync::Arc}; | ||
4 | |||
2 | use lsp_types::{CodeActionOrCommand, Diagnostic, Range}; | 5 | use lsp_types::{CodeActionOrCommand, Diagnostic, Range}; |
3 | use ra_ide::FileId; | 6 | use ra_ide::FileId; |
4 | use std::{collections::HashMap, sync::Arc}; | ||
5 | 7 | ||
6 | pub type CheckFixes = Arc<HashMap<FileId, Vec<Fix>>>; | 8 | pub type CheckFixes = Arc<HashMap<FileId, Vec<Fix>>>; |
7 | 9 | ||
diff --git a/crates/ra_lsp_server/src/lib.rs b/crates/rust-analyzer/src/lib.rs index 958c70fe5..0dae30e46 100644 --- a/crates/ra_lsp_server/src/lib.rs +++ b/crates/rust-analyzer/src/lib.rs | |||
@@ -1,10 +1,13 @@ | |||
1 | //! Implementation of the LSP for rust-analyzer. | 1 | //! Implementation of the LSP for rust-analyzer. |
2 | //! | 2 | //! |
3 | //! This crate takes Rust-specific analysis results from ra_ide and | 3 | //! This crate takes Rust-specific analysis results from ra_ide and translates |
4 | //! translates into LSP types. | 4 | //! into LSP types. |
5 | //! | 5 | //! |
6 | //! It also is the root of all state. `world` module defines the bulk of the | 6 | //! It also is the root of all state. `world` module defines the bulk of the |
7 | //! state, and `main_loop` module defines the rules for modifying it. | 7 | //! state, and `main_loop` module defines the rules for modifying it. |
8 | //! | ||
9 | //! The `cli` submodule implements some batch-processing analysis, primarily as | ||
10 | //! a debugging aid. | ||
8 | #![recursion_limit = "512"] | 11 | #![recursion_limit = "512"] |
9 | 12 | ||
10 | pub mod cli; | 13 | pub mod cli; |
diff --git a/crates/ra_lsp_server/src/main_loop.rs b/crates/rust-analyzer/src/main_loop.rs index 944074118..dc16a234d 100644 --- a/crates/ra_lsp_server/src/main_loop.rs +++ b/crates/rust-analyzer/src/main_loop.rs | |||
@@ -1,5 +1,5 @@ | |||
1 | //! The main loop of `ra_lsp_server` responsible for dispatching LSP requests/replies and | 1 | //! The main loop of `rust-analyzer` responsible for dispatching LSP |
2 | //! notifications back to the client. | 2 | //! requests/replies and notifications back to the client. |
3 | 3 | ||
4 | mod handlers; | 4 | mod handlers; |
5 | mod subscriptions; | 5 | mod subscriptions; |
diff --git a/crates/ra_lsp_server/src/main_loop/handlers.rs b/crates/rust-analyzer/src/main_loop/handlers.rs index ae51141cb..bb7bab372 100644 --- a/crates/ra_lsp_server/src/main_loop/handlers.rs +++ b/crates/rust-analyzer/src/main_loop/handlers.rs | |||
@@ -1,5 +1,6 @@ | |||
1 | //! This module is responsible for implementing handlers for Lanuage Server Protocol. | 1 | //! This module is responsible for implementing handlers for Language Server |
2 | //! The majority of requests are fulfilled by calling into the `ra_ide` crate. | 2 | //! Protocol. The majority of requests are fulfilled by calling into the |
3 | //! `ra_ide` crate. | ||
3 | 4 | ||
4 | use std::{ | 5 | use std::{ |
5 | collections::hash_map::Entry, | 6 | collections::hash_map::Entry, |
@@ -29,7 +30,7 @@ use serde::{Deserialize, Serialize}; | |||
29 | use serde_json::to_value; | 30 | use serde_json::to_value; |
30 | 31 | ||
31 | use crate::{ | 32 | use crate::{ |
32 | cargo_target_spec::{runnable_args, CargoTargetSpec}, | 33 | cargo_target_spec::CargoTargetSpec, |
33 | conv::{ | 34 | conv::{ |
34 | to_call_hierarchy_item, to_location, Conv, ConvWith, FoldConvCtx, MapConvWith, TryConvWith, | 35 | to_call_hierarchy_item, to_location, Conv, ConvWith, FoldConvCtx, MapConvWith, TryConvWith, |
35 | TryConvWithToVec, | 36 | TryConvWithToVec, |
@@ -921,7 +922,8 @@ fn to_lsp_runnable( | |||
921 | file_id: FileId, | 922 | file_id: FileId, |
922 | runnable: Runnable, | 923 | runnable: Runnable, |
923 | ) -> Result<req::Runnable> { | 924 | ) -> Result<req::Runnable> { |
924 | let args = runnable_args(world, file_id, &runnable.kind)?; | 925 | let spec = CargoTargetSpec::for_file(world, file_id)?; |
926 | let args = CargoTargetSpec::runnable_args(spec, &runnable.kind)?; | ||
925 | let line_index = world.analysis().file_line_index(file_id)?; | 927 | let line_index = world.analysis().file_line_index(file_id)?; |
926 | let label = match &runnable.kind { | 928 | let label = match &runnable.kind { |
927 | RunnableKind::Test { test_id } => format!("test {}", test_id), | 929 | RunnableKind::Test { test_id } => format!("test {}", test_id), |
diff --git a/crates/ra_lsp_server/src/main_loop/pending_requests.rs b/crates/rust-analyzer/src/main_loop/pending_requests.rs index 2d2213464..73b33e419 100644 --- a/crates/ra_lsp_server/src/main_loop/pending_requests.rs +++ b/crates/rust-analyzer/src/main_loop/pending_requests.rs | |||
@@ -1,4 +1,4 @@ | |||
1 | //! Datastructures that keep track of inflight requests. | 1 | //! Data structures that keep track of inflight requests. |
2 | 2 | ||
3 | use std::time::{Duration, Instant}; | 3 | use std::time::{Duration, Instant}; |
4 | 4 | ||
diff --git a/crates/ra_lsp_server/src/main_loop/subscriptions.rs b/crates/rust-analyzer/src/main_loop/subscriptions.rs index b0bae90f5..bee6437cf 100644 --- a/crates/ra_lsp_server/src/main_loop/subscriptions.rs +++ b/crates/rust-analyzer/src/main_loop/subscriptions.rs | |||
@@ -1,4 +1,5 @@ | |||
1 | //! Keeps track of file subscriptions. | 1 | //! Keeps track of file subscriptions -- the set of currently opened files for |
2 | //! which we want to publish diagnostics, syntax highlighting, etc. | ||
2 | 3 | ||
3 | use ra_ide::FileId; | 4 | use ra_ide::FileId; |
4 | use rustc_hash::FxHashSet; | 5 | use rustc_hash::FxHashSet; |
diff --git a/crates/ra_lsp_server/src/markdown.rs b/crates/rust-analyzer/src/markdown.rs index 76bef45cc..76bef45cc 100644 --- a/crates/ra_lsp_server/src/markdown.rs +++ b/crates/rust-analyzer/src/markdown.rs | |||
diff --git a/crates/ra_lsp_server/src/req.rs b/crates/rust-analyzer/src/req.rs index 7ff7f60b3..7ff7f60b3 100644 --- a/crates/ra_lsp_server/src/req.rs +++ b/crates/rust-analyzer/src/req.rs | |||
diff --git a/crates/ra_lsp_server/src/vfs_glob.rs b/crates/rust-analyzer/src/vfs_glob.rs index 12401d75a..91b33f94e 100644 --- a/crates/ra_lsp_server/src/vfs_glob.rs +++ b/crates/rust-analyzer/src/vfs_glob.rs | |||
@@ -1,4 +1,4 @@ | |||
1 | //! `ra_vfs_glob` crate implements exclusion rules for vfs. | 1 | //! Exclusion rules for vfs. |
2 | //! | 2 | //! |
3 | //! By default, we include only `.rs` files, and skip some know offenders like | 3 | //! By default, we include only `.rs` files, and skip some know offenders like |
4 | //! `/target` or `/node_modules` altogether. | 4 | //! `/target` or `/node_modules` altogether. |
diff --git a/crates/ra_lsp_server/src/world.rs b/crates/rust-analyzer/src/world.rs index 71c95d4af..96efab844 100644 --- a/crates/ra_lsp_server/src/world.rs +++ b/crates/rust-analyzer/src/world.rs | |||
@@ -1,5 +1,5 @@ | |||
1 | //! The context or environment in which the language server functions. | 1 | //! The context or environment in which the language server functions. In our |
2 | //! In our server implementation this is know as the `WorldState`. | 2 | //! server implementation this is know as the `WorldState`. |
3 | //! | 3 | //! |
4 | //! Each tick provides an immutable snapshot of the state as `WorldSnapshot`. | 4 | //! Each tick provides an immutable snapshot of the state as `WorldSnapshot`. |
5 | 5 | ||
diff --git a/crates/ra_lsp_server/tests/heavy_tests/main.rs b/crates/rust-analyzer/tests/heavy_tests/main.rs index 9ca31cbcc..3af63d9cf 100644 --- a/crates/ra_lsp_server/tests/heavy_tests/main.rs +++ b/crates/rust-analyzer/tests/heavy_tests/main.rs | |||
@@ -7,7 +7,7 @@ use lsp_types::{ | |||
7 | PartialResultParams, Position, Range, TextDocumentItem, TextDocumentPositionParams, | 7 | PartialResultParams, Position, Range, TextDocumentItem, TextDocumentPositionParams, |
8 | WorkDoneProgressParams, | 8 | WorkDoneProgressParams, |
9 | }; | 9 | }; |
10 | use ra_lsp_server::req::{ | 10 | use rust_analyzer::req::{ |
11 | CodeActionParams, CodeActionRequest, Completion, CompletionParams, DidOpenTextDocument, | 11 | CodeActionParams, CodeActionRequest, Completion, CompletionParams, DidOpenTextDocument, |
12 | Formatting, OnEnter, Runnables, RunnablesParams, | 12 | Formatting, OnEnter, Runnables, RunnablesParams, |
13 | }; | 13 | }; |
diff --git a/crates/ra_lsp_server/tests/heavy_tests/support.rs b/crates/rust-analyzer/tests/heavy_tests/support.rs index d5ea52fa9..5b90b3218 100644 --- a/crates/ra_lsp_server/tests/heavy_tests/support.rs +++ b/crates/rust-analyzer/tests/heavy_tests/support.rs | |||
@@ -19,7 +19,7 @@ use serde_json::{to_string_pretty, Value}; | |||
19 | use tempfile::TempDir; | 19 | use tempfile::TempDir; |
20 | use test_utils::{find_mismatch, parse_fixture}; | 20 | use test_utils::{find_mismatch, parse_fixture}; |
21 | 21 | ||
22 | use ra_lsp_server::{main_loop, req, ServerConfig}; | 22 | use rust_analyzer::{main_loop, req, ServerConfig}; |
23 | 23 | ||
24 | pub struct Project<'a> { | 24 | pub struct Project<'a> { |
25 | fixture: &'a str, | 25 | fixture: &'a str, |
diff --git a/docs/dev/README.md b/docs/dev/README.md index ba24524f2..8d7e18010 100644 --- a/docs/dev/README.md +++ b/docs/dev/README.md | |||
@@ -80,7 +80,7 @@ In general, I use one of the following workflows for fixing bugs and | |||
80 | implementing features. | 80 | implementing features. |
81 | 81 | ||
82 | If the problem concerns only internal parts of rust-analyzer (ie, I don't need | 82 | If the problem concerns only internal parts of rust-analyzer (ie, I don't need |
83 | to touch `ra_lsp_server` crate or typescript code), there is a unit-test for it. | 83 | to touch `rust-analyzer` crate or typescript code), there is a unit-test for it. |
84 | So, I use **Rust Analyzer: Run** action in VS Code to run this single test, and | 84 | So, I use **Rust Analyzer: Run** action in VS Code to run this single test, and |
85 | then just do printf-driven development/debugging. As a sanity check after I'm | 85 | then just do printf-driven development/debugging. As a sanity check after I'm |
86 | done, I use `cargo xtask install --server` and **Reload Window** action in VS | 86 | done, I use `cargo xtask install --server` and **Reload Window** action in VS |
@@ -88,17 +88,17 @@ Code to sanity check that the thing works as I expect. | |||
88 | 88 | ||
89 | If the problem concerns only the VS Code extension, I use **Run Extension** | 89 | If the problem concerns only the VS Code extension, I use **Run Extension** |
90 | launch configuration from `launch.json`. Notably, this uses the usual | 90 | launch configuration from `launch.json`. Notably, this uses the usual |
91 | `ra_lsp_server` binary from `PATH`. For this it is important to have the following | 91 | `rust-analyzer` binary from `PATH`. For this it is important to have the following |
92 | in `setting.json` file: | 92 | in `setting.json` file: |
93 | ```json | 93 | ```json |
94 | { | 94 | { |
95 | "rust-analyzer.raLspServerPath": "ra_lsp_server" | 95 | "rust-analyzer.serverPath": "rust-analyzer" |
96 | } | 96 | } |
97 | ``` | 97 | ``` |
98 | After I am done with the fix, I use `cargo | 98 | After I am done with the fix, I use `cargo |
99 | xtask install --client-code` to try the new extension for real. | 99 | xtask install --client-code` to try the new extension for real. |
100 | 100 | ||
101 | If I need to fix something in the `ra_lsp_server` crate, I feel sad because it's | 101 | If I need to fix something in the `rust-analyzer` crate, I feel sad because it's |
102 | on the boundary between the two processes, and working there is slow. I usually | 102 | on the boundary between the two processes, and working there is slow. I usually |
103 | just `cargo xtask install --server` and poke changes from my live environment. | 103 | just `cargo xtask install --server` and poke changes from my live environment. |
104 | Note that this uses `--release`, which is usually faster overall, because | 104 | Note that this uses `--release`, which is usually faster overall, because |
@@ -113,7 +113,7 @@ communication, and `print!` would break it. | |||
113 | If I need to fix something simultaneously in the server and in the client, I | 113 | If I need to fix something simultaneously in the server and in the client, I |
114 | feel even more sad. I don't have a specific workflow for this case. | 114 | feel even more sad. I don't have a specific workflow for this case. |
115 | 115 | ||
116 | Additionally, I use `cargo run --release -p ra_lsp_server -- analysis-stats | 116 | Additionally, I use `cargo run --release -p rust-analyzer -- analysis-stats |
117 | path/to/some/rust/crate` to run a batch analysis. This is primarily useful for | 117 | path/to/some/rust/crate` to run a batch analysis. This is primarily useful for |
118 | performance optimizations, or for bug minimization. | 118 | performance optimizations, or for bug minimization. |
119 | 119 | ||
@@ -148,7 +148,7 @@ There's also two VS Code commands which might be of interest: | |||
148 | * `Rust Analyzer: Status` shows some memory-usage statistics. To take full | 148 | * `Rust Analyzer: Status` shows some memory-usage statistics. To take full |
149 | advantage of it, you need to compile rust-analyzer with jemalloc support: | 149 | advantage of it, you need to compile rust-analyzer with jemalloc support: |
150 | ``` | 150 | ``` |
151 | $ cargo install --path crates/ra_lsp_server --force --features jemalloc | 151 | $ cargo install --path crates/rust-analyzer --force --features jemalloc |
152 | ``` | 152 | ``` |
153 | 153 | ||
154 | There's an alias for this: `cargo xtask install --server --jemalloc`. | 154 | There's an alias for this: `cargo xtask install --server --jemalloc`. |
@@ -170,12 +170,12 @@ In particular, I have `export RA_PROFILE='*>10'` in my shell profile. | |||
170 | To measure time for from-scratch analysis, use something like this: | 170 | To measure time for from-scratch analysis, use something like this: |
171 | 171 | ||
172 | ``` | 172 | ``` |
173 | $ cargo run --release -p ra_lsp_server -- analysis-stats ../chalk/ | 173 | $ cargo run --release -p rust-analyzer -- analysis-stats ../chalk/ |
174 | ``` | 174 | ``` |
175 | 175 | ||
176 | For measuring time of incremental analysis, use either of these: | 176 | For measuring time of incremental analysis, use either of these: |
177 | 177 | ||
178 | ``` | 178 | ``` |
179 | $ cargo run --release -p ra_lsp_server -- analysis-bench ../chalk/ --highlight ../chalk/chalk-engine/src/logic.rs | 179 | $ cargo run --release -p rust-analyzer -- analysis-bench ../chalk/ --highlight ../chalk/chalk-engine/src/logic.rs |
180 | $ cargo run --release -p ra_lsp_server -- analysis-bench ../chalk/ --complete ../chalk/chalk-engine/src/logic.rs:94:0 | 180 | $ cargo run --release -p rust-analyzer -- analysis-bench ../chalk/ --complete ../chalk/chalk-engine/src/logic.rs:94:0 |
181 | ``` | 181 | ``` |
diff --git a/docs/dev/architecture.md b/docs/dev/architecture.md index 41c3909f7..0343b6c81 100644 --- a/docs/dev/architecture.md +++ b/docs/dev/architecture.md | |||
@@ -134,7 +134,7 @@ APIs in this crate are IDE centric: they take text offsets as input and produce | |||
134 | offsets and strings as output. This works on top of rich code model powered by | 134 | offsets and strings as output. This works on top of rich code model powered by |
135 | `hir`. | 135 | `hir`. |
136 | 136 | ||
137 | ### `crates/ra_lsp_server` | 137 | ### `crates/rust-analyzer` |
138 | 138 | ||
139 | An LSP implementation which wraps `ra_ide` into a language server protocol. | 139 | An LSP implementation which wraps `ra_ide` into a language server protocol. |
140 | 140 | ||
@@ -153,7 +153,7 @@ Rust Analyzer has three interesting [systems | |||
153 | boundaries](https://www.tedinski.com/2018/04/10/making-tests-a-positive-influence-on-design.html) | 153 | boundaries](https://www.tedinski.com/2018/04/10/making-tests-a-positive-influence-on-design.html) |
154 | to concentrate tests on. | 154 | to concentrate tests on. |
155 | 155 | ||
156 | The outermost boundary is the `ra_lsp_server` crate, which defines an LSP | 156 | The outermost boundary is the `rust-analyzer` crate, which defines an LSP |
157 | interface in terms of stdio. We do integration testing of this component, by | 157 | interface in terms of stdio. We do integration testing of this component, by |
158 | feeding it with a stream of LSP requests and checking responses. These tests are | 158 | feeding it with a stream of LSP requests and checking responses. These tests are |
159 | known as "heavy", because they interact with Cargo and read real files from | 159 | known as "heavy", because they interact with Cargo and read real files from |
@@ -162,7 +162,7 @@ in a statically typed language, it's hard to make an error in the protocol | |||
162 | itself if messages are themselves typed. | 162 | itself if messages are themselves typed. |
163 | 163 | ||
164 | The middle, and most important, boundary is `ra_ide`. Unlike | 164 | The middle, and most important, boundary is `ra_ide`. Unlike |
165 | `ra_lsp_server`, which exposes API, `ide` uses Rust API and is intended to | 165 | `rust-analyzer`, which exposes API, `ide` uses Rust API and is intended to |
166 | use by various tools. Typical test creates an `AnalysisHost`, calls some | 166 | use by various tools. Typical test creates an `AnalysisHost`, calls some |
167 | `Analysis` functions and compares the results against expectation. | 167 | `Analysis` functions and compares the results against expectation. |
168 | 168 | ||
diff --git a/docs/dev/debugging.md b/docs/dev/debugging.md index e6b082156..bece6a572 100644 --- a/docs/dev/debugging.md +++ b/docs/dev/debugging.md | |||
@@ -22,8 +22,8 @@ where **only** the `rust-analyzer` extension being debugged is enabled. | |||
22 | 22 | ||
23 | ## Debug TypeScript VSCode extension | 23 | ## Debug TypeScript VSCode extension |
24 | 24 | ||
25 | - `Run Extension` - runs the extension with the globally installed `ra_lsp_server` binary. | 25 | - `Run Extension` - runs the extension with the globally installed `rust-analyzer` binary. |
26 | - `Run Extension (Dev Server)` - runs extension with the locally built LSP server (`target/debug/ra_lsp_server`). | 26 | - `Run Extension (Dev Server)` - runs extension with the locally built LSP server (`target/debug/rust-analyzer`). |
27 | 27 | ||
28 | TypeScript debugging is configured to watch your source edits and recompile. | 28 | TypeScript debugging is configured to watch your source edits and recompile. |
29 | To apply changes to an already running debug process press <kbd>Ctrl+Shift+P</kbd> and run the following command in your `[Extension Development Host]` | 29 | To apply changes to an already running debug process press <kbd>Ctrl+Shift+P</kbd> and run the following command in your `[Extension Development Host]` |
@@ -47,13 +47,13 @@ To apply changes to an already running debug process press <kbd>Ctrl+Shift+P</kb | |||
47 | debug = 2 | 47 | debug = 2 |
48 | ``` | 48 | ``` |
49 | 49 | ||
50 | - Select `Run Extension (Dev Server)` to run your locally built `target/debug/ra_lsp_server`. | 50 | - Select `Run Extension (Dev Server)` to run your locally built `target/debug/rust-analyzer`. |
51 | 51 | ||
52 | - In the original VSCode window once again select the `Attach To Server` debug configuration. | 52 | - In the original VSCode window once again select the `Attach To Server` debug configuration. |
53 | 53 | ||
54 | - A list of running processes should appear. Select the `ra_lsp_server` from this repo. | 54 | - A list of running processes should appear. Select the `rust-analyzer` from this repo. |
55 | 55 | ||
56 | - Navigate to `crates/ra_lsp_server/src/main_loop.rs` and add a breakpoint to the `on_task` function. | 56 | - Navigate to `crates/rust-analyzer/src/main_loop.rs` and add a breakpoint to the `on_task` function. |
57 | 57 | ||
58 | - Go back to the `[Extension Development Host]` instance and hover over a Rust variable and your breakpoint should hit. | 58 | - Go back to the `[Extension Development Host]` instance and hover over a Rust variable and your breakpoint should hit. |
59 | 59 | ||
@@ -64,15 +64,15 @@ To apply changes to an already running debug process press <kbd>Ctrl+Shift+P</kb | |||
64 | 64 | ||
65 | ## Troubleshooting | 65 | ## Troubleshooting |
66 | 66 | ||
67 | ### Can't find the `ra_lsp_server` process | 67 | ### Can't find the `rust-analyzer` process |
68 | 68 | ||
69 | It could be a case of just jumping the gun. | 69 | It could be a case of just jumping the gun. |
70 | 70 | ||
71 | The `ra_lsp_server` is only started once the `onLanguage:rust` activation. | 71 | The `rust-analyzer` is only started once the `onLanguage:rust` activation. |
72 | 72 | ||
73 | Make sure you open a rust file in the `[Extension Development Host]` and try again. | 73 | Make sure you open a rust file in the `[Extension Development Host]` and try again. |
74 | 74 | ||
75 | ### Can't connect to `ra_lsp_server` | 75 | ### Can't connect to `rust-analyzer` |
76 | 76 | ||
77 | Make sure you have run `echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope`. | 77 | Make sure you have run `echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope`. |
78 | 78 | ||
diff --git a/docs/user/readme.adoc b/docs/user/readme.adoc index 57a8cbe31..74fda0abe 100644 --- a/docs/user/readme.adoc +++ b/docs/user/readme.adoc | |||
@@ -20,7 +20,9 @@ In theory, one should be able to just install the server binary and have it auto | |||
20 | We are not there yet, so some editor specific setup is required. | 20 | We are not there yet, so some editor specific setup is required. |
21 | 21 | ||
22 | Additionally, rust-analyzer needs sources of the standard library. | 22 | Additionally, rust-analyzer needs sources of the standard library. |
23 | This commands adds them: | 23 | If the source code is not present, rust-analyzer will attempt to install it automatically. |
24 | |||
25 | To add the sources manually, run the following command: | ||
24 | 26 | ||
25 | ```bash | 27 | ```bash |
26 | $ rustup component add rust-src | 28 | $ rustup component add rust-src |
@@ -62,16 +64,16 @@ To make VS Code use the freshly build server, add this to the settings: | |||
62 | 64 | ||
63 | [source,json] | 65 | [source,json] |
64 | ---- | 66 | ---- |
65 | { "rust-analyzer.raLspServerPath": "ra_lsp_server" } | 67 | { "rust-analyzer.serverPath": "rust-analyzer" } |
66 | ---- | 68 | ---- |
67 | 69 | ||
68 | Note that installing via `xtask install` does not work for VS Code Remote, instead you'll need to install the `.vsix` manually. | 70 | Note that installing via `xtask install` does not work for VS Code Remote, instead you'll need to install the `.vsix` manually. |
69 | 71 | ||
70 | === Language Server Binary | 72 | === Language Server Binary |
71 | 73 | ||
72 | Other editors generally require `ra_lsp_server` binary to be in `$PATH`. | 74 | Other editors generally require `rust-analyzer` binary to be in `$PATH`. |
73 | You can download pre-build binary from | 75 | You can download pre-build binary from |
74 | https://github.com/rust-analyzer/rust-analyzer/releases[relases] | 76 | https://github.com/rust-analyzer/rust-analyzer/releases[releases] |
75 | page, or you can install it from source using the following command: | 77 | page, or you can install it from source using the following command: |
76 | 78 | ||
77 | [source,bash] | 79 | [source,bash] |
@@ -100,7 +102,7 @@ The are several LSP client implementations for vim: | |||
100 | 2. Run `:CocInstall coc-rust-analyzer` to install | 102 | 2. Run `:CocInstall coc-rust-analyzer` to install |
101 | https://github.com/fannheyward/coc-rust-analyzer[coc-rust-analyzer], | 103 | https://github.com/fannheyward/coc-rust-analyzer[coc-rust-analyzer], |
102 | this extension implements _most_ of the features supported in the VSCode extension: | 104 | this extension implements _most_ of the features supported in the VSCode extension: |
103 | * same configurations as VSCode extension, `rust-analyzer.raLspServerPath`, `rust-analyzer.enableCargoWatchOnStartup` etc. | 105 | * same configurations as VSCode extension, `rust-analyzer.serverPath`, `rust-analyzer.enableCargoWatchOnStartup` etc. |
104 | * same commands too, `rust-analyzer.analyzerStatus`, `rust-analyzer.startCargoWatch` etc. | 106 | * same commands too, `rust-analyzer.analyzerStatus`, `rust-analyzer.startCargoWatch` etc. |
105 | * highlighting and inlay_hints are not implemented yet | 107 | * highlighting and inlay_hints are not implemented yet |
106 | 108 | ||
@@ -115,7 +117,7 @@ The are several LSP client implementations for vim: | |||
115 | [source,vim] | 117 | [source,vim] |
116 | ---- | 118 | ---- |
117 | let g:LanguageClient_serverCommands = { | 119 | let g:LanguageClient_serverCommands = { |
118 | \ 'rust': ['ra_lsp_server'], | 120 | \ 'rust': ['rust-analyzer'], |
119 | \ } | 121 | \ } |
120 | ---- | 122 | ---- |
121 | 123 | ||
@@ -140,7 +142,7 @@ Installation: | |||
140 | [source,json] | 142 | [source,json] |
141 | ---- | 143 | ---- |
142 | "rust-analyzer": { | 144 | "rust-analyzer": { |
143 | "command": ["ra_lsp_server"], | 145 | "command": ["rust-analyzer"], |
144 | "languageId": "rust", | 146 | "languageId": "rust", |
145 | "scopes": ["source.rust"], | 147 | "scopes": ["source.rust"], |
146 | "syntaxes": [ | 148 | "syntaxes": [ |
diff --git a/editors/code/.eslintrc.js b/editors/code/.eslintrc.js new file mode 100644 index 000000000..113a8a78e --- /dev/null +++ b/editors/code/.eslintrc.js | |||
@@ -0,0 +1,34 @@ | |||
1 | module.exports = { | ||
2 | "env": { | ||
3 | "es6": true, | ||
4 | "node": true | ||
5 | }, | ||
6 | "parser": "@typescript-eslint/parser", | ||
7 | "parserOptions": { | ||
8 | "project": "tsconfig.json", | ||
9 | "sourceType": "module" | ||
10 | }, | ||
11 | "plugins": [ | ||
12 | "@typescript-eslint" | ||
13 | ], | ||
14 | "rules": { | ||
15 | "@typescript-eslint/member-delimiter-style": [ | ||
16 | "error", | ||
17 | { | ||
18 | "multiline": { | ||
19 | "delimiter": "semi", | ||
20 | "requireLast": true | ||
21 | }, | ||
22 | "singleline": { | ||
23 | "delimiter": "semi", | ||
24 | "requireLast": false | ||
25 | } | ||
26 | } | ||
27 | ], | ||
28 | "@typescript-eslint/semi": [ | ||
29 | "error", | ||
30 | "always" | ||
31 | ], | ||
32 | "prefer-const": "error" | ||
33 | } | ||
34 | }; | ||
diff --git a/editors/code/package-lock.json b/editors/code/package-lock.json index 22aa63c9d..d7da47089 100644 --- a/editors/code/package-lock.json +++ b/editors/code/package-lock.json | |||
@@ -70,12 +70,24 @@ | |||
70 | "estree-walker": "^1.0.1" | 70 | "estree-walker": "^1.0.1" |
71 | } | 71 | } |
72 | }, | 72 | }, |
73 | "@types/eslint-visitor-keys": { | ||
74 | "version": "1.0.0", | ||
75 | "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", | ||
76 | "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", | ||
77 | "dev": true | ||
78 | }, | ||
73 | "@types/estree": { | 79 | "@types/estree": { |
74 | "version": "0.0.39", | 80 | "version": "0.0.39", |
75 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", | 81 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", |
76 | "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", | 82 | "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", |
77 | "dev": true | 83 | "dev": true |
78 | }, | 84 | }, |
85 | "@types/json-schema": { | ||
86 | "version": "7.0.4", | ||
87 | "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz", | ||
88 | "integrity": "sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==", | ||
89 | "dev": true | ||
90 | }, | ||
79 | "@types/node": { | 91 | "@types/node": { |
80 | "version": "12.12.27", | 92 | "version": "12.12.27", |
81 | "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.27.tgz", | 93 | "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.27.tgz", |
@@ -112,12 +124,118 @@ | |||
112 | "integrity": "sha512-ds6TceMsh77Fs0Mq0Vap6Y72JbGWB8Bay4DrnJlf5d9ui2RSe1wis13oQm+XhguOeH1HUfLGzaDAoupTUtgabw==", | 124 | "integrity": "sha512-ds6TceMsh77Fs0Mq0Vap6Y72JbGWB8Bay4DrnJlf5d9ui2RSe1wis13oQm+XhguOeH1HUfLGzaDAoupTUtgabw==", |
113 | "dev": true | 125 | "dev": true |
114 | }, | 126 | }, |
127 | "@typescript-eslint/eslint-plugin": { | ||
128 | "version": "2.20.0", | ||
129 | "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.20.0.tgz", | ||
130 | "integrity": "sha512-cimIdVDV3MakiGJqMXw51Xci6oEDEoPkvh8ggJe2IIzcc0fYqAxOXN6Vbeanahz6dLZq64W+40iUEc9g32FLDQ==", | ||
131 | "dev": true, | ||
132 | "requires": { | ||
133 | "@typescript-eslint/experimental-utils": "2.20.0", | ||
134 | "eslint-utils": "^1.4.3", | ||
135 | "functional-red-black-tree": "^1.0.1", | ||
136 | "regexpp": "^3.0.0", | ||
137 | "tsutils": "^3.17.1" | ||
138 | }, | ||
139 | "dependencies": { | ||
140 | "tsutils": { | ||
141 | "version": "3.17.1", | ||
142 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", | ||
143 | "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", | ||
144 | "dev": true, | ||
145 | "requires": { | ||
146 | "tslib": "^1.8.1" | ||
147 | } | ||
148 | } | ||
149 | } | ||
150 | }, | ||
151 | "@typescript-eslint/experimental-utils": { | ||
152 | "version": "2.20.0", | ||
153 | "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.20.0.tgz", | ||
154 | "integrity": "sha512-fEBy9xYrwG9hfBLFEwGW2lKwDRTmYzH3DwTmYbT+SMycmxAoPl0eGretnBFj/s+NfYBG63w/5c3lsvqqz5mYag==", | ||
155 | "dev": true, | ||
156 | "requires": { | ||
157 | "@types/json-schema": "^7.0.3", | ||
158 | "@typescript-eslint/typescript-estree": "2.20.0", | ||
159 | "eslint-scope": "^5.0.0" | ||
160 | } | ||
161 | }, | ||
162 | "@typescript-eslint/parser": { | ||
163 | "version": "2.20.0", | ||
164 | "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.20.0.tgz", | ||
165 | "integrity": "sha512-o8qsKaosLh2qhMZiHNtaHKTHyCHc3Triq6aMnwnWj7budm3xAY9owSZzV1uon5T9cWmJRJGzTFa90aex4m77Lw==", | ||
166 | "dev": true, | ||
167 | "requires": { | ||
168 | "@types/eslint-visitor-keys": "^1.0.0", | ||
169 | "@typescript-eslint/experimental-utils": "2.20.0", | ||
170 | "@typescript-eslint/typescript-estree": "2.20.0", | ||
171 | "eslint-visitor-keys": "^1.1.0" | ||
172 | } | ||
173 | }, | ||
174 | "@typescript-eslint/typescript-estree": { | ||
175 | "version": "2.20.0", | ||
176 | "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.20.0.tgz", | ||
177 | "integrity": "sha512-WlFk8QtI8pPaE7JGQGxU7nGcnk1ccKAJkhbVookv94ZcAef3m6oCE/jEDL6dGte3JcD7reKrA0o55XhBRiVT3A==", | ||
178 | "dev": true, | ||
179 | "requires": { | ||
180 | "debug": "^4.1.1", | ||
181 | "eslint-visitor-keys": "^1.1.0", | ||
182 | "glob": "^7.1.6", | ||
183 | "is-glob": "^4.0.1", | ||
184 | "lodash": "^4.17.15", | ||
185 | "semver": "^6.3.0", | ||
186 | "tsutils": "^3.17.1" | ||
187 | }, | ||
188 | "dependencies": { | ||
189 | "tsutils": { | ||
190 | "version": "3.17.1", | ||
191 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", | ||
192 | "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", | ||
193 | "dev": true, | ||
194 | "requires": { | ||
195 | "tslib": "^1.8.1" | ||
196 | } | ||
197 | } | ||
198 | } | ||
199 | }, | ||
115 | "acorn": { | 200 | "acorn": { |
116 | "version": "7.1.0", | 201 | "version": "7.1.0", |
117 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz", | 202 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz", |
118 | "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==", | 203 | "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==", |
119 | "dev": true | 204 | "dev": true |
120 | }, | 205 | }, |
206 | "acorn-jsx": { | ||
207 | "version": "5.1.0", | ||
208 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.1.0.tgz", | ||
209 | "integrity": "sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==", | ||
210 | "dev": true | ||
211 | }, | ||
212 | "ajv": { | ||
213 | "version": "6.11.0", | ||
214 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", | ||
215 | "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", | ||
216 | "dev": true, | ||
217 | "requires": { | ||
218 | "fast-deep-equal": "^3.1.1", | ||
219 | "fast-json-stable-stringify": "^2.0.0", | ||
220 | "json-schema-traverse": "^0.4.1", | ||
221 | "uri-js": "^4.2.2" | ||
222 | } | ||
223 | }, | ||
224 | "ansi-escapes": { | ||
225 | "version": "4.3.0", | ||
226 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz", | ||
227 | "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==", | ||
228 | "dev": true, | ||
229 | "requires": { | ||
230 | "type-fest": "^0.8.1" | ||
231 | } | ||
232 | }, | ||
233 | "ansi-regex": { | ||
234 | "version": "5.0.0", | ||
235 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", | ||
236 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", | ||
237 | "dev": true | ||
238 | }, | ||
121 | "ansi-styles": { | 239 | "ansi-styles": { |
122 | "version": "3.2.1", | 240 | "version": "3.2.1", |
123 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", | 241 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", |
@@ -136,6 +254,12 @@ | |||
136 | "sprintf-js": "~1.0.2" | 254 | "sprintf-js": "~1.0.2" |
137 | } | 255 | } |
138 | }, | 256 | }, |
257 | "astral-regex": { | ||
258 | "version": "1.0.0", | ||
259 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", | ||
260 | "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", | ||
261 | "dev": true | ||
262 | }, | ||
139 | "azure-devops-node-api": { | 263 | "azure-devops-node-api": { |
140 | "version": "7.2.0", | 264 | "version": "7.2.0", |
141 | "resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-7.2.0.tgz", | 265 | "resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-7.2.0.tgz", |
@@ -182,6 +306,12 @@ | |||
182 | "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==", | 306 | "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==", |
183 | "dev": true | 307 | "dev": true |
184 | }, | 308 | }, |
309 | "callsites": { | ||
310 | "version": "3.1.0", | ||
311 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", | ||
312 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", | ||
313 | "dev": true | ||
314 | }, | ||
185 | "chalk": { | 315 | "chalk": { |
186 | "version": "2.4.2", | 316 | "version": "2.4.2", |
187 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", | 317 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", |
@@ -193,6 +323,12 @@ | |||
193 | "supports-color": "^5.3.0" | 323 | "supports-color": "^5.3.0" |
194 | } | 324 | } |
195 | }, | 325 | }, |
326 | "chardet": { | ||
327 | "version": "0.7.0", | ||
328 | "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", | ||
329 | "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", | ||
330 | "dev": true | ||
331 | }, | ||
196 | "cheerio": { | 332 | "cheerio": { |
197 | "version": "1.0.0-rc.3", | 333 | "version": "1.0.0-rc.3", |
198 | "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", | 334 | "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", |
@@ -207,6 +343,21 @@ | |||
207 | "parse5": "^3.0.1" | 343 | "parse5": "^3.0.1" |
208 | } | 344 | } |
209 | }, | 345 | }, |
346 | "cli-cursor": { | ||
347 | "version": "3.1.0", | ||
348 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", | ||
349 | "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", | ||
350 | "dev": true, | ||
351 | "requires": { | ||
352 | "restore-cursor": "^3.1.0" | ||
353 | } | ||
354 | }, | ||
355 | "cli-width": { | ||
356 | "version": "2.2.0", | ||
357 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", | ||
358 | "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", | ||
359 | "dev": true | ||
360 | }, | ||
210 | "color-convert": { | 361 | "color-convert": { |
211 | "version": "1.9.3", | 362 | "version": "1.9.3", |
212 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", | 363 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", |
@@ -240,6 +391,27 @@ | |||
240 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", | 391 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", |
241 | "dev": true | 392 | "dev": true |
242 | }, | 393 | }, |
394 | "cross-spawn": { | ||
395 | "version": "6.0.5", | ||
396 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", | ||
397 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", | ||
398 | "dev": true, | ||
399 | "requires": { | ||
400 | "nice-try": "^1.0.4", | ||
401 | "path-key": "^2.0.1", | ||
402 | "semver": "^5.5.0", | ||
403 | "shebang-command": "^1.2.0", | ||
404 | "which": "^1.2.9" | ||
405 | }, | ||
406 | "dependencies": { | ||
407 | "semver": { | ||
408 | "version": "5.7.1", | ||
409 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", | ||
410 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", | ||
411 | "dev": true | ||
412 | } | ||
413 | } | ||
414 | }, | ||
243 | "css-select": { | 415 | "css-select": { |
244 | "version": "1.2.0", | 416 | "version": "1.2.0", |
245 | "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", | 417 | "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", |
@@ -258,6 +430,21 @@ | |||
258 | "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", | 430 | "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", |
259 | "dev": true | 431 | "dev": true |
260 | }, | 432 | }, |
433 | "debug": { | ||
434 | "version": "4.1.1", | ||
435 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", | ||
436 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", | ||
437 | "dev": true, | ||
438 | "requires": { | ||
439 | "ms": "^2.1.1" | ||
440 | } | ||
441 | }, | ||
442 | "deep-is": { | ||
443 | "version": "0.1.3", | ||
444 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", | ||
445 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", | ||
446 | "dev": true | ||
447 | }, | ||
261 | "denodeify": { | 448 | "denodeify": { |
262 | "version": "1.2.1", | 449 | "version": "1.2.1", |
263 | "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz", | 450 | "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz", |
@@ -270,11 +457,14 @@ | |||
270 | "integrity": "sha1-6S7f2tplN9SE1zwBcv0eugxJdv8=", | 457 | "integrity": "sha1-6S7f2tplN9SE1zwBcv0eugxJdv8=", |
271 | "dev": true | 458 | "dev": true |
272 | }, | 459 | }, |
273 | "diff": { | 460 | "doctrine": { |
274 | "version": "4.0.1", | 461 | "version": "3.0.0", |
275 | "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz", | 462 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", |
276 | "integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==", | 463 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", |
277 | "dev": true | 464 | "dev": true, |
465 | "requires": { | ||
466 | "esutils": "^2.0.2" | ||
467 | } | ||
278 | }, | 468 | }, |
279 | "dom-serializer": { | 469 | "dom-serializer": { |
280 | "version": "0.1.1", | 470 | "version": "0.1.1", |
@@ -331,6 +521,12 @@ | |||
331 | } | 521 | } |
332 | } | 522 | } |
333 | }, | 523 | }, |
524 | "emoji-regex": { | ||
525 | "version": "8.0.0", | ||
526 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", | ||
527 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", | ||
528 | "dev": true | ||
529 | }, | ||
334 | "entities": { | 530 | "entities": { |
335 | "version": "1.1.2", | 531 | "version": "1.1.2", |
336 | "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", | 532 | "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", |
@@ -343,12 +539,125 @@ | |||
343 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", | 539 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", |
344 | "dev": true | 540 | "dev": true |
345 | }, | 541 | }, |
542 | "eslint": { | ||
543 | "version": "6.8.0", | ||
544 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", | ||
545 | "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", | ||
546 | "dev": true, | ||
547 | "requires": { | ||
548 | "@babel/code-frame": "^7.0.0", | ||
549 | "ajv": "^6.10.0", | ||
550 | "chalk": "^2.1.0", | ||
551 | "cross-spawn": "^6.0.5", | ||
552 | "debug": "^4.0.1", | ||
553 | "doctrine": "^3.0.0", | ||
554 | "eslint-scope": "^5.0.0", | ||
555 | "eslint-utils": "^1.4.3", | ||
556 | "eslint-visitor-keys": "^1.1.0", | ||
557 | "espree": "^6.1.2", | ||
558 | "esquery": "^1.0.1", | ||
559 | "esutils": "^2.0.2", | ||
560 | "file-entry-cache": "^5.0.1", | ||
561 | "functional-red-black-tree": "^1.0.1", | ||
562 | "glob-parent": "^5.0.0", | ||
563 | "globals": "^12.1.0", | ||
564 | "ignore": "^4.0.6", | ||
565 | "import-fresh": "^3.0.0", | ||
566 | "imurmurhash": "^0.1.4", | ||
567 | "inquirer": "^7.0.0", | ||
568 | "is-glob": "^4.0.0", | ||
569 | "js-yaml": "^3.13.1", | ||
570 | "json-stable-stringify-without-jsonify": "^1.0.1", | ||
571 | "levn": "^0.3.0", | ||
572 | "lodash": "^4.17.14", | ||
573 | "minimatch": "^3.0.4", | ||
574 | "mkdirp": "^0.5.1", | ||
575 | "natural-compare": "^1.4.0", | ||
576 | "optionator": "^0.8.3", | ||
577 | "progress": "^2.0.0", | ||
578 | "regexpp": "^2.0.1", | ||
579 | "semver": "^6.1.2", | ||
580 | "strip-ansi": "^5.2.0", | ||
581 | "strip-json-comments": "^3.0.1", | ||
582 | "table": "^5.2.3", | ||
583 | "text-table": "^0.2.0", | ||
584 | "v8-compile-cache": "^2.0.3" | ||
585 | }, | ||
586 | "dependencies": { | ||
587 | "regexpp": { | ||
588 | "version": "2.0.1", | ||
589 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", | ||
590 | "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", | ||
591 | "dev": true | ||
592 | } | ||
593 | } | ||
594 | }, | ||
595 | "eslint-scope": { | ||
596 | "version": "5.0.0", | ||
597 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", | ||
598 | "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", | ||
599 | "dev": true, | ||
600 | "requires": { | ||
601 | "esrecurse": "^4.1.0", | ||
602 | "estraverse": "^4.1.1" | ||
603 | } | ||
604 | }, | ||
605 | "eslint-utils": { | ||
606 | "version": "1.4.3", | ||
607 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", | ||
608 | "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", | ||
609 | "dev": true, | ||
610 | "requires": { | ||
611 | "eslint-visitor-keys": "^1.1.0" | ||
612 | } | ||
613 | }, | ||
614 | "eslint-visitor-keys": { | ||
615 | "version": "1.1.0", | ||
616 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", | ||
617 | "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", | ||
618 | "dev": true | ||
619 | }, | ||
620 | "espree": { | ||
621 | "version": "6.1.2", | ||
622 | "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.2.tgz", | ||
623 | "integrity": "sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA==", | ||
624 | "dev": true, | ||
625 | "requires": { | ||
626 | "acorn": "^7.1.0", | ||
627 | "acorn-jsx": "^5.1.0", | ||
628 | "eslint-visitor-keys": "^1.1.0" | ||
629 | } | ||
630 | }, | ||
346 | "esprima": { | 631 | "esprima": { |
347 | "version": "4.0.1", | 632 | "version": "4.0.1", |
348 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", | 633 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", |
349 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", | 634 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", |
350 | "dev": true | 635 | "dev": true |
351 | }, | 636 | }, |
637 | "esquery": { | ||
638 | "version": "1.1.0", | ||
639 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.1.0.tgz", | ||
640 | "integrity": "sha512-MxYW9xKmROWF672KqjO75sszsA8Mxhw06YFeS5VHlB98KDHbOSurm3ArsjO60Eaf3QmGMCP1yn+0JQkNLo/97Q==", | ||
641 | "dev": true, | ||
642 | "requires": { | ||
643 | "estraverse": "^4.0.0" | ||
644 | } | ||
645 | }, | ||
646 | "esrecurse": { | ||
647 | "version": "4.2.1", | ||
648 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", | ||
649 | "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", | ||
650 | "dev": true, | ||
651 | "requires": { | ||
652 | "estraverse": "^4.1.0" | ||
653 | } | ||
654 | }, | ||
655 | "estraverse": { | ||
656 | "version": "4.3.0", | ||
657 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", | ||
658 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", | ||
659 | "dev": true | ||
660 | }, | ||
352 | "estree-walker": { | 661 | "estree-walker": { |
353 | "version": "1.0.1", | 662 | "version": "1.0.1", |
354 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", | 663 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", |
@@ -361,6 +670,46 @@ | |||
361 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", | 670 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", |
362 | "dev": true | 671 | "dev": true |
363 | }, | 672 | }, |
673 | "external-editor": { | ||
674 | "version": "3.1.0", | ||
675 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", | ||
676 | "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", | ||
677 | "dev": true, | ||
678 | "requires": { | ||
679 | "chardet": "^0.7.0", | ||
680 | "iconv-lite": "^0.4.24", | ||
681 | "tmp": "^0.0.33" | ||
682 | }, | ||
683 | "dependencies": { | ||
684 | "tmp": { | ||
685 | "version": "0.0.33", | ||
686 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", | ||
687 | "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", | ||
688 | "dev": true, | ||
689 | "requires": { | ||
690 | "os-tmpdir": "~1.0.2" | ||
691 | } | ||
692 | } | ||
693 | } | ||
694 | }, | ||
695 | "fast-deep-equal": { | ||
696 | "version": "3.1.1", | ||
697 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", | ||
698 | "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", | ||
699 | "dev": true | ||
700 | }, | ||
701 | "fast-json-stable-stringify": { | ||
702 | "version": "2.1.0", | ||
703 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", | ||
704 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", | ||
705 | "dev": true | ||
706 | }, | ||
707 | "fast-levenshtein": { | ||
708 | "version": "2.0.6", | ||
709 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", | ||
710 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", | ||
711 | "dev": true | ||
712 | }, | ||
364 | "fd-slicer": { | 713 | "fd-slicer": { |
365 | "version": "1.1.0", | 714 | "version": "1.1.0", |
366 | "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", | 715 | "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", |
@@ -370,12 +719,53 @@ | |||
370 | "pend": "~1.2.0" | 719 | "pend": "~1.2.0" |
371 | } | 720 | } |
372 | }, | 721 | }, |
722 | "figures": { | ||
723 | "version": "3.2.0", | ||
724 | "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", | ||
725 | "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", | ||
726 | "dev": true, | ||
727 | "requires": { | ||
728 | "escape-string-regexp": "^1.0.5" | ||
729 | } | ||
730 | }, | ||
731 | "file-entry-cache": { | ||
732 | "version": "5.0.1", | ||
733 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", | ||
734 | "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", | ||
735 | "dev": true, | ||
736 | "requires": { | ||
737 | "flat-cache": "^2.0.1" | ||
738 | } | ||
739 | }, | ||
740 | "flat-cache": { | ||
741 | "version": "2.0.1", | ||
742 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", | ||
743 | "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", | ||
744 | "dev": true, | ||
745 | "requires": { | ||
746 | "flatted": "^2.0.0", | ||
747 | "rimraf": "2.6.3", | ||
748 | "write": "1.0.3" | ||
749 | } | ||
750 | }, | ||
751 | "flatted": { | ||
752 | "version": "2.0.1", | ||
753 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", | ||
754 | "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", | ||
755 | "dev": true | ||
756 | }, | ||
373 | "fs.realpath": { | 757 | "fs.realpath": { |
374 | "version": "1.0.0", | 758 | "version": "1.0.0", |
375 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", | 759 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", |
376 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", | 760 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", |
377 | "dev": true | 761 | "dev": true |
378 | }, | 762 | }, |
763 | "functional-red-black-tree": { | ||
764 | "version": "1.0.1", | ||
765 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", | ||
766 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", | ||
767 | "dev": true | ||
768 | }, | ||
379 | "glob": { | 769 | "glob": { |
380 | "version": "7.1.6", | 770 | "version": "7.1.6", |
381 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", | 771 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", |
@@ -390,6 +780,24 @@ | |||
390 | "path-is-absolute": "^1.0.0" | 780 | "path-is-absolute": "^1.0.0" |
391 | } | 781 | } |
392 | }, | 782 | }, |
783 | "glob-parent": { | ||
784 | "version": "5.1.0", | ||
785 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", | ||
786 | "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", | ||
787 | "dev": true, | ||
788 | "requires": { | ||
789 | "is-glob": "^4.0.1" | ||
790 | } | ||
791 | }, | ||
792 | "globals": { | ||
793 | "version": "12.3.0", | ||
794 | "resolved": "https://registry.npmjs.org/globals/-/globals-12.3.0.tgz", | ||
795 | "integrity": "sha512-wAfjdLgFsPZsklLJvOBUBmzYE8/CwhEqSBEMRXA3qxIiNtyqvjYurAtIfDh6chlEPUfmTY3MnZh5Hfh4q0UlIw==", | ||
796 | "dev": true, | ||
797 | "requires": { | ||
798 | "type-fest": "^0.8.1" | ||
799 | } | ||
800 | }, | ||
393 | "has-flag": { | 801 | "has-flag": { |
394 | "version": "3.0.0", | 802 | "version": "3.0.0", |
395 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", | 803 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", |
@@ -410,6 +818,37 @@ | |||
410 | "readable-stream": "^3.1.1" | 818 | "readable-stream": "^3.1.1" |
411 | } | 819 | } |
412 | }, | 820 | }, |
821 | "iconv-lite": { | ||
822 | "version": "0.4.24", | ||
823 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", | ||
824 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", | ||
825 | "dev": true, | ||
826 | "requires": { | ||
827 | "safer-buffer": ">= 2.1.2 < 3" | ||
828 | } | ||
829 | }, | ||
830 | "ignore": { | ||
831 | "version": "4.0.6", | ||
832 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", | ||
833 | "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", | ||
834 | "dev": true | ||
835 | }, | ||
836 | "import-fresh": { | ||
837 | "version": "3.2.1", | ||
838 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", | ||
839 | "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", | ||
840 | "dev": true, | ||
841 | "requires": { | ||
842 | "parent-module": "^1.0.0", | ||
843 | "resolve-from": "^4.0.0" | ||
844 | } | ||
845 | }, | ||
846 | "imurmurhash": { | ||
847 | "version": "0.1.4", | ||
848 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", | ||
849 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", | ||
850 | "dev": true | ||
851 | }, | ||
413 | "inflight": { | 852 | "inflight": { |
414 | "version": "1.0.6", | 853 | "version": "1.0.6", |
415 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", | 854 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", |
@@ -426,12 +865,60 @@ | |||
426 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", | 865 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", |
427 | "dev": true | 866 | "dev": true |
428 | }, | 867 | }, |
868 | "inquirer": { | ||
869 | "version": "7.0.4", | ||
870 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.4.tgz", | ||
871 | "integrity": "sha512-Bu5Td5+j11sCkqfqmUTiwv+tWisMtP0L7Q8WrqA2C/BbBhy1YTdFrvjjlrKq8oagA/tLQBski2Gcx/Sqyi2qSQ==", | ||
872 | "dev": true, | ||
873 | "requires": { | ||
874 | "ansi-escapes": "^4.2.1", | ||
875 | "chalk": "^2.4.2", | ||
876 | "cli-cursor": "^3.1.0", | ||
877 | "cli-width": "^2.0.0", | ||
878 | "external-editor": "^3.0.3", | ||
879 | "figures": "^3.0.0", | ||
880 | "lodash": "^4.17.15", | ||
881 | "mute-stream": "0.0.8", | ||
882 | "run-async": "^2.2.0", | ||
883 | "rxjs": "^6.5.3", | ||
884 | "string-width": "^4.1.0", | ||
885 | "strip-ansi": "^5.1.0", | ||
886 | "through": "^2.3.6" | ||
887 | } | ||
888 | }, | ||
889 | "is-extglob": { | ||
890 | "version": "2.1.1", | ||
891 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", | ||
892 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", | ||
893 | "dev": true | ||
894 | }, | ||
895 | "is-fullwidth-code-point": { | ||
896 | "version": "3.0.0", | ||
897 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", | ||
898 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", | ||
899 | "dev": true | ||
900 | }, | ||
901 | "is-glob": { | ||
902 | "version": "4.0.1", | ||
903 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", | ||
904 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", | ||
905 | "dev": true, | ||
906 | "requires": { | ||
907 | "is-extglob": "^2.1.1" | ||
908 | } | ||
909 | }, | ||
429 | "is-module": { | 910 | "is-module": { |
430 | "version": "1.0.0", | 911 | "version": "1.0.0", |
431 | "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", | 912 | "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", |
432 | "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", | 913 | "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", |
433 | "dev": true | 914 | "dev": true |
434 | }, | 915 | }, |
916 | "is-promise": { | ||
917 | "version": "2.1.0", | ||
918 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", | ||
919 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", | ||
920 | "dev": true | ||
921 | }, | ||
435 | "is-reference": { | 922 | "is-reference": { |
436 | "version": "1.1.4", | 923 | "version": "1.1.4", |
437 | "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.1.4.tgz", | 924 | "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.1.4.tgz", |
@@ -441,6 +928,12 @@ | |||
441 | "@types/estree": "0.0.39" | 928 | "@types/estree": "0.0.39" |
442 | } | 929 | } |
443 | }, | 930 | }, |
931 | "isexe": { | ||
932 | "version": "2.0.0", | ||
933 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", | ||
934 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", | ||
935 | "dev": true | ||
936 | }, | ||
444 | "js-tokens": { | 937 | "js-tokens": { |
445 | "version": "4.0.0", | 938 | "version": "4.0.0", |
446 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", | 939 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", |
@@ -457,11 +950,33 @@ | |||
457 | "esprima": "^4.0.0" | 950 | "esprima": "^4.0.0" |
458 | } | 951 | } |
459 | }, | 952 | }, |
953 | "json-schema-traverse": { | ||
954 | "version": "0.4.1", | ||
955 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", | ||
956 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", | ||
957 | "dev": true | ||
958 | }, | ||
959 | "json-stable-stringify-without-jsonify": { | ||
960 | "version": "1.0.1", | ||
961 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", | ||
962 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", | ||
963 | "dev": true | ||
964 | }, | ||
460 | "jsonc-parser": { | 965 | "jsonc-parser": { |
461 | "version": "2.2.0", | 966 | "version": "2.2.0", |
462 | "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.2.0.tgz", | 967 | "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.2.0.tgz", |
463 | "integrity": "sha512-4fLQxW1j/5fWj6p78vAlAafoCKtuBm6ghv+Ij5W2DrDx0qE+ZdEl2c6Ko1mgJNF5ftX1iEWQQ4Ap7+3GlhjkOA==" | 968 | "integrity": "sha512-4fLQxW1j/5fWj6p78vAlAafoCKtuBm6ghv+Ij5W2DrDx0qE+ZdEl2c6Ko1mgJNF5ftX1iEWQQ4Ap7+3GlhjkOA==" |
464 | }, | 969 | }, |
970 | "levn": { | ||
971 | "version": "0.3.0", | ||
972 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", | ||
973 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", | ||
974 | "dev": true, | ||
975 | "requires": { | ||
976 | "prelude-ls": "~1.1.2", | ||
977 | "type-check": "~0.3.2" | ||
978 | } | ||
979 | }, | ||
465 | "linkify-it": { | 980 | "linkify-it": { |
466 | "version": "2.2.0", | 981 | "version": "2.2.0", |
467 | "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", | 982 | "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", |
@@ -521,6 +1036,12 @@ | |||
521 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", | 1036 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", |
522 | "dev": true | 1037 | "dev": true |
523 | }, | 1038 | }, |
1039 | "mimic-fn": { | ||
1040 | "version": "2.1.0", | ||
1041 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", | ||
1042 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", | ||
1043 | "dev": true | ||
1044 | }, | ||
524 | "minimatch": { | 1045 | "minimatch": { |
525 | "version": "3.0.4", | 1046 | "version": "3.0.4", |
526 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", | 1047 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", |
@@ -545,12 +1066,30 @@ | |||
545 | "minimist": "0.0.8" | 1066 | "minimist": "0.0.8" |
546 | } | 1067 | } |
547 | }, | 1068 | }, |
1069 | "ms": { | ||
1070 | "version": "2.1.2", | ||
1071 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", | ||
1072 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", | ||
1073 | "dev": true | ||
1074 | }, | ||
548 | "mute-stream": { | 1075 | "mute-stream": { |
549 | "version": "0.0.8", | 1076 | "version": "0.0.8", |
550 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", | 1077 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", |
551 | "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", | 1078 | "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", |
552 | "dev": true | 1079 | "dev": true |
553 | }, | 1080 | }, |
1081 | "natural-compare": { | ||
1082 | "version": "1.4.0", | ||
1083 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", | ||
1084 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", | ||
1085 | "dev": true | ||
1086 | }, | ||
1087 | "nice-try": { | ||
1088 | "version": "1.0.5", | ||
1089 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", | ||
1090 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", | ||
1091 | "dev": true | ||
1092 | }, | ||
554 | "node-fetch": { | 1093 | "node-fetch": { |
555 | "version": "2.6.0", | 1094 | "version": "2.6.0", |
556 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", | 1095 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", |
@@ -574,6 +1113,29 @@ | |||
574 | "wrappy": "1" | 1113 | "wrappy": "1" |
575 | } | 1114 | } |
576 | }, | 1115 | }, |
1116 | "onetime": { | ||
1117 | "version": "5.1.0", | ||
1118 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", | ||
1119 | "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", | ||
1120 | "dev": true, | ||
1121 | "requires": { | ||
1122 | "mimic-fn": "^2.1.0" | ||
1123 | } | ||
1124 | }, | ||
1125 | "optionator": { | ||
1126 | "version": "0.8.3", | ||
1127 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", | ||
1128 | "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", | ||
1129 | "dev": true, | ||
1130 | "requires": { | ||
1131 | "deep-is": "~0.1.3", | ||
1132 | "fast-levenshtein": "~2.0.6", | ||
1133 | "levn": "~0.3.0", | ||
1134 | "prelude-ls": "~1.1.2", | ||
1135 | "type-check": "~0.3.2", | ||
1136 | "word-wrap": "~1.2.3" | ||
1137 | } | ||
1138 | }, | ||
577 | "os": { | 1139 | "os": { |
578 | "version": "0.1.1", | 1140 | "version": "0.1.1", |
579 | "resolved": "https://registry.npmjs.org/os/-/os-0.1.1.tgz", | 1141 | "resolved": "https://registry.npmjs.org/os/-/os-0.1.1.tgz", |
@@ -602,6 +1164,15 @@ | |||
602 | "os-tmpdir": "^1.0.0" | 1164 | "os-tmpdir": "^1.0.0" |
603 | } | 1165 | } |
604 | }, | 1166 | }, |
1167 | "parent-module": { | ||
1168 | "version": "1.0.1", | ||
1169 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", | ||
1170 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", | ||
1171 | "dev": true, | ||
1172 | "requires": { | ||
1173 | "callsites": "^3.0.0" | ||
1174 | } | ||
1175 | }, | ||
605 | "parse-semver": { | 1176 | "parse-semver": { |
606 | "version": "1.1.1", | 1177 | "version": "1.1.1", |
607 | "resolved": "https://registry.npmjs.org/parse-semver/-/parse-semver-1.1.1.tgz", | 1178 | "resolved": "https://registry.npmjs.org/parse-semver/-/parse-semver-1.1.1.tgz", |
@@ -634,6 +1205,12 @@ | |||
634 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", | 1205 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", |
635 | "dev": true | 1206 | "dev": true |
636 | }, | 1207 | }, |
1208 | "path-key": { | ||
1209 | "version": "2.0.1", | ||
1210 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", | ||
1211 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", | ||
1212 | "dev": true | ||
1213 | }, | ||
637 | "path-parse": { | 1214 | "path-parse": { |
638 | "version": "1.0.6", | 1215 | "version": "1.0.6", |
639 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", | 1216 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", |
@@ -646,12 +1223,30 @@ | |||
646 | "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", | 1223 | "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", |
647 | "dev": true | 1224 | "dev": true |
648 | }, | 1225 | }, |
1226 | "prelude-ls": { | ||
1227 | "version": "1.1.2", | ||
1228 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", | ||
1229 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", | ||
1230 | "dev": true | ||
1231 | }, | ||
1232 | "progress": { | ||
1233 | "version": "2.0.3", | ||
1234 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", | ||
1235 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", | ||
1236 | "dev": true | ||
1237 | }, | ||
649 | "pseudomap": { | 1238 | "pseudomap": { |
650 | "version": "1.0.2", | 1239 | "version": "1.0.2", |
651 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", | 1240 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", |
652 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", | 1241 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", |
653 | "dev": true | 1242 | "dev": true |
654 | }, | 1243 | }, |
1244 | "punycode": { | ||
1245 | "version": "2.1.1", | ||
1246 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", | ||
1247 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", | ||
1248 | "dev": true | ||
1249 | }, | ||
655 | "read": { | 1250 | "read": { |
656 | "version": "1.0.7", | 1251 | "version": "1.0.7", |
657 | "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", | 1252 | "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", |
@@ -672,6 +1267,12 @@ | |||
672 | "util-deprecate": "^1.0.1" | 1267 | "util-deprecate": "^1.0.1" |
673 | } | 1268 | } |
674 | }, | 1269 | }, |
1270 | "regexpp": { | ||
1271 | "version": "3.0.0", | ||
1272 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.0.0.tgz", | ||
1273 | "integrity": "sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g==", | ||
1274 | "dev": true | ||
1275 | }, | ||
675 | "resolve": { | 1276 | "resolve": { |
676 | "version": "1.14.1", | 1277 | "version": "1.14.1", |
677 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.1.tgz", | 1278 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.1.tgz", |
@@ -681,6 +1282,31 @@ | |||
681 | "path-parse": "^1.0.6" | 1282 | "path-parse": "^1.0.6" |
682 | } | 1283 | } |
683 | }, | 1284 | }, |
1285 | "resolve-from": { | ||
1286 | "version": "4.0.0", | ||
1287 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", | ||
1288 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", | ||
1289 | "dev": true | ||
1290 | }, | ||
1291 | "restore-cursor": { | ||
1292 | "version": "3.1.0", | ||
1293 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", | ||
1294 | "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", | ||
1295 | "dev": true, | ||
1296 | "requires": { | ||
1297 | "onetime": "^5.1.0", | ||
1298 | "signal-exit": "^3.0.2" | ||
1299 | } | ||
1300 | }, | ||
1301 | "rimraf": { | ||
1302 | "version": "2.6.3", | ||
1303 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", | ||
1304 | "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", | ||
1305 | "dev": true, | ||
1306 | "requires": { | ||
1307 | "glob": "^7.1.3" | ||
1308 | } | ||
1309 | }, | ||
684 | "rollup": { | 1310 | "rollup": { |
685 | "version": "1.31.1", | 1311 | "version": "1.31.1", |
686 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.31.1.tgz", | 1312 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.31.1.tgz", |
@@ -692,23 +1318,87 @@ | |||
692 | "acorn": "^7.1.0" | 1318 | "acorn": "^7.1.0" |
693 | } | 1319 | } |
694 | }, | 1320 | }, |
1321 | "run-async": { | ||
1322 | "version": "2.3.0", | ||
1323 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", | ||
1324 | "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", | ||
1325 | "dev": true, | ||
1326 | "requires": { | ||
1327 | "is-promise": "^2.1.0" | ||
1328 | } | ||
1329 | }, | ||
1330 | "rxjs": { | ||
1331 | "version": "6.5.4", | ||
1332 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", | ||
1333 | "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", | ||
1334 | "dev": true, | ||
1335 | "requires": { | ||
1336 | "tslib": "^1.9.0" | ||
1337 | } | ||
1338 | }, | ||
695 | "safe-buffer": { | 1339 | "safe-buffer": { |
696 | "version": "5.2.0", | 1340 | "version": "5.2.0", |
697 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", | 1341 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", |
698 | "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", | 1342 | "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", |
699 | "dev": true | 1343 | "dev": true |
700 | }, | 1344 | }, |
1345 | "safer-buffer": { | ||
1346 | "version": "2.1.2", | ||
1347 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", | ||
1348 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", | ||
1349 | "dev": true | ||
1350 | }, | ||
701 | "semver": { | 1351 | "semver": { |
702 | "version": "6.3.0", | 1352 | "version": "6.3.0", |
703 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", | 1353 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", |
704 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" | 1354 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" |
705 | }, | 1355 | }, |
1356 | "shebang-command": { | ||
1357 | "version": "1.2.0", | ||
1358 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", | ||
1359 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", | ||
1360 | "dev": true, | ||
1361 | "requires": { | ||
1362 | "shebang-regex": "^1.0.0" | ||
1363 | } | ||
1364 | }, | ||
1365 | "shebang-regex": { | ||
1366 | "version": "1.0.0", | ||
1367 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", | ||
1368 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", | ||
1369 | "dev": true | ||
1370 | }, | ||
706 | "sigmund": { | 1371 | "sigmund": { |
707 | "version": "1.0.1", | 1372 | "version": "1.0.1", |
708 | "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", | 1373 | "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", |
709 | "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", | 1374 | "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", |
710 | "dev": true | 1375 | "dev": true |
711 | }, | 1376 | }, |
1377 | "signal-exit": { | ||
1378 | "version": "3.0.2", | ||
1379 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", | ||
1380 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", | ||
1381 | "dev": true | ||
1382 | }, | ||
1383 | "slice-ansi": { | ||
1384 | "version": "2.1.0", | ||
1385 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", | ||
1386 | "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", | ||
1387 | "dev": true, | ||
1388 | "requires": { | ||
1389 | "ansi-styles": "^3.2.0", | ||
1390 | "astral-regex": "^1.0.0", | ||
1391 | "is-fullwidth-code-point": "^2.0.0" | ||
1392 | }, | ||
1393 | "dependencies": { | ||
1394 | "is-fullwidth-code-point": { | ||
1395 | "version": "2.0.0", | ||
1396 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", | ||
1397 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", | ||
1398 | "dev": true | ||
1399 | } | ||
1400 | } | ||
1401 | }, | ||
712 | "sourcemap-codec": { | 1402 | "sourcemap-codec": { |
713 | "version": "1.4.8", | 1403 | "version": "1.4.8", |
714 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", | 1404 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", |
@@ -721,6 +1411,28 @@ | |||
721 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", | 1411 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", |
722 | "dev": true | 1412 | "dev": true |
723 | }, | 1413 | }, |
1414 | "string-width": { | ||
1415 | "version": "4.2.0", | ||
1416 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", | ||
1417 | "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", | ||
1418 | "dev": true, | ||
1419 | "requires": { | ||
1420 | "emoji-regex": "^8.0.0", | ||
1421 | "is-fullwidth-code-point": "^3.0.0", | ||
1422 | "strip-ansi": "^6.0.0" | ||
1423 | }, | ||
1424 | "dependencies": { | ||
1425 | "strip-ansi": { | ||
1426 | "version": "6.0.0", | ||
1427 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", | ||
1428 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", | ||
1429 | "dev": true, | ||
1430 | "requires": { | ||
1431 | "ansi-regex": "^5.0.0" | ||
1432 | } | ||
1433 | } | ||
1434 | } | ||
1435 | }, | ||
724 | "string_decoder": { | 1436 | "string_decoder": { |
725 | "version": "1.3.0", | 1437 | "version": "1.3.0", |
726 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", | 1438 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", |
@@ -730,6 +1442,29 @@ | |||
730 | "safe-buffer": "~5.2.0" | 1442 | "safe-buffer": "~5.2.0" |
731 | } | 1443 | } |
732 | }, | 1444 | }, |
1445 | "strip-ansi": { | ||
1446 | "version": "5.2.0", | ||
1447 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", | ||
1448 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", | ||
1449 | "dev": true, | ||
1450 | "requires": { | ||
1451 | "ansi-regex": "^4.1.0" | ||
1452 | }, | ||
1453 | "dependencies": { | ||
1454 | "ansi-regex": { | ||
1455 | "version": "4.1.0", | ||
1456 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", | ||
1457 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", | ||
1458 | "dev": true | ||
1459 | } | ||
1460 | } | ||
1461 | }, | ||
1462 | "strip-json-comments": { | ||
1463 | "version": "3.0.1", | ||
1464 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", | ||
1465 | "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", | ||
1466 | "dev": true | ||
1467 | }, | ||
733 | "supports-color": { | 1468 | "supports-color": { |
734 | "version": "5.5.0", | 1469 | "version": "5.5.0", |
735 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", | 1470 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", |
@@ -739,11 +1474,60 @@ | |||
739 | "has-flag": "^3.0.0" | 1474 | "has-flag": "^3.0.0" |
740 | } | 1475 | } |
741 | }, | 1476 | }, |
1477 | "table": { | ||
1478 | "version": "5.4.6", | ||
1479 | "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", | ||
1480 | "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", | ||
1481 | "dev": true, | ||
1482 | "requires": { | ||
1483 | "ajv": "^6.10.2", | ||
1484 | "lodash": "^4.17.14", | ||
1485 | "slice-ansi": "^2.1.0", | ||
1486 | "string-width": "^3.0.0" | ||
1487 | }, | ||
1488 | "dependencies": { | ||
1489 | "emoji-regex": { | ||
1490 | "version": "7.0.3", | ||
1491 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", | ||
1492 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", | ||
1493 | "dev": true | ||
1494 | }, | ||
1495 | "is-fullwidth-code-point": { | ||
1496 | "version": "2.0.0", | ||
1497 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", | ||
1498 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", | ||
1499 | "dev": true | ||
1500 | }, | ||
1501 | "string-width": { | ||
1502 | "version": "3.1.0", | ||
1503 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", | ||
1504 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", | ||
1505 | "dev": true, | ||
1506 | "requires": { | ||
1507 | "emoji-regex": "^7.0.1", | ||
1508 | "is-fullwidth-code-point": "^2.0.0", | ||
1509 | "strip-ansi": "^5.1.0" | ||
1510 | } | ||
1511 | } | ||
1512 | } | ||
1513 | }, | ||
1514 | "text-table": { | ||
1515 | "version": "0.2.0", | ||
1516 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", | ||
1517 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", | ||
1518 | "dev": true | ||
1519 | }, | ||
742 | "throttle-debounce": { | 1520 | "throttle-debounce": { |
743 | "version": "2.1.0", | 1521 | "version": "2.1.0", |
744 | "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-2.1.0.tgz", | 1522 | "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-2.1.0.tgz", |
745 | "integrity": "sha512-AOvyNahXQuU7NN+VVvOOX+uW6FPaWdAOdRP5HfwYxAfCzXTFKRMoIMk+n+po318+ktcChx+F1Dd91G3YHeMKyg==" | 1523 | "integrity": "sha512-AOvyNahXQuU7NN+VVvOOX+uW6FPaWdAOdRP5HfwYxAfCzXTFKRMoIMk+n+po318+ktcChx+F1Dd91G3YHeMKyg==" |
746 | }, | 1524 | }, |
1525 | "through": { | ||
1526 | "version": "2.3.8", | ||
1527 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", | ||
1528 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", | ||
1529 | "dev": true | ||
1530 | }, | ||
747 | "tmp": { | 1531 | "tmp": { |
748 | "version": "0.0.29", | 1532 | "version": "0.0.29", |
749 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.29.tgz", | 1533 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.29.tgz", |
@@ -759,54 +1543,25 @@ | |||
759 | "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", | 1543 | "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", |
760 | "dev": true | 1544 | "dev": true |
761 | }, | 1545 | }, |
762 | "tslint": { | 1546 | "tunnel": { |
763 | "version": "5.20.1", | 1547 | "version": "0.0.4", |
764 | "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz", | 1548 | "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.4.tgz", |
765 | "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", | 1549 | "integrity": "sha1-LTeFoVjBdMmhbcLARuxfxfF0IhM=", |
766 | "dev": true, | 1550 | "dev": true |
767 | "requires": { | ||
768 | "@babel/code-frame": "^7.0.0", | ||
769 | "builtin-modules": "^1.1.1", | ||
770 | "chalk": "^2.3.0", | ||
771 | "commander": "^2.12.1", | ||
772 | "diff": "^4.0.1", | ||
773 | "glob": "^7.1.1", | ||
774 | "js-yaml": "^3.13.1", | ||
775 | "minimatch": "^3.0.4", | ||
776 | "mkdirp": "^0.5.1", | ||
777 | "resolve": "^1.3.2", | ||
778 | "semver": "^5.3.0", | ||
779 | "tslib": "^1.8.0", | ||
780 | "tsutils": "^2.29.0" | ||
781 | }, | ||
782 | "dependencies": { | ||
783 | "builtin-modules": { | ||
784 | "version": "1.1.1", | ||
785 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", | ||
786 | "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", | ||
787 | "dev": true | ||
788 | }, | ||
789 | "semver": { | ||
790 | "version": "5.7.1", | ||
791 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", | ||
792 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", | ||
793 | "dev": true | ||
794 | } | ||
795 | } | ||
796 | }, | 1551 | }, |
797 | "tsutils": { | 1552 | "type-check": { |
798 | "version": "2.29.0", | 1553 | "version": "0.3.2", |
799 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", | 1554 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", |
800 | "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", | 1555 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", |
801 | "dev": true, | 1556 | "dev": true, |
802 | "requires": { | 1557 | "requires": { |
803 | "tslib": "^1.8.1" | 1558 | "prelude-ls": "~1.1.2" |
804 | } | 1559 | } |
805 | }, | 1560 | }, |
806 | "tunnel": { | 1561 | "type-fest": { |
807 | "version": "0.0.4", | 1562 | "version": "0.8.1", |
808 | "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.4.tgz", | 1563 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", |
809 | "integrity": "sha1-LTeFoVjBdMmhbcLARuxfxfF0IhM=", | 1564 | "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", |
810 | "dev": true | 1565 | "dev": true |
811 | }, | 1566 | }, |
812 | "typed-rest-client": { | 1567 | "typed-rest-client": { |
@@ -847,6 +1602,15 @@ | |||
847 | "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", | 1602 | "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", |
848 | "dev": true | 1603 | "dev": true |
849 | }, | 1604 | }, |
1605 | "uri-js": { | ||
1606 | "version": "4.2.2", | ||
1607 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", | ||
1608 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", | ||
1609 | "dev": true, | ||
1610 | "requires": { | ||
1611 | "punycode": "^2.1.0" | ||
1612 | } | ||
1613 | }, | ||
850 | "url-join": { | 1614 | "url-join": { |
851 | "version": "1.1.0", | 1615 | "version": "1.1.0", |
852 | "resolved": "https://registry.npmjs.org/url-join/-/url-join-1.1.0.tgz", | 1616 | "resolved": "https://registry.npmjs.org/url-join/-/url-join-1.1.0.tgz", |
@@ -859,6 +1623,12 @@ | |||
859 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", | 1623 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", |
860 | "dev": true | 1624 | "dev": true |
861 | }, | 1625 | }, |
1626 | "v8-compile-cache": { | ||
1627 | "version": "2.1.0", | ||
1628 | "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", | ||
1629 | "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", | ||
1630 | "dev": true | ||
1631 | }, | ||
862 | "vsce": { | 1632 | "vsce": { |
863 | "version": "1.73.0", | 1633 | "version": "1.73.0", |
864 | "resolved": "https://registry.npmjs.org/vsce/-/vsce-1.73.0.tgz", | 1634 | "resolved": "https://registry.npmjs.org/vsce/-/vsce-1.73.0.tgz", |
@@ -901,18 +1671,18 @@ | |||
901 | "integrity": "sha512-JvONPptw3GAQGXlVV2utDcHx0BiY34FupW/kI6mZ5x06ER5DdPG/tXWMVHjTNULF5uKPOUUD0SaXg5QaubJL0A==" | 1671 | "integrity": "sha512-JvONPptw3GAQGXlVV2utDcHx0BiY34FupW/kI6mZ5x06ER5DdPG/tXWMVHjTNULF5uKPOUUD0SaXg5QaubJL0A==" |
902 | }, | 1672 | }, |
903 | "vscode-languageclient": { | 1673 | "vscode-languageclient": { |
904 | "version": "6.1.0", | 1674 | "version": "6.1.1", |
905 | "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-6.1.0.tgz", | 1675 | "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-6.1.1.tgz", |
906 | "integrity": "sha512-Tcp0VoOaa0YzxL4nEfK9tsmcy76Eo8jNLvFQZwh2c8oMm02luL8uGYPLQNAiZ3XGgegfcwiQFZMqbW7DNV0vxA==", | 1676 | "integrity": "sha512-mB6d8Tg+82l8EFUfR+SBu0+lCshyKVgC5E5+MQ0/BJa+9AgeBjtG5npoGaCo4/VvWzK0ZRGm85zU5iRp1RYPIA==", |
907 | "requires": { | 1677 | "requires": { |
908 | "semver": "^6.3.0", | 1678 | "semver": "^6.3.0", |
909 | "vscode-languageserver-protocol": "^3.15.2" | 1679 | "vscode-languageserver-protocol": "^3.15.3" |
910 | } | 1680 | } |
911 | }, | 1681 | }, |
912 | "vscode-languageserver-protocol": { | 1682 | "vscode-languageserver-protocol": { |
913 | "version": "3.15.2", | 1683 | "version": "3.15.3", |
914 | "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.15.2.tgz", | 1684 | "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.15.3.tgz", |
915 | "integrity": "sha512-GdL05JKOgZ76RDg3suiGCl9enESM7iQgGw4x93ibTh4sldvZmakHmTeZ4iUApPPGKf6O3OVBtrsksBXnHYaxNg==", | 1685 | "integrity": "sha512-zrMuwHOAQRhjDSnflWdJG+O2ztMWss8GqUUB8dXLR/FPenwkiBNkMIJJYfSN6sgskvsF0rHAoBowNQfbyZnnvw==", |
916 | "requires": { | 1686 | "requires": { |
917 | "vscode-jsonrpc": "^5.0.1", | 1687 | "vscode-jsonrpc": "^5.0.1", |
918 | "vscode-languageserver-types": "3.15.1" | 1688 | "vscode-languageserver-types": "3.15.1" |
@@ -923,12 +1693,36 @@ | |||
923 | "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.15.1.tgz", | 1693 | "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.15.1.tgz", |
924 | "integrity": "sha512-+a9MPUQrNGRrGU630OGbYVQ+11iOIovjCkqxajPa9w57Sd5ruK8WQNsslzpa0x/QJqC8kRc2DUxWjIFwoNm4ZQ==" | 1694 | "integrity": "sha512-+a9MPUQrNGRrGU630OGbYVQ+11iOIovjCkqxajPa9w57Sd5ruK8WQNsslzpa0x/QJqC8kRc2DUxWjIFwoNm4ZQ==" |
925 | }, | 1695 | }, |
1696 | "which": { | ||
1697 | "version": "1.3.1", | ||
1698 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", | ||
1699 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", | ||
1700 | "dev": true, | ||
1701 | "requires": { | ||
1702 | "isexe": "^2.0.0" | ||
1703 | } | ||
1704 | }, | ||
1705 | "word-wrap": { | ||
1706 | "version": "1.2.3", | ||
1707 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", | ||
1708 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", | ||
1709 | "dev": true | ||
1710 | }, | ||
926 | "wrappy": { | 1711 | "wrappy": { |
927 | "version": "1.0.2", | 1712 | "version": "1.0.2", |
928 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", | 1713 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", |
929 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", | 1714 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", |
930 | "dev": true | 1715 | "dev": true |
931 | }, | 1716 | }, |
1717 | "write": { | ||
1718 | "version": "1.0.3", | ||
1719 | "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", | ||
1720 | "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", | ||
1721 | "dev": true, | ||
1722 | "requires": { | ||
1723 | "mkdirp": "^0.5.1" | ||
1724 | } | ||
1725 | }, | ||
932 | "yallist": { | 1726 | "yallist": { |
933 | "version": "2.1.2", | 1727 | "version": "2.1.2", |
934 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", | 1728 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", |
diff --git a/editors/code/package.json b/editors/code/package.json index d54b1750a..c498c14b4 100644 --- a/editors/code/package.json +++ b/editors/code/package.json | |||
@@ -22,13 +22,13 @@ | |||
22 | "vscode:prepublish": "tsc && rollup -c", | 22 | "vscode:prepublish": "tsc && rollup -c", |
23 | "package": "vsce package -o rust-analyzer.vsix", | 23 | "package": "vsce package -o rust-analyzer.vsix", |
24 | "watch": "tsc --watch", | 24 | "watch": "tsc --watch", |
25 | "fmt": "tsfmt -r && tslint -p tsconfig.json -c tslint.json 'src/**/*.ts' --fix" | 25 | "fmt": "tsfmt -r && eslint -c .eslintrc.js --ext ts ./src/ --fix" |
26 | }, | 26 | }, |
27 | "dependencies": { | 27 | "dependencies": { |
28 | "jsonc-parser": "^2.1.0", | 28 | "jsonc-parser": "^2.1.0", |
29 | "node-fetch": "^2.6.0", | 29 | "node-fetch": "^2.6.0", |
30 | "throttle-debounce": "^2.1.0", | 30 | "throttle-debounce": "^2.1.0", |
31 | "vscode-languageclient": "^6.1.0" | 31 | "vscode-languageclient": "^6.1.1" |
32 | }, | 32 | }, |
33 | "devDependencies": { | 33 | "devDependencies": { |
34 | "@rollup/plugin-commonjs": "^11.0.2", | 34 | "@rollup/plugin-commonjs": "^11.0.2", |
@@ -37,9 +37,11 @@ | |||
37 | "@types/node-fetch": "^2.5.4", | 37 | "@types/node-fetch": "^2.5.4", |
38 | "@types/throttle-debounce": "^2.1.0", | 38 | "@types/throttle-debounce": "^2.1.0", |
39 | "@types/vscode": "^1.42.0", | 39 | "@types/vscode": "^1.42.0", |
40 | "@typescript-eslint/eslint-plugin": "^2.20.0", | ||
41 | "@typescript-eslint/parser": "^2.20.0", | ||
42 | "eslint": "^6.8.0", | ||
40 | "rollup": "^1.31.1", | 43 | "rollup": "^1.31.1", |
41 | "tslib": "^1.10.0", | 44 | "tslib": "^1.10.0", |
42 | "tslint": "^5.20.1", | ||
43 | "typescript": "^3.7.5", | 45 | "typescript": "^3.7.5", |
44 | "typescript-formatter": "^7.2.2", | 46 | "typescript-formatter": "^7.2.2", |
45 | "vsce": "^1.73.0" | 47 | "vsce": "^1.73.0" |
@@ -177,13 +179,13 @@ | |||
177 | "default": {}, | 179 | "default": {}, |
178 | "description": "Fine grained feature flags to disable annoying features" | 180 | "description": "Fine grained feature flags to disable annoying features" |
179 | }, | 181 | }, |
180 | "rust-analyzer.raLspServerPath": { | 182 | "rust-analyzer.serverPath": { |
181 | "type": [ | 183 | "type": [ |
182 | "null", | 184 | "null", |
183 | "string" | 185 | "string" |
184 | ], | 186 | ], |
185 | "default": null, | 187 | "default": null, |
186 | "description": "Path to ra_lsp_server executable (points to bundled binary by default)" | 188 | "description": "Path to rust-analyzer executable (points to bundled binary by default)" |
187 | }, | 189 | }, |
188 | "rust-analyzer.excludeGlobs": { | 190 | "rust-analyzer.excludeGlobs": { |
189 | "type": "array", | 191 | "type": "array", |
@@ -243,7 +245,7 @@ | |||
243 | "Full log" | 245 | "Full log" |
244 | ], | 246 | ], |
245 | "default": "off", | 247 | "default": "off", |
246 | "description": "Trace requests to the ra_lsp_server" | 248 | "description": "Trace requests to the rust-analyzer" |
247 | }, | 249 | }, |
248 | "rust-analyzer.lruCapacity": { | 250 | "rust-analyzer.lruCapacity": { |
249 | "type": [ | 251 | "type": [ |
diff --git a/editors/code/src/commands/index.ts b/editors/code/src/commands/index.ts index d05f40d67..bebd99ca9 100644 --- a/editors/code/src/commands/index.ts +++ b/editors/code/src/commands/index.ts | |||
@@ -16,7 +16,7 @@ export * from './ssr'; | |||
16 | 16 | ||
17 | export function collectGarbage(ctx: Ctx): Cmd { | 17 | export function collectGarbage(ctx: Ctx): Cmd { |
18 | return async () => { | 18 | return async () => { |
19 | ctx.client?.sendRequest<null>('rust-analyzer/collectGarbage', null); | 19 | await ctx.client?.sendRequest<null>('rust-analyzer/collectGarbage', null); |
20 | }; | 20 | }; |
21 | } | 21 | } |
22 | 22 | ||
diff --git a/editors/code/src/commands/ssr.ts b/editors/code/src/commands/ssr.ts index 6287bf47b..9b814612a 100644 --- a/editors/code/src/commands/ssr.ts +++ b/editors/code/src/commands/ssr.ts | |||
@@ -14,9 +14,9 @@ export function ssr(ctx: Ctx): Cmd { | |||
14 | if (x.includes('==>>')) { | 14 | if (x.includes('==>>')) { |
15 | return null; | 15 | return null; |
16 | } | 16 | } |
17 | return "Enter request: pattern ==>> template" | 17 | return "Enter request: pattern ==>> template"; |
18 | } | 18 | } |
19 | } | 19 | }; |
20 | const request = await vscode.window.showInputBox(options); | 20 | const request = await vscode.window.showInputBox(options); |
21 | 21 | ||
22 | if (!request) return; | 22 | if (!request) return; |
diff --git a/editors/code/src/config.ts b/editors/code/src/config.ts index c3fa788c7..347c989c4 100644 --- a/editors/code/src/config.ts +++ b/editors/code/src/config.ts | |||
@@ -22,7 +22,7 @@ export class Config { | |||
22 | "cargoFeatures", | 22 | "cargoFeatures", |
23 | "cargo-watch", | 23 | "cargo-watch", |
24 | ] | 24 | ] |
25 | .map(opt => `${Config.rootSection}.${opt}`); | 25 | .map(opt => `${Config.rootSection}.${opt}`); |
26 | 26 | ||
27 | private static readonly extensionVersion: string = (() => { | 27 | private static readonly extensionVersion: string = (() => { |
28 | const packageJsonVersion = vscode | 28 | const packageJsonVersion = vscode |
@@ -76,7 +76,7 @@ export class Config { | |||
76 | } | 76 | } |
77 | 77 | ||
78 | /** | 78 | /** |
79 | * Name of the binary artifact for `ra_lsp_server` that is published for | 79 | * Name of the binary artifact for `rust-analyzer` that is published for |
80 | * `platform` on GitHub releases. (It is also stored under the same name when | 80 | * `platform` on GitHub releases. (It is also stored under the same name when |
81 | * downloaded by the extension). | 81 | * downloaded by the extension). |
82 | */ | 82 | */ |
@@ -91,12 +91,12 @@ export class Config { | |||
91 | case "arm": | 91 | case "arm": |
92 | case "arm64": return null; | 92 | case "arm64": return null; |
93 | 93 | ||
94 | default: return "ra_lsp_server-linux"; | 94 | default: return "rust-analyzer-linux"; |
95 | } | 95 | } |
96 | } | 96 | } |
97 | 97 | ||
98 | case "darwin": return "ra_lsp_server-mac"; | 98 | case "darwin": return "rust-analyzer-mac"; |
99 | case "win32": return "ra_lsp_server-windows.exe"; | 99 | case "win32": return "rust-analyzer-windows.exe"; |
100 | 100 | ||
101 | // Users on these platforms yet need to manually build from sources | 101 | // Users on these platforms yet need to manually build from sources |
102 | case "aix": | 102 | case "aix": |
@@ -111,7 +111,7 @@ export class Config { | |||
111 | } | 111 | } |
112 | 112 | ||
113 | get serverSource(): null | BinarySource { | 113 | get serverSource(): null | BinarySource { |
114 | const serverPath = RA_LSP_DEBUG ?? this.cfg.get<null | string>("raLspServerPath"); | 114 | const serverPath = RA_LSP_DEBUG ?? this.cfg.get<null | string>("serverPath"); |
115 | 115 | ||
116 | if (serverPath) { | 116 | if (serverPath) { |
117 | return { | 117 | return { |
@@ -126,7 +126,7 @@ export class Config { | |||
126 | 126 | ||
127 | return { | 127 | return { |
128 | type: BinarySource.Type.GithubRelease, | 128 | type: BinarySource.Type.GithubRelease, |
129 | dir: this.ctx.globalStoragePath, | 129 | dir: this.ctx.globalStoragePath, |
130 | file: prebuiltBinaryName, | 130 | file: prebuiltBinaryName, |
131 | storage: this.ctx.globalState, | 131 | storage: this.ctx.globalState, |
132 | version: Config.extensionVersion, | 132 | version: Config.extensionVersion, |
@@ -140,30 +140,30 @@ export class Config { | |||
140 | // We don't do runtime config validation here for simplicity. More on stackoverflow: | 140 | // We don't do runtime config validation here for simplicity. More on stackoverflow: |
141 | // https://stackoverflow.com/questions/60135780/what-is-the-best-way-to-type-check-the-configuration-for-vscode-extension | 141 | // https://stackoverflow.com/questions/60135780/what-is-the-best-way-to-type-check-the-configuration-for-vscode-extension |
142 | 142 | ||
143 | get highlightingOn() { return this.cfg.get("highlightingOn") as boolean; } | 143 | get highlightingOn() { return this.cfg.get("highlightingOn") as boolean; } |
144 | get rainbowHighlightingOn() { return this.cfg.get("rainbowHighlightingOn") as boolean; } | 144 | get rainbowHighlightingOn() { return this.cfg.get("rainbowHighlightingOn") as boolean; } |
145 | get lruCapacity() { return this.cfg.get("lruCapacity") as null | number; } | 145 | get lruCapacity() { return this.cfg.get("lruCapacity") as null | number; } |
146 | get displayInlayHints() { return this.cfg.get("displayInlayHints") as boolean; } | 146 | get displayInlayHints() { return this.cfg.get("displayInlayHints") as boolean; } |
147 | get maxInlayHintLength() { return this.cfg.get("maxInlayHintLength") as number; } | 147 | get maxInlayHintLength() { return this.cfg.get("maxInlayHintLength") as number; } |
148 | get excludeGlobs() { return this.cfg.get("excludeGlobs") as string[]; } | 148 | get excludeGlobs() { return this.cfg.get("excludeGlobs") as string[]; } |
149 | get useClientWatching() { return this.cfg.get("useClientWatching") as boolean; } | 149 | get useClientWatching() { return this.cfg.get("useClientWatching") as boolean; } |
150 | get featureFlags() { return this.cfg.get("featureFlags") as Record<string, boolean>; } | 150 | get featureFlags() { return this.cfg.get("featureFlags") as Record<string, boolean>; } |
151 | get rustfmtArgs() { return this.cfg.get("rustfmtArgs") as string[]; } | 151 | get rustfmtArgs() { return this.cfg.get("rustfmtArgs") as string[]; } |
152 | 152 | ||
153 | get cargoWatchOptions(): CargoWatchOptions { | 153 | get cargoWatchOptions(): CargoWatchOptions { |
154 | return { | 154 | return { |
155 | enable: this.cfg.get("cargo-watch.enable") as boolean, | 155 | enable: this.cfg.get("cargo-watch.enable") as boolean, |
156 | arguments: this.cfg.get("cargo-watch.arguments") as string[], | 156 | arguments: this.cfg.get("cargo-watch.arguments") as string[], |
157 | allTargets: this.cfg.get("cargo-watch.allTargets") as boolean, | 157 | allTargets: this.cfg.get("cargo-watch.allTargets") as boolean, |
158 | command: this.cfg.get("cargo-watch.command") as string, | 158 | command: this.cfg.get("cargo-watch.command") as string, |
159 | }; | 159 | }; |
160 | } | 160 | } |
161 | 161 | ||
162 | get cargoFeatures(): CargoFeatures { | 162 | get cargoFeatures(): CargoFeatures { |
163 | return { | 163 | return { |
164 | noDefaultFeatures: this.cfg.get("cargoFeatures.noDefaultFeatures") as boolean, | 164 | noDefaultFeatures: this.cfg.get("cargoFeatures.noDefaultFeatures") as boolean, |
165 | allFeatures: this.cfg.get("cargoFeatures.allFeatures") as boolean, | 165 | allFeatures: this.cfg.get("cargoFeatures.allFeatures") as boolean, |
166 | features: this.cfg.get("cargoFeatures.features") as string[], | 166 | features: this.cfg.get("cargoFeatures.features") as string[], |
167 | }; | 167 | }; |
168 | } | 168 | } |
169 | 169 | ||
diff --git a/editors/code/src/highlighting.ts b/editors/code/src/highlighting.ts index a2db04de8..c4d286aef 100644 --- a/editors/code/src/highlighting.ts +++ b/editors/code/src/highlighting.ts | |||
@@ -29,7 +29,7 @@ export function activateHighlighting(ctx: Ctx) { | |||
29 | highlighter.setHighlights(targetEditor, params.decorations); | 29 | highlighter.setHighlights(targetEditor, params.decorations); |
30 | }, | 30 | }, |
31 | ); | 31 | ); |
32 | }; | 32 | } |
33 | 33 | ||
34 | vscode.workspace.onDidChangeConfiguration( | 34 | vscode.workspace.onDidChangeConfiguration( |
35 | _ => highlighter.removeHighlights(), | 35 | _ => highlighter.removeHighlights(), |
diff --git a/editors/code/src/inlay_hints.ts b/editors/code/src/inlay_hints.ts index f82df66ae..26705067a 100644 --- a/editors/code/src/inlay_hints.ts +++ b/editors/code/src/inlay_hints.ts | |||
@@ -29,13 +29,13 @@ export function activateInlayHints(ctx: Ctx) { | |||
29 | 29 | ||
30 | ctx.pushCleanup({ | 30 | ctx.pushCleanup({ |
31 | dispose() { | 31 | dispose() { |
32 | hintsUpdater.clear() | 32 | hintsUpdater.clear(); |
33 | } | 33 | } |
34 | }) | 34 | }); |
35 | 35 | ||
36 | // XXX: we don't await this, thus Promise rejections won't be handled, but | 36 | // XXX: we don't await this, thus Promise rejections won't be handled, but |
37 | // this should never throw in fact... | 37 | // this should never throw in fact... |
38 | hintsUpdater.setEnabled(ctx.config.displayInlayHints) | 38 | void hintsUpdater.setEnabled(ctx.config.displayInlayHints); |
39 | } | 39 | } |
40 | 40 | ||
41 | interface InlayHintsParams { | 41 | interface InlayHintsParams { |
@@ -57,7 +57,7 @@ const typeHintDecorationType = vscode.window.createTextEditorDecorationType({ | |||
57 | const parameterHintDecorationType = vscode.window.createTextEditorDecorationType({ | 57 | const parameterHintDecorationType = vscode.window.createTextEditorDecorationType({ |
58 | before: { | 58 | before: { |
59 | color: new vscode.ThemeColor('rust_analyzer.inlayHint'), | 59 | color: new vscode.ThemeColor('rust_analyzer.inlayHint'), |
60 | } | 60 | }, |
61 | }); | 61 | }); |
62 | 62 | ||
63 | class HintsUpdater { | 63 | class HintsUpdater { |
diff --git a/editors/code/src/installation/download_artifact.ts b/editors/code/src/installation/download_artifact.ts index de655f8f4..9996c556f 100644 --- a/editors/code/src/installation/download_artifact.ts +++ b/editors/code/src/installation/download_artifact.ts | |||
@@ -15,7 +15,7 @@ import { throttle } from "throttle-debounce"; | |||
15 | * of the artifact as `displayName`. | 15 | * of the artifact as `displayName`. |
16 | */ | 16 | */ |
17 | export async function downloadArtifact( | 17 | export async function downloadArtifact( |
18 | {downloadUrl, releaseName}: ArtifactReleaseInfo, | 18 | { downloadUrl, releaseName }: ArtifactReleaseInfo, |
19 | artifactFileName: string, | 19 | artifactFileName: string, |
20 | installationDir: string, | 20 | installationDir: string, |
21 | displayName: string, | 21 | displayName: string, |
@@ -23,7 +23,7 @@ export async function downloadArtifact( | |||
23 | await fs.mkdir(installationDir).catch(err => assert.strictEqual( | 23 | await fs.mkdir(installationDir).catch(err => assert.strictEqual( |
24 | err?.code, | 24 | err?.code, |
25 | "EEXIST", | 25 | "EEXIST", |
26 | `Couldn't create directory "${installationDir}" to download `+ | 26 | `Couldn't create directory "${installationDir}" to download ` + |
27 | `${artifactFileName} artifact: ${err.message}` | 27 | `${artifactFileName} artifact: ${err.message}` |
28 | )); | 28 | )); |
29 | 29 | ||
diff --git a/editors/code/src/installation/fetch_artifact_release_info.ts b/editors/code/src/installation/fetch_artifact_release_info.ts index 7d497057a..71889e82a 100644 --- a/editors/code/src/installation/fetch_artifact_release_info.ts +++ b/editors/code/src/installation/fetch_artifact_release_info.ts | |||
@@ -14,7 +14,7 @@ export async function fetchArtifactReleaseInfo( | |||
14 | ): Promise<null | ArtifactReleaseInfo> { | 14 | ): Promise<null | ArtifactReleaseInfo> { |
15 | 15 | ||
16 | const repoOwner = encodeURIComponent(repo.owner); | 16 | const repoOwner = encodeURIComponent(repo.owner); |
17 | const repoName = encodeURIComponent(repo.name); | 17 | const repoName = encodeURIComponent(repo.name); |
18 | 18 | ||
19 | const apiEndpointPath = releaseTag | 19 | const apiEndpointPath = releaseTag |
20 | ? `/repos/${repoOwner}/${repoName}/releases/tags/${releaseTag}` | 20 | ? `/repos/${repoOwner}/${repoName}/releases/tags/${releaseTag}` |
@@ -28,8 +28,8 @@ export async function fetchArtifactReleaseInfo( | |||
28 | 28 | ||
29 | // FIXME: handle non-ok response | 29 | // FIXME: handle non-ok response |
30 | const response: GithubRelease = await fetch(requestUrl, { | 30 | const response: GithubRelease = await fetch(requestUrl, { |
31 | headers: { Accept: "application/vnd.github.v3+json" } | 31 | headers: { Accept: "application/vnd.github.v3+json" } |
32 | }) | 32 | }) |
33 | .then(res => res.json()); | 33 | .then(res => res.json()); |
34 | 34 | ||
35 | const artifact = response.assets.find(artifact => artifact.name === artifactFileName); | 35 | const artifact = response.assets.find(artifact => artifact.name === artifactFileName); |
diff --git a/editors/code/src/installation/server.ts b/editors/code/src/installation/server.ts index 6f69af698..63ab104a1 100644 --- a/editors/code/src/installation/server.ts +++ b/editors/code/src/installation/server.ts | |||
@@ -29,7 +29,7 @@ export async function ensureServerBinary(source: null | BinarySource): Promise<n | |||
29 | 29 | ||
30 | vscode.window.showErrorMessage( | 30 | vscode.window.showErrorMessage( |
31 | `Unable to run ${source.path} binary. ` + | 31 | `Unable to run ${source.path} binary. ` + |
32 | `To use the pre-built language server, set "rust-analyzer.raLspServerPath" ` + | 32 | `To use the pre-built language server, set "rust-analyzer.serverPath" ` + |
33 | "value to `null` or remove it from the settings to use it by default." | 33 | "value to `null` or remove it from the settings to use it by default." |
34 | ); | 34 | ); |
35 | return null; | 35 | return null; |
diff --git a/editors/code/src/main.ts b/editors/code/src/main.ts index 0ad7ef1bb..a22e0bc66 100644 --- a/editors/code/src/main.ts +++ b/editors/code/src/main.ts | |||
@@ -11,7 +11,7 @@ import { Config } from './config'; | |||
11 | let ctx: Ctx | undefined; | 11 | let ctx: Ctx | undefined; |
12 | 12 | ||
13 | export async function activate(context: vscode.ExtensionContext) { | 13 | export async function activate(context: vscode.ExtensionContext) { |
14 | const config = new Config(context) | 14 | const config = new Config(context); |
15 | 15 | ||
16 | const serverPath = await ensureServerBinary(config.serverSource); | 16 | const serverPath = await ensureServerBinary(config.serverSource); |
17 | if (serverPath == null) { | 17 | if (serverPath == null) { |
@@ -33,7 +33,7 @@ export async function activate(context: vscode.ExtensionContext) { | |||
33 | vscode.window.showInformationMessage('Reloading rust-analyzer...'); | 33 | vscode.window.showInformationMessage('Reloading rust-analyzer...'); |
34 | // @DanTup maneuver | 34 | // @DanTup maneuver |
35 | // https://github.com/microsoft/vscode/issues/45774#issuecomment-373423895 | 35 | // https://github.com/microsoft/vscode/issues/45774#issuecomment-373423895 |
36 | await deactivate() | 36 | await deactivate(); |
37 | for (const sub of ctx.subscriptions) { | 37 | for (const sub of ctx.subscriptions) { |
38 | try { | 38 | try { |
39 | sub.dispose(); | 39 | sub.dispose(); |
@@ -41,9 +41,9 @@ export async function activate(context: vscode.ExtensionContext) { | |||
41 | console.error(e); | 41 | console.error(e); |
42 | } | 42 | } |
43 | } | 43 | } |
44 | await activate(context) | 44 | await activate(context); |
45 | } | 45 | }; |
46 | }) | 46 | }); |
47 | 47 | ||
48 | ctx.registerCommand('analyzerStatus', commands.analyzerStatus); | 48 | ctx.registerCommand('analyzerStatus', commands.analyzerStatus); |
49 | ctx.registerCommand('collectGarbage', commands.collectGarbage); | 49 | ctx.registerCommand('collectGarbage', commands.collectGarbage); |
@@ -54,7 +54,7 @@ export async function activate(context: vscode.ExtensionContext) { | |||
54 | ctx.registerCommand('expandMacro', commands.expandMacro); | 54 | ctx.registerCommand('expandMacro', commands.expandMacro); |
55 | ctx.registerCommand('run', commands.run); | 55 | ctx.registerCommand('run', commands.run); |
56 | ctx.registerCommand('onEnter', commands.onEnter); | 56 | ctx.registerCommand('onEnter', commands.onEnter); |
57 | ctx.registerCommand('ssr', commands.ssr) | 57 | ctx.registerCommand('ssr', commands.ssr); |
58 | 58 | ||
59 | // Internal commands which are invoked by the server. | 59 | // Internal commands which are invoked by the server. |
60 | ctx.registerCommand('runSingle', commands.runSingle); | 60 | ctx.registerCommand('runSingle', commands.runSingle); |
diff --git a/editors/code/src/status_display.ts b/editors/code/src/status_display.ts index ed0d82166..0f5f6ef99 100644 --- a/editors/code/src/status_display.ts +++ b/editors/code/src/status_display.ts | |||
@@ -15,7 +15,7 @@ export function activateStatusDisplay(ctx: Ctx) { | |||
15 | WorkDoneProgress.type, | 15 | WorkDoneProgress.type, |
16 | 'rustAnalyzer/cargoWatcher', | 16 | 'rustAnalyzer/cargoWatcher', |
17 | params => statusDisplay.handleProgressNotification(params) | 17 | params => statusDisplay.handleProgressNotification(params) |
18 | )) | 18 | )); |
19 | } | 19 | } |
20 | } | 20 | } |
21 | 21 | ||
diff --git a/editors/code/tslint.json b/editors/code/tslint.json deleted file mode 100644 index 333e2a321..000000000 --- a/editors/code/tslint.json +++ /dev/null | |||
@@ -1,10 +0,0 @@ | |||
1 | { | ||
2 | "rules": { | ||
3 | "semicolon": [ | ||
4 | true, | ||
5 | "always" | ||
6 | ], | ||
7 | "prefer-const": true, | ||
8 | "no-floating-promises": true | ||
9 | } | ||
10 | } | ||
diff --git a/xtask/src/install.rs b/xtask/src/install.rs index 91426377f..cc6fecc85 100644 --- a/xtask/src/install.rs +++ b/xtask/src/install.rs | |||
@@ -39,7 +39,7 @@ impl InstallCmd { | |||
39 | " | 39 | " |
40 | Installation complete. | 40 | Installation complete. |
41 | 41 | ||
42 | Add `\"rust-analyzer.raLspServerPath\": \"ra_lsp_server\",` to VS Code settings, | 42 | Add `\"rust-analyzer.serverPath\": \"rust-analyzer\",` to VS Code settings, |
43 | otherwise it will use the latest release from GitHub. | 43 | otherwise it will use the latest release from GitHub. |
44 | " | 44 | " |
45 | ) | 45 | ) |
@@ -142,7 +142,7 @@ fn install_server(opts: ServerOpt) -> Result<()> { | |||
142 | } | 142 | } |
143 | 143 | ||
144 | let jemalloc = if opts.jemalloc { "--features jemalloc" } else { "" }; | 144 | let jemalloc = if opts.jemalloc { "--features jemalloc" } else { "" }; |
145 | let res = run!("cargo install --path crates/ra_lsp_server --locked --force {}", jemalloc); | 145 | let res = run!("cargo install --path crates/rust-analyzer --locked --force {}", jemalloc); |
146 | 146 | ||
147 | if res.is_err() && old_rust { | 147 | if res.is_err() && old_rust { |
148 | eprintln!( | 148 | eprintln!( |
diff --git a/xtask/tests/tidy-tests/docs.rs b/xtask/tests/tidy-tests/docs.rs index b2571df25..62c4f8441 100644 --- a/xtask/tests/tidy-tests/docs.rs +++ b/xtask/tests/tidy-tests/docs.rs | |||
@@ -77,7 +77,6 @@ fn no_docs_comments() { | |||
77 | "ra_hir", | 77 | "ra_hir", |
78 | "ra_hir_expand", | 78 | "ra_hir_expand", |
79 | "ra_ide", | 79 | "ra_ide", |
80 | "ra_lsp_server", | ||
81 | "ra_mbe", | 80 | "ra_mbe", |
82 | "ra_parser", | 81 | "ra_parser", |
83 | "ra_prof", | 82 | "ra_prof", |