Commit graph

560 commits

Author SHA1 Message Date
Aleksey Kladov
b49508ffe3 Fix flickering with new syntax highlighting 2020-02-27 10:19:56 +01:00
bors[bot]
04b3bd5ee8
Merge #3308
3308: vscode: fix vscode-vim keybindings conflict r=matklad a=Veetaha

Closes #3013 I hope

vscode-vim extension overrides the `type` command so that it prevents
some keypresses to reach the text document editor.
It conflicts with our `onEnter` keybinding
that is used to support automatic doc comments extending and
indentation insertion.

The VSCode-native way to implement this would be
to use regular expressions, but as per matklad it is
considered not acceptable for the language server.

Thus we implement it via a `Enter` keybinding that
invokes our `onEnter` command which does it via the language-server.

At the end of the day we may only apply
ad hoc workarounds for conflicting extensions.
But vscode has another bug for that. You
either cannot use parantheses in `when` condition
of a keybinding or it just malfunctions.

See an issue about that here: https://github.com/microsoft/vscode/issues/91473
To get the ultimate context, follow this [zulip thread](https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Enhanced.20typing)

Co-authored-by: Veetaha <gerzoh1@gmail.com>
2020-02-27 09:00:31 +00:00
Aleksey Kladov
a8e68ff814 Color constants 2020-02-27 09:32:00 +01:00
Aleksey Kladov
f7db49bfc6 Better highlightign API 2020-02-27 09:32:00 +01:00
Aleksey Kladov
723e83fb25 wip 2020-02-26 22:08:21 +01:00
Aleksey Kladov
225ef6dea2 Config to switch to semantic tokens 2020-02-26 16:03:30 +01:00
Aleksey Kladov
8c0d0894b6
Merge pull request #3321 from kjeremy/semantic-client
Enable SemanticTokens on the client
2020-02-26 15:59:30 +01:00
Jeremy Kolb
74125d012e Enable SemanticTokens on the client
This will crash the extension on stable and insiders without the "--enable-proposed-api matklad.rust-analyzer" command line switch.
2020-02-26 08:42:26 -05:00
Aleksey Kladov
1f1bda2c5a Remove unnecessary dep 2020-02-26 14:21:23 +01:00
Veetaha
655c8337c0 vscode: fix vscode-vim keybindings conflict
vscode-vim extension overrides the `type` command so that it prevents
some keypresses to reach the text document editor.
It conflicts with our `onEnter` keybinding
that is used to support automatic doc comments extending and
indentation insertion.

The VSCode-native way to implement this would be
to use regular expressions, but as per matklad it is
considered not acceptable for the language server.

Thus we implement it via a `Enter` keybinding that
invokes our `onEnter` command which sends
a request to rust-analyzer process and applies
the appropriate source change recieved from it.

At the end of the day we may only apply
ad hoc workarounds for conflicting extensions.
But vscode has another bug for that. You
either cannot use parantheses in `when` condition
of a keybinding or it just malfunctions.

See an issue about that here: https://github.com/microsoft/vscode/issues/91473
To get the ultimate context, follow this zulip thread: https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Enhanced.20typing
2020-02-25 23:20:07 +02:00
bors[bot]
c4c15363fb
Merge #3295
3295: Refactoring fetchArtifactReleaseInfo() r=matklad a=Veetaha

https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-unnecessary-type-assertion.md

I fact this rule doesn't work when you put an unnecessary non-null assertion in an expression (as we had `(awat f())!`, but it is useful in other cases...

Closes #3295, i guess...

Co-authored-by: Veetaha <gerzoh1@gmail.com>
2020-02-25 10:09:14 +00:00
bors[bot]
5e6f4ca690
Merge #3299
3299: vscode: migrate to request type api r=matklad a=Veetaha

More type-safety to the god of type-safety.

