Commit graph

408 commits

Author SHA1 Message Date
Veetaha
8184752470 vscode refactoring: use more laconic export snytax, split huge string to several lines 2020-02-02 21:37:22 +02:00
Veetaha
420462421d vscode extension cleanup: migrate to prefer-const tslint rule 2020-02-02 21:12:59 +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
Veetaha
f08297983f vscode: moved tslib to runtime dependencies and added \"importHelpers\": true 2020-02-01 23:11:39 +02:00
bors[bot]
3f499489f7
Merge #2964
2964: Improve responsiveness of the cargo check status label r=matklad a=lnicola

This is still not ideal because the label displays the crate that was just checked, not the one that's currently being checked. But it should give the impression of being faster.

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2020-02-01 15:41:55 +00:00
bjorn3
c84897bfb7 Tsfmt 2020-02-01 13:41:11 +01:00
bjorn3
5c39311f96 Fix seedrandom in packaged extension
Fixes #2971
2020-02-01 13:39:04 +01:00
bjorn3
f4431d2acc [VSCode] Fix syntax highlighting
Fixes #2969
2020-02-01 13:12:39 +01:00
Laurențiu Nicola
d4d72e8b9b Improve responsiveness of the cargo check status label 2020-01-31 20:55:10 +02:00
Aleksey Kladov
94784cc546 Provide better diagnostics if the server is not in path 2020-01-28 17:00:00 +01:00
Aleksey Kladov
c378133185 ⬆️ node 2020-01-28 15:11:44 +01:00
kjeremy
1266810e55 vscode-languageclient 6.1.0
Adds support for proposed semantic highlighting extension
2020-01-27 10:25:22 -05:00
Jeremy Kolb
a0494c7237 vscode-languageclient 6.0.1 2020-01-20 19:48:32 -05:00
Kirill Bulatov
78a21253b4 Apply the api design suggestions 2020-01-15 20:17:17 +02:00
Kirill Bulatov
73dc8b6f06 Another attempt to add multiple edits 2020-01-15 20:16:27 +02:00
Aleksey Kladov
f10b209234 Extension icon 2020-01-15 16:07:39 +01:00
Emil Lauridsen
70cba0fe0f Use types from vscode-langaugeclient 2020-01-15 12:04:35 +01:00
bors[bot]
876f92d547
Merge #2843
2843: Add inlay parameter name hints for call expr r=matklad a=imtsuki

This patch adds Intellij-like parameter name hints for literal values in function calls.

<img width="624" alt="Screenshot" src="https://user-images.githubusercontent.com/8423594/72366533-68d7f800-3735-11ea-9279-cf193ca8ca2f.png">

Signed-off-by: imtsuki <me@qjx.app>

