Commit Graph

185 Commits

Author SHA1 Message Date
Aleksey Kladov b8d7c4e1ad Fix style 2020-02-27 11:10:58 +01:00
Aleksey Kladov 356395139c Actually gate CI on eslint 2020-02-27 10:40:53 +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
Veetaha 6d15f89a4b vscode: bump TypeScript version 2020-02-24 21:37:53 +02:00
Aleksey Kladov 49844ab717 Extract client-side logging 2020-02-22 16:03:47 +01:00
Edwin Cheng 4e48a73f9c Improve server version info 2020-02-21 18:33:45 +08: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
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
Aleksey Kladov 94fb9ad6b3 Fix extension name 2020-02-17 15:35:06 +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
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
Ilya Titkov a2b0bdcc24 Add arguments to rustfmt 2020-02-17 11:44:58 +03: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
Veetaha 8533fc437b vscode: add version and storage parameters to github binary source 2020-02-16 03:41:39 +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
kjeremy de3b0b43f3 Expect vscode 1.42 2020-02-14 12:02:19 -05:00
Aleksey Kladov bd3a41cc33 Prevent auto-update of dev extension 2020-02-14 15:29:19 +01:00
Veetaha 9b47124e6e vscode: added more type safety to package.json config 2020-02-13 22:47:31 +02:00
Veetaha a63659badb vscode: replaced unwrapNotNil() with ! as per @matklad 2020-02-09 13:59:27 +02:00
Veetaha 5d88c1db38 vscode: amended config to use binary from globalStoragePath, added ui for downloading 2020-02-08 04:34:11 +02:00
Veetaha 3e0e4e90ae added fetchLatestArtifactMetadata() and downloadFile() functions 2020-02-08 04:34:11 +02:00
Veetaha 8153b60e1d vscode: eliminate floating promises and insane amount of resource handle leaks 2020-02-05 22:39:47 +02:00
Gregoire Geis 7fd661f085 vscode: Only handle enter if the suggest widget is hidden. 2020-02-03 22:26:20 +01:00
Gregoire Geis b70ad7e5f3 Remove enableEnhancedTyping and type overriding infrastructure. 2020-02-03 20:24:50 +01:00
Gregoire Geis 58c007674b Change default enhanced typing behavior from using type to using keybindings. 2020-02-03 20:18:11 +01:00
Gregoire Geis 23ef22dd48 Add regular onEnter command, allowing onEnter to be called without overriding the type command. 2020-02-03 20:18:10 +01:00
Aleksey Kladov f0323de7e8 Remove unnecessary flags 2020-02-03 18:05:54 +01:00
Aleksey Kladov 9b8e3b80ee Remove rollup-typescript
It seems like just calling typescript directly is simpler and more reliable?
2020-02-03 17:39:34 +01:00
Aleksey Kladov 0a68dfb491 Update some rollup packages 2020-02-03 16:49:25 +01:00
Aleksey Kladov ad57726f91 Use simple prng instead of a dependency
closes #2999
2020-02-03 16:37:12 +01:00
Aleksey Kladov 30f7e6590a Remove recent improvements to the build script
tslib as a dev dependency and commonjs modules are definitely *wrong*
in the ideal world, **but** in the real world that's the only
combination that works. See

https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Problems.20with.20TypeScript.20build
2020-02-03 15:25:29 +01:00
Veetaha 0ade5cb2b3 vscode: dropped npm-check-updates script 2020-02-03 00:05:49 +02:00
Veetaha e9800b0023 vscode: updated rollup typescript so it typechecks the bundle 2020-02-03 00:05:49 +02:00
bors[bot] 856e4ba126 Merge #2979
2979: vscode: now we are actually using tslib r=matklad a=Veetaha

We had an incorrect setup where `tslib` was in `devDependencies`.
FYI:
tslib is a runtime dependency, it contains functions that are used by transpiled JavaScript in order not to inline them in each file.
For example:
```ts
// foo.ts (source code)
import * as foo from "foo";
// ---------------------------
// foo.js (compiled output)
"use strict";
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const foo = __importStar(require("foo"));
```
As you see, `tsc` generated that `__importStar` helper function in compiled output. And it generates it per each file if you don't enable `"importHelpers": true`. Now with `importHelpers` enabled we get the following picture:
```ts
// foo.ts (source code)
import * as foo from "foo";
// ---------------------------
// foo.js (compiled output)
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const foo = tslib_1.__importStar(require("foo"));
```
It saves some bundle size, but I am not entirely sure wheter we want that. Discussions are welcome!

Co-authored-by: Veetaha <gerzoh1@gmail.com>
2020-02-02 14:05:23 +00:00
Veetaha 3d6d0819cc fix repo link in package.json 2020-02-02 12:16:41 +02:00