Co-authored-by: Veetaha <gerzoh1@gmail.com>
2020-02-25 09:55:56 +00:00
Veetaha
6ec4a7db42 vscode: wrap non-single-line if body with curlies as per matklad 2020-02-25 01:58:43 +02:00
Veetaha
18b97d9d36 vscode: migrate rust-analyzer-api to import * as lc as per matklad and kjeremy 2020-02-25 01:43:52 +02:00
Veetaha
72e81dae71 vscode: run fmt 2020-02-25 01:00:00 +02:00
Veetaha
c9230b88b4 vscode: migrate inlay_hints to rust-analyzer-api.ts 2020-02-25 00:57:49 +02:00
Veetaha
8aea0ec511 vscode: migrate syntax_tree to rust-analyzer-api.ts 2020-02-25 00:57:14 +02:00
Veetaha
9ea63d5a86 vscode: migrate ssr to rust-analyzer-api.ts 2020-02-25 00:56:57 +02:00
Veetaha
8a8a4d08ef vscode: migrate runnables to rust-analyzer-api.ts 2020-02-25 00:56:38 +02:00
Veetaha
d6a96a90f4 vscode: migrate parent_module to rust-analyzer-api.ts 2020-02-25 00:56:19 +02:00
Veetaha
8c6581dcc3 vscode: migrate on_enter to rust-analyzer-api.ts 2020-02-25 00:55:48 +02:00
Veetaha
56d1ff6532 vscode: migrate matching_brace to rust-analyzer-api.ts 2020-02-25 00:55:13 +02:00
Veetaha
38d7945ec7 vscode: migrate join_lines to rust-analyzer-api.ts 2020-02-25 00:54:50 +02:00
Veetaha
c9a2fa1835 vscode: migrate collectGarbage to rust-analyzer-api.ts 2020-02-25 00:50:57 +02:00
Veetaha
31d9932d18 vscode: migrate expand_macro to rust-analyzer-api.ts 2020-02-25 00:50:36 +02:00
Veetaha
603bc71a57 vscode: migrate analyzer_status to rust-analyzer-api.ts 2020-02-25 00:50:14 +02:00
Veetaha
8c4409b3bb vscode: migrate highlighting to rust-analyzer-api.ts 2020-02-25 00:49:54 +02:00
Veetaha
21ab133966 vscode: migrate source_cnage.rs to rust-analyzer-api.rs 2020-02-25 00:49:19 +02:00
Veetaha
39efb301ff vscode: create rust-analyzer-api.ts 2020-02-25 00:48:44 +02:00
Veetaha
6d15f89a4b vscode: bump TypeScript version 2020-02-24 21:37:53 +02:00
Veetaha
af57251c31 vscode: remove type assertion 2020-02-24 21:23:56 +02:00
Veetaha
b4db089a6b add error handling to fetchArtifactReleaseInfo(), throw Error when no artifact found 2020-02-24 21:13:10 +02:00
Aleksey Kladov
cc1469fe9e Cleanp 2020-02-24 15:41:13 +01:00
bors[bot]
e2a8e891c1
Merge #3290
3290: Don't block onEnter if request fails r=matklad a=matklad

closes #3286



bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-02-24 11:48:15 +00:00
Aleksey Kladov
910adb9dc7 Don't block onEnter if request fails
closes #3286
2020-02-24 12:45:34 +01:00
bors[bot]
223a6676fd
Merge #3288
3288: Quick fix circular json error when sanity-check fails r=matklad a=Veetaha

Related issue: #3280