Co-authored-by: imtsuki <me@qjx.app>
2020-01-15 10:24:51 +00:00
memoryruins
896a162f55 Improve readability 2020-01-14 22:52:49 -05:00
memoryruins
edb820c329 Display vscode message after changing cargo-watch options 2020-01-14 20:52:48 -05:00
kjeremy
385c548032 Language Server Protocol 3.15 is now stable
Update the client
2020-01-14 14:53:38 -05:00
imtsuki
c390e92fdd Add inlay parameter name hints for function calls
Signed-off-by: imtsuki <me@qjx.app>
2020-01-15 01:18:52 +08:00
kjeremy
a39fe4f1dc vscode-languageclient 6.0.0-next.10 2020-01-13 16:49:44 -05:00
Aleksey Kladov
bd7aa5db14 Rename VS Code extension to rust-analyzer 2020-01-13 11:13:18 +01:00
Marco Groppo
08fa0151ed Fix lruCapacity config setting type 2020-01-11 13:30:02 +01:00
bors[bot]
1953ac17fd
Merge #2714
2714: Sanity check for missing server binary r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-01-06 11:39:41 +00:00
Aleksey Kladov
8327049fae Allow disabling inlay hints 2020-01-01 17:04:37 +01:00
Aleksey Kladov
ef24721640 Fixes to progress display 2019-12-31 21:13:30 +01:00
Aleksey Kladov
695b8ba0f0 Sanity check for missing server binary 2019-12-31 20:54:31 +01:00
Aleksey Kladov
ff0ceb30a9 Add semicolons 2019-12-31 18:55:34 +01:00
Aleksey Kladov
cb41ffbbbd Fix NPEs 2019-12-31 18:50:32 +01:00
Aleksey Kladov
6368b40dd9 Work around synchrnonisation issue 2019-12-31 18:38:22 +01:00
Aleksey Kladov
087af54069 Refactor server lifecycle 2019-12-31 18:32:17 +01:00
Aleksey Kladov
0849f7001c Refactor config 2019-12-31 17:34:52 +01:00
Aleksey Kladov
76f283108b Drop needless pubs 2019-12-31 17:28:27 +01:00
Aleksey Kladov
433000be34 Move config to Ctx 2019-12-31 17:28:01 +01:00
Aleksey Kladov
e4b588868f Refactor status activation 2019-12-31 17:22:43 +01:00
Aleksey Kladov
0eb254854d Fix color name 2019-12-31 15:42:05 +01:00
Aleksey Kladov
8662a7dfe5 Drop obsolete color configurations 2019-12-31 14:37:23 +01:00
Aleksey Kladov
26bd7a896b Drop support for legacy colorization 2019-12-31 14:11:25 +01:00
Aleksey Kladov
6c1d92d6c5 Rename file 2019-12-31 14:06:40 +01:00
Aleksey Kladov
519bd0deb5 Fix #2700 2019-12-31 11:44:52 +01:00
Aleksey Kladov
f984ef2652 Switch impure functional style to pure imperative 2019-12-31 03:33:00 +01:00
Aleksey Kladov
cfb0865929 Reduce scope 2019-12-31 02:30:43 +01:00
Aleksey Kladov
96de8076ff Use optional value shortcut 2019-12-31 02:27:26 +01:00
Aleksey Kladov
6561634c68 Remove trivial helpers 2019-12-31 02:21:57 +01:00
Aleksey Kladov
8346bdc04d Rearrange code 2019-12-31 02:17:50 +01:00
Aleksey Kladov
68b7d84974 Restore internal applySourceChange command 2019-12-30 23:46:13 +01:00
Aleksey Kladov
c65e90f7b8 Use Ctx in highlighter 2019-12-30 23:46:13 +01:00
Aleksey Kladov
04f0f5077a Reformat with tsfmt 2019-12-30 23:30:35 +01:00
Aleksey Kladov
323ad13c8a Add tsfmt 2019-12-30 23:28:13 +01:00
Aleksey Kladov
9fae4f4b99 Remove prettier 2019-12-30 23:27:13 +01:00
Aleksey Kladov
233f1dd2a8 Privatize highlighting 2019-12-30 23:17:56 +01:00
Aleksey Kladov
cdd7118cbf Don't request inline hints repeatedly 2019-12-30 22:53:21 +01:00
Aleksey Kladov
23bac12062 Retry inlay hints on content modified error 2019-12-30 22:20:04 +01:00
Aleksey Kladov
08c5d157f9 Thoughtlessly copy-paste a fix to a problem I don't understand 2019-12-30 21:39:34 +01:00
Aleksey Kladov
ac8a142ddd Refactor inlay hints 2019-12-30 21:32:04 +01:00
Aleksey Kladov
efbbc903e6 Add config to Ctx 2019-12-30 21:32:04 +01:00
Aleksey Kladov
7646dc046e Encapsulate highlighting activation 2019-12-30 21:32:04 +01:00
Aleksey Kladov
9ead314005 Encapsulate inlay hints activation 2019-12-30 20:24:30 +01:00
Aleksey Kladov
b8368f09b4 Dead code 2019-12-30 20:16:57 +01:00
Aleksey Kladov
6cc55e4c5c status is not a command 2019-12-30 20:16:07 +01:00
Aleksey Kladov
7b199f6a4b Hints are not commands 2019-12-30 20:10:40 +01:00
Aleksey Kladov
3d008a78d0 Move all commands to ctx 2019-12-30 20:07:04 +01:00
Aleksey Kladov
da80b6c1e1 Minor refactor 2019-12-30 20:00:46 +01:00
Aleksey Kladov
6b118c9b8d Refactor runables 2019-12-30 19:58:44 +01:00
Aleksey Kladov
94be27fc44 Move expand macro to the new context 2019-12-30 19:31:07 +01:00
Aleksey Kladov
68f47a5b10 Cleanup 2019-12-30 19:12:49 +01:00
Aleksey Kladov
260df66b77 Cleanup imports 2019-12-30 19:07:59 +01:00
Aleksey Kladov
ca5c59507f Refactor show syntax tree action 2019-12-30 19:07:59 +01:00
Aleksey Kladov
ac3d0e8340 Run prettier on all files 2019-12-30 19:07:59 +01:00
Aleksey Kladov
9bfeac708d Move parentModule to the new Ctx 2019-12-30 19:07:59 +01:00
Aleksey Kladov
5aebf1081d Refactor applySourceChange 2019-12-30 19:07:59 +01:00
Aleksey Kladov
83d2527880 Move joinLines to the new Ctx 2019-12-30 19:07:59 +01:00
Emil Lauridsen
2d3ebc3406 Fix server config mispell in vscode extension 2019-12-30 18:22:06 +01:00
Aleksey Kladov
5dd9edaeaf Move matching brace to new Ctx 2019-12-30 15:23:55 +01:00
Aleksey Kladov
57df9bed70 Run prettier 2019-12-30 15:11:30 +01:00
Aleksey Kladov
a0c0350960 Add prettier 2019-12-30 15:10:59 +01:00
Aleksey Kladov
29e86c0c72 More second command to Ctx 2019-12-30 14:53:43 +01:00
Aleksey Kladov
e53ccb6e99 Start new ctx module 2019-12-30 14:42:59 +01:00
Aleksey Kladov
2008f9e0b9 Simplify 2019-12-30 12:29:33 +01:00
Aleksey Kladov
dc559dbe1c Rename extension.ts -> main.ts 2019-12-30 12:29:33 +01:00
Aleksey Kladov
1f8719ee87 Minimize typescript CI 2019-12-30 11:33:01 +01:00
Aleksey Kladov
e0fa096bbb Add rollup 2019-12-30 11:20:45 +01:00
Aleksey Kladov
5846221a39 Minimize TypeScript build 2019-12-30 02:22:52 +01:00
Aleksey Kladov
7192ee842d Trim down launch configurations 2019-12-30 00:16:11 +01:00
bors[bot]
232785251b
Merge #2061
2061: Theme loading and "editor.tokenColorCustomizations" support. r=matklad a=seivan

