Commit graph

130 commits

Author SHA1 Message Date
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
Akihiro Takai 3bdb47ce66 Fix typo 2020-02-18 10:37:26 +09:00
Kirill Bulatov 50cf1e3d67
Reword the docs
Co-Authored-By: Laurențiu Nicola <lnicola@users.noreply.github.com>
2020-02-17 23:48:47 +02:00
Kirill Bulatov 5cea8a37b7 Install rust-src when it is not found 2020-02-17 23:40:34 +02:00
Aleksey Kladov 353f7ce2ec Mention rust-src 2020-02-17 10:55:08 +01:00
Veetaha 325eba58a2 vscode: updated user docs vscode updates section 2020-02-16 03:56:54 +02:00
Veetaha 4aa538f9a8
Typo
typo
2020-02-14 22:02:08 +02:00
Aleksey Kladov 81904421ac Ensure that the manual is self-improving 2020-02-14 19:15:32 +01:00
Aleksey Kladov 082dd87b32 Start manual 2020-02-14 18:31:56 +01:00
dvermd 7fb0311ac8 Move build prerequisites into build section 2020-02-10 06:55:10 +01:00
Veetaha 843d00ec9d docs: quick fix inner link in docs 2020-02-09 21:40:39 +02:00
Veetaha 3ebbeb46d4 docs: more documentation on prebuilt binaries all-editors-wise 2020-02-09 21:25:24 +02:00
Veetaha e18661f62b docs: Freshen docs for prebuilt binaries and raLspServer setting 2020-02-09 20:19:23 +02:00
bors[bot] 360890fcec
Merge #3053
3053: Feature: downloading lsp server from GitHub r=matklad a=Veetaha

This is currently very WIP, I may need to change this and that, add "download language server command", logging stuff (for future bug reports), etc., but it already works.
Also didn't test this on windows yet and mac (don't have the latter)