Co-authored-by: Veetaha <gerzoh1@gmail.com>
2020-02-24 11:40:06 +00:00
Aleksey Kladov
b12cbd6062 Don't break onEnter if rust-analyzer fails to start
closes #3253
2020-02-24 12:32:15 +01:00
Veetaha
ef4dfab3cc
Quick fix circular json error when sanity-check fails
Related issue: #3280
2020-02-24 11:56:52 +02:00
Veetaha
4cee7cddc8 vscode: gracefully handle cancellation errors 2020-02-23 15:49:09 +02:00
Aleksey Kladov
49844ab717 Extract client-side logging 2020-02-22 16:03:47 +01:00
Veetaha
d905abfb11 vscode: migrate to tripple equals 2020-02-22 13:46:11 +02:00
Edwin Cheng
319a09847b Use stdout directly 2020-02-21 18:33:45 +08:00
Edwin Cheng
489be40d3a Use ensureServerBinary instead 2020-02-21 18:33:45 +08:00
Edwin Cheng
e7a0d8f8d0 Add trailing newline 2020-02-21 18:33:45 +08:00
Edwin Cheng
4e48a73f9c Improve server version info 2020-02-21 18:33:45 +08:00
Aleksey Kladov
28bf731751 enforce camel case 2020-02-21 11:22:45 +01:00
eaglgenes101
358b9d685f Improved compatibility with themes 2020-02-20 12:40:12 -05:00
Aleksey Kladov
742459c8fe
Merge pull request #3204 from Veetaha/feature/vscode-remove-updates-notification-comment
vscode: remove comment about updates notification
2020-02-18 13:44:56 +01:00
Aleksey Kladov
c855e36696 Rename config value for server Path 2020-02-18 12:35:44 +01:00
Aleksey Kladov
c0fa5e2246 Rename the binary to rust-analyzer 2020-02-18 12:33:16 +01:00
Aleksey Kladov
784919aec1
Merge pull request #3209 from matklad/eslint
Eslint
2020-02-18 01:12:29 +01:00
Aleksey Kladov
f2e44cfe85 Allow floating promises
This backfires for message-showing functions
2020-02-18 01:05:52 +01:00
kjeremy
3b57d8eb20 vscode-languageclient 6.1.1 2020-02-17 18:57:19 -05:00
Aleksey Kladov
07a77ffb35 Migrate to eslint 2020-02-17 23:42:25 +01:00
Veetaha
765852a444 vscode: remove comment about updates notification 2020-02-17 22:19:00 +02:00
Veetaha
7379964048 vscode: press ; to respect semicolons 2020-02-17 22:09:44 +02:00
Aleksey Kladov
94fb9ad6b3 Fix extension name 2020-02-17 15:35:06 +01:00
Aleksey Kladov
3717b0e03f Simplify some more ctors 2020-02-17 14:23:23 +01:00
Aleksey Kladov
3c12cd49ec Simplify ctor 2020-02-17 14:22:09 +01:00
Aleksey Kladov
7dccfd9183 remove debug print 2020-02-17 14:20:18 +01:00
Aleksey Kladov
89afb1a841 Remove two stage constuction 2020-02-17 14:11:01 +01:00
Aleksey Kladov
978bea2b31 Fix link to the manual 2020-02-17 14:04:32 +01:00
Aleksey Kladov
ee4e41cbea Push IO and error handling up 2020-02-17 14:03:33 +01:00
Aleksey Kladov
d24e612106 Simplify startup 2020-02-17 13:40:47 +01:00
Aleksey Kladov
dcdbbddd16 Simplify TS reload logic
Fixes #3164
2020-02-17 13:40:47 +01:00
bors[bot]
334f53465f
Merge #3187
3187: ⬆️ npm deps r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-02-17 10:13:45 +00:00
Aleksey Kladov
48dd1d7053 ⬆️ npm deps 2020-02-17 11:13:16 +01:00
Aleksey Kladov
2225cadd5a update lockfile 2020-02-17 11:12:45 +01:00
bors[bot]
93d28fb50c
Merge #3099
3099: Init implementation of structural search replace r=matklad a=mikhail-m1

next steps:
* ignore space and other minor difference
* add support to ra_cli
* call rust parser to check pattern
* documentation

original issue #2267 

Co-authored-by: Mikhail Modin <mikhailm1@gmail.com>
2020-02-17 10:02:54 +00:00
bors[bot]
953dbe3e02
Merge #3181
3181: Add ability to pass additional arguments to rustfmt. r=matklad a=Leonqn

relates to #2848

Co-authored-by: Ilya Titkov <ilya@titkov.me>
2020-02-17 09:05:01 +00:00
Ilya Titkov
a2b0bdcc24 Add arguments to rustfmt 2020-02-17 11:44:58 +03:00
Veetaha
bd113623a0 vscode: minor refactorings 2020-02-17 02:07:11 +02:00
Veetaha
31ae646448 vscode: add comment on possible UnhandledPromise rejection error 2020-02-17 01:39:58 +02:00
bors[bot]
a90f5b0787
Merge #3173
3173: vscode: fix stupid mistake of mine r=matklad a=Veetaha

Shame on me...
Fixes #3056

Co-authored-by: Veetaha <gerzoh1@gmail.com>
2020-02-16 17:40:23 +00:00
Veetaha
6e22e33d7d vscode: fix stupid mistake 2020-02-16 19:30:13 +02:00
Veetaha
56b64cac9c vscode: added minimum bound for lruCapacity option 2020-02-16 18:00:49 +02:00
Veetaha
0565657ed1 vscode: fix all integer -> number and add nullablitiy to maxInlayHintLength 2020-02-16 17:55:15 +02:00
Veetaha
53b5f4ba98 vscode: update exclusiveMinimum validation according to JSONSchemaV4 specs 2020-02-16 16:48:17 +02:00
bors[bot]
a15c8739b9
Merge #3162
3162: Feature: vscode always downloads only the matching ra_lsp_server version r=matklad a=Veetaha

I tried to separate logically connected changes into separate commits, so enjoy!