Fixes: [Issue#1294](https://github.com/rust-analyzer/rust-analyzer/issues/1294#issuecomment-497450325)

TODO: 
- [x] Load themes
- [x] Load existing `ralsp`-prefixed overrides from `"workbench.colorCustomizations"`.
- [x] Load overrides from `"editor.tokenColorCustomizations.textMateRules"`.
- [x] Use RA tags to load `vscode.DecorationRenderOptions` (colors) from theme & overrides.
- [x] Map RA tags to common TextMate scopes before loading colors.
- [x] Add default scope mappings in extension.
- [x] Cache mappings between settings updates. 
- [x] Add scope mapping configuration manifest in `package.json`
- [x] Load configurable scope mappings from settings.
- [x] Load JSON Scheme for text mate scope rules in settings.
- [x] Update [Readme](https://github.com/seivan/rust-analyzer/blob/feature/themes/docs/user/README.md#settings).

Borrowed the theme loading (`scopes.ts`) from `Tree Sitter` with some modifications to reading `"editor.tokenColorCustomizations"` for merging with loaded themes and had to remove the async portions to be able to load it from settings updates. 

~Just a PoC and an idea I toyed around with a lot of room for improvement.~
For starters, certain keywords aren't part of the standard TextMate grammar, so it still reads colors from the `ralsp` prefixed values in `"workbench.colorCustomizations"`. 

But I think there's more value making the extension work with existing themes by maping some of the decoration tags to existing key or keys. 

<img width="453" alt="Screenshot 2019-11-09 at 17 43 18" src="https://user-images.githubusercontent.com/55424/68531968-71b4e380-0318-11ea-924e-cdbb8d5eae06.png">
<img width="780" alt="Screenshot 2019-11-09 at 17 41 45" src="https://user-images.githubusercontent.com/55424/68531950-4b8f4380-0318-11ea-8f85-24a84efaf23b.png">
<img width="468" alt="Screenshot 2019-11-09 at 17 40 29" src="https://user-images.githubusercontent.com/55424/68531952-51852480-0318-11ea-800a-6ae9215f5368.png">


These will merge with the default ones coming with the extension, so you don't have to implement all of them and works well with overrides defined in settings. 

```jsonc
    "editor.tokenColorCustomizations": {
        "textMateRules": [
            {
                "scope": "keyword",
                "settings": {
                    "fontStyle": "bold",
                }
            },
        ]
    },
```


Edit: The idea is to work with 90% of the themes out there by working within existing scopes available that are generally styled. It's not to say I want to erase the custom Rust scopes - those should still remain and eventually worked into a custom grammar bundle for Rust specific themes that target those, I just want to make it work with generic themes offered on the market place for now. 

A custom grammar bundle and themes for Rust specific scopes is out of... scope for this PR. 
We'll make another round to tackle those issues. 


Current fallbacks implemented

```typescript
    [
        'comment',
        [
            'comment',
            'comment.block',
            'comment.line',
            'comment.block.documentation'
        ]
    ],
    ['string', ['string']],
    ['keyword', ['keyword']],
    ['keyword.control', ['keyword.control', 'keyword', 'keyword.other']],
    [
        'keyword.unsafe',
        ['storage.modifier', 'keyword.other', 'keyword.control', 'keyword']
    ],
    ['function', ['entity.name.function']],
    ['parameter', ['variable.parameter']],
    ['constant', ['constant', 'variable']],
    ['type', ['entity.name.type']],
    ['builtin', ['variable.language', 'support.type', 'support.type']],
    ['text', ['string', 'string.quoted', 'string.regexp']],
    ['attribute', ['keyword']],
    ['literal', ['string', 'string.quoted', 'string.regexp']],
    ['macro', ['support.other']],
    ['variable', ['variable']],
    ['variable.mut', ['variable', 'storage.modifier']],
    [
        'field',
        [
            'variable.object.property',
            'meta.field.declaration',
            'meta.definition.property',
            'variable.other'
        ]
    ],
    ['module', ['entity.name.section', 'entity.other']]
```


Co-authored-by: Seivan Heidari <seivan.heidari@icloud.com>
2019-12-29 16:49:40 +00:00
Emil Lauridsen
0cdbd08149 Keep VSCode config mostly backwards compatible 2019-12-25 20:26:06 +01:00
Emil Lauridsen
b9c10ed97f Re-format VSCode extension changes 2019-12-25 19:10:30 +01:00
Emil Lauridsen
178c23f505 Re-implement status display using LSP 3.15 progress event 2019-12-25 19:08:44 +01:00
Emil Lauridsen
500fe46e6c Remove cargo watch supporting code and tests from vscode extension 2019-12-25 17:37:40 +01:00
Emil Lauridsen
6af4bf7a8d Configuration plumbing for cargo watcher 2019-12-25 17:37:40 +01:00
Emil Lauridsen
41a1ec723c Remove cargo-watch from vscode extension.
Still keeps tests around for reference when porting them to rust
2019-12-25 17:37:40 +01:00
Seivan Heidari
25537d294c Fix https://github.com/rust-analyzer/rust-analyzer/pull/2061#discussion_r348716036
Fix 68a5ff050f (r361019340)
2019-12-24 00:04:36 +01:00
Seivan Heidari
b21d9337d9 Merge branch 'master' into feature/themes 2019-12-23 15:35:31 +01:00
kjeremy
6049f60a05 Protect against null as revealed by npm test 2019-12-20 13:52:34 -05:00
kjeremy
be78e3c224 Update to latest packages 2019-12-20 13:52:11 -05:00
Edwin Cheng
bb9c60d908 Use substr instead of endswith 2019-12-18 10:50:54 +08:00
Edwin Cheng
63c59308e6 Add tests 2019-12-18 10:47:45 +08:00