The quirks:
* Downloaded binary doesn't have executable permissions by default, that's why we ~~`chmod 111`~~ (**[UPD]** `chmod 755` as per @lnicola [suggestion](https://github.com/rust-analyzer/rust-analyzer/pull/3053#discussion_r376694456)) for it.
* To remove installed binary run `rm /${HOME}/.config/Code/User/globalStorage/matklad.rust-analyzer/ra_lsp_server-linux`, ~~note that `-f` flag is necessary, because of `111` permissions (I think this should be changed)~~ (**[UPD]** --force is no longer needed due to 755 permissions).

I also tried to keep things simple and not to use too many dependencies, all the ones added have 0 dependencies, (`ts-not-nil` is my personal npm package, that imitates `unwrap()` in TypeScript)

**[UPD]** I reduced throttle latency of progress indicator to 200ms for smoother UX


// TODO:
- [x] ~~Add `Rust Analyzer: Download latest language server` vscode command.~~ **[UPD]**: having reviewed the code and estimated available options I concluded that this feature requires too many code changes, I'd like to extract this into a separate PR after we merge this one.
- [x] Add some logging for future debugging
- [x] ~~Gracefully handle the case when language server is not available (e.g. no internet connection, user explicitly rejected the download, etc.)~~ **[UPD]** Decided to postpone better implementation of graceful degradation logic as per [conversation](https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Deployment.20and.20installation/near/187758550).

Demo (**[UPD]** this is a bit outdated, but still mainly reflects the feature):
![ra-github-release-download-mvp](https://user-images.githubusercontent.com/36276403/74077961-4f248a80-4a2d-11ea-962f-27c650fd6c4c.gif)

Related issue: #2988 #3007 

Co-authored-by: Veetaha <gerzoh1@gmail.com>
Co-authored-by: Veetaha <veetaha2@gmail.com>
2020-02-09 15:21:12 +00:00
Veetaha dfb81a8cd4 docs: fix spelling untill -> until
Co-Authored-By: Jonas Platte <jplatte@users.noreply.github.com>
2020-02-09 17:04:33 +02:00
Veetaha be244ab2fb docs: minor fixes in wordings and punctuation 2020-02-09 15:54:54 +02:00
Veetaha 6a367886ec vscode: updated docs on prebuilt binaries 2020-02-09 15:51:28 +02:00
bors[bot] 27964cc9e7
Merge #3052
3052: Rename add import assist r=matklad a=SomeoneToIgnore

Based on the https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/2.20assists.20with.20the.20same.20action.20name/near/187655643 and the related discussion.

Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
2020-02-09 08:51:56 +00:00
Florian Diebold 134cc70097 Docs cleanups 2020-02-08 16:15:58 +01:00
Kirill Bulatov 740a26b7d2 Rename add import assist 2020-02-07 23:53:08 +02:00
Aleksey Kladov 755077e372 Doctest autoimport 2020-02-06 18:14:44 +01:00
Gian D 0ef96f982c
Further fix docs/user/README.md
Co-Authored-By: Laurențiu Nicola <lnicola@users.noreply.github.com>
2020-02-05 11:09:08 +01:00
Gian D 13211ed701
Fix unneeded . in docs/user/README.md 2020-02-05 10:38:53 +01:00
Jan 53fd24a6d3 updating nvim_lsp usage for rust_analyzer 2020-01-29 20:11:32 +01:00
bors[bot] 87e1baf242
Merge #2910
2910: Use package script r=kjeremy a=kjeremy



Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
2020-01-27 13:50:04 +00:00
Jeremy Kolb 1b5b30f2ac
Update docs/user/README.md
Co-Authored-By: Veetaha <veetaha2@gmail.com>
2020-01-27 08:49:34 -05:00
Kirill Bulatov 316795e074 Initial auto import action implementation 2020-01-27 00:16:29 +02:00
Jeremy Kolb 141dc7b81a
Use package script 2020-01-26 12:57:54 -05:00
Aleksey Kladov 875352b2b6 Rename Emacs "extension" 2020-01-13 12:56:33 +01:00
Aleksey Kladov bd7aa5db14 Rename VS Code extension to rust-analyzer 2020-01-13 11:13:18 +01:00
Aleksey Kladov cf5bdf464c
Merge pull request #2732 from detrumi/cargo-toml-not-found-message-toggle
Flag to hide cargo.toml not found error
2020-01-09 15:16:39 +01:00
Gus Wynn 218d211f48 add note in vscode instructions for vim plugin users 2020-01-05 07:37:58 -08:00
Wilco Kusee e7bb82c3a4
Allow disabling Cargo.toml not found error 2020-01-03 15:04:54 +01:00
Aleksey Kladov ffa928c3d5 Add example of color customization 2019-12-31 14:51:23 +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
Florian Diebold c39352fa43 Fill in type params in 'add missing impl members' assist 2019-12-24 17:29:27 +01:00
Seivan Heidari b21d9337d9 Merge branch 'master' into feature/themes 2019-12-23 15:35:31 +01:00
Francisco Lopes f909d2b56c Cleanup Vim and NeoVim instructions. Fix #2579 2019-12-17 20:57:32 -03:00
Laurențiu Nicola 78e8934976 Code: check whether the LSP binary is in PATH 2019-12-08 15:04:37 +02:00
Andrew Banchich 956ce1d10a
fix file name 2019-12-04 11:07:37 -05:00
Andrew Banchich 62cadecc89
fix link 2019-12-04 11:02:03 -05:00
Andrew Banchich 00d5fb44ab
use relative link 2019-12-04 11:00:51 -05:00
Andrew Banchich a863298314
fix outdated link to ra-emacs-lsp.el 2019-12-04 10:48:03 -05:00
bors[bot] 3376c08052
Merge #2018
2018: assists: add assist for custom implementation for derived trait r=matklad a=paulolieuthier

Please, tell me if something could be more idiomatic or efficient.

Fixes #1256.

Co-authored-by: Paulo Lieuthier <paulolieuthier@gmail.com>
2019-12-02 15:52:11 +00:00
Jonathan Behrens 75be6553fe Add back corrected cargo install command 2019-12-01 13:29:49 -05:00
Jonathan Behrens c69ed9bd1f
Clarify installation instructions
In particular it is necessary to clone the repository before running the other commands. I also removed the `cargo install` side note because it didn't actually work (running the command just produces an error that --package isn't a recognized flag) and added a tldr code block with the list of commands to run.
2019-11-30 21:20:54 -05:00
Paulo Lieuthier 5b2d52c8df docs: describe new feature 'add custom impl for derived trait' 2019-11-28 17:36:40 -03:00
Seivan Heidari 15ea338ac9 Merge branch 'master' of https://github.com/rust-analyzer/rust-analyzer into feature/themes 2019-11-25 01:54:54 +01:00
bors[bot] 7b6aa7c34e
Merge #2343
2343: implement assist invert_if r=matklad a=bravomikekilo

fix [issue 2219 invert if condition](https://github.com/rust-analyzer/rust-analyzer/issues/2219)
I put the assist cursor range to `if` of the if expression, because both condition and body will be replaced. Is there any way to replace them without cover the cursor position?
@matklad 

Co-authored-by: bravomikekilo <bmk1221@126.com>
2019-11-24 08:32:07 +00:00