Now TypeScript extension saves installed binary version in global state and always checks that the installed binary version equals the version of the TypeScript extension itself (to prevent version drifts).
Also, changed `fetchLatestArtifactReleaseInfo()` to `fetchArtifactReleaseInfo()` that takes an optional release tag (when not specified fetches the latest release). The version without a release tag will be useful in the future when adding auto-checking for updates.

I decided not to do `Download latest language server` command (I have stated the rationale for this in #3073) and let the extension itself decide which version of the binary it wants. This way the users will be able to get the latest `ra_lsp_server` binary after the approaching 2020-02-17 release, without having to manually delete the outdated one from `~/.config/Code/User/globalStorage/matklad.rust-analyzer`!

Closes #3073

Co-authored-by: Veetaha <gerzoh1@gmail.com>
2020-02-16 11:54:38 +00:00
Veetaha
3068aab82d vscode: fix the default value for withSysroot 2020-02-16 11:15:19 +02:00
Veetaha
467b925b53 vscode: save binary version when downloading and download only version that matches TypeScript extension version 2020-02-16 03:41:40 +02:00
Veetaha
b9188226fa vscode: extract downloadArtifact() function 2020-02-16 03:41:40 +02:00
Veetaha
0f7abeb035 vscode: add release tag option to fetchArtifactReleaseInfo() 2020-02-16 03:41:40 +02:00
Veetaha
8533fc437b vscode: add version and storage parameters to github binary source 2020-02-16 03:41:39 +02:00
Edwin Cheng
cc43f07e11 Disable rollup warning 2020-02-16 05:04:51 +08:00
Veetaha
80d5ba68da vscode: renamed langServer to server 2020-02-15 00:42:32 +02:00
Veetaha
f61134e198 vscode: renmed ArtifactMetadata -> ArtifactReleaseInfo, languageServer -> langServer 2020-02-15 00:15:06 +02:00
Mikhail Modin
f8f454ab5c Init implementation of structural search replace 2020-02-14 21:45:42 +00:00
bors[bot]
ab42174653
Merge #3131
3131: vscode: simplified config and to removed one source of truth of default values r=matklad a=Veetaha

Though not intended initially, the implementation of config design is alike [dart's one](https://github.com/Dart-Code/Dart-Code/blob/master/src/extension/config.ts) as pointed by @matklad in PM.

Co-authored-by: Veetaha <gerzoh1@gmail.com>
2020-02-14 21:08:47 +00:00
Veetaha
20fabaf1ee make onConfigChange handler private 2020-02-14 23:06:11 +02:00
Veetaha
4fb427743c vscode: moved to getters as per matklad 2020-02-14 23:04:50 +02:00
kjeremy
de3b0b43f3 Expect vscode 1.42 2020-02-14 12:02:19 -05:00
bors[bot]
7c1fb6caa5
Merge #3137
3137: Do not register all proposed features r=matklad a=kjeremy

Instead only opt-in to CallHierarchy since it has a vscode API but LSP support
is still proposed.

Discovered while working on SemanticTokens which does not have a vscode API
and is still in the proposed state. Somehow enabling it would crash the
language server.

See https://github.com/microsoft/vscode-languageserver-node/issues/572

Co-authored-by: kjeremy <kjeremy@gmail.com>
2020-02-14 16:50:06 +00:00
kjeremy
7a832cdf6b Do not register all proposed features
Instead only opt-in to CallHierarchy since it has a vscode API but LSP support
is still proposed.

Discovered while working on SemanticTokens which does not have a vscode API
and is still in the proposed state. Somehow enabling it would crash the
language server.

See https://github.com/microsoft/vscode-languageserver-node/issues/572
2020-02-14 11:48:27 -05:00
Aleksey Kladov
bd3a41cc33 Prevent auto-update of dev extension 2020-02-14 15:29:19 +01:00
Veetaha
574dc11a2f vscode: removed nested errors as per matklad 2020-02-14 00:33:12 +02:00
Veetaha
fd37151ade vscode: reordered config constructor before methods 2020-02-13 23:05:32 +02:00
Veetaha
7ad15c3962 vscode: redesigned config with simplicity and Dart extension config implementation in mind 2020-02-13 22:48:20 +02:00
Veetaha
9b47124e6e vscode: added more type safety to package.json config 2020-02-13 22:47:31 +02:00
Veetaha
da6ae3b6e0 vscode: replaced DownloadFileError with NestedError itself for simplicity 2020-02-13 22:21:19 +02:00