aboutsummaryrefslogtreecommitdiff
path: root/docs/user
Commit message (Collapse)AuthorAgeFilesLines
* Merge #3053bors[bot]2020-02-091-1/+33
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]> Co-authored-by: Veetaha <[email protected]>
| * docs: fix spelling untill -> untilVeetaha2020-02-091-1/+1
| | | | | | Co-Authored-By: Jonas Platte <[email protected]>
| * docs: minor fixes in wordings and punctuationVeetaha2020-02-091-2/+2
| |
| * vscode: updated docs on prebuilt binariesVeetaha2020-02-091-0/+32
| |
* | Merge #3052bors[bot]2020-02-091-14/+14
|\ \ | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]>
| * | Rename add import assistKirill Bulatov2020-02-071-14/+14
| |/
* / Docs cleanupsFlorian Diebold2020-02-081-12/+6
|/
* Doctest autoimportAleksey Kladov2020-02-061-1/+1
|
* Further fix `docs/user/README.md`Gian D2020-02-051-1/+1
| | | Co-Authored-By: Laurențiu Nicola <[email protected]>
* Fix unneeded `.` in `docs/user/README.md`Gian D2020-02-051-1/+1
|
* updating nvim_lsp usage for rust_analyzerJan2020-01-291-2/+1
|
* Merge #2910bors[bot]2020-01-271-1/+1
|\ | | | | | | | | | | | | | | 2910: Use package script r=kjeremy a=kjeremy Co-authored-by: Jeremy Kolb <[email protected]>
| * Update docs/user/README.mdJeremy Kolb2020-01-271-1/+1
| | | | | | Co-Authored-By: Veetaha <[email protected]>
| * Use package scriptJeremy Kolb2020-01-261-1/+1
| |
* | Initial auto import action implementationKirill Bulatov2020-01-261-0/+18
|/
* Rename Emacs "extension"Aleksey Kladov2020-01-131-1/+1
|
* Rename VS Code extension to rust-analyzerAleksey Kladov2020-01-131-3/+3
|
* Merge pull request #2732 from detrumi/cargo-toml-not-found-message-toggleAleksey Kladov2020-01-091-0/+2
|\ | | | | Flag to hide cargo.toml not found error
| * Allow disabling Cargo.toml not found errorWilco Kusee2020-01-031-0/+2
| |
* | add note in vscode instructions for vim plugin usersGus Wynn2020-01-051-0/+4
|/
* Add example of color customizationAleksey Kladov2019-12-311-10/+3
|
* Merge #2061bors[bot]2019-12-291-2/+11
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]>
| * Merge branch 'master' into feature/themesSeivan Heidari2019-12-232-24/+57
| |\
| * \ Merge branch 'master' of https://github.com/rust-analyzer/rust-analyzer into ↵Seivan Heidari2019-11-252-0/+24
| |\ \ | | | | | | | | | | | | feature/themes
| * \ \ Merge branch 'master' of https://github.com/rust-analyzer/rust-analyzer into ↵Seivan Heidari2019-11-211-1/+1
| |\ \ \ | | | | | | | | | | | | | | | feature/themes
| * \ \ \ Merge branch 'master' of https://github.com/rust-analyzer/rust-analyzer into ↵Seivan Heidari2019-11-201-0/+4
| |\ \ \ \ | | | | | | | | | | | | | | | | | | feature/themes
| * \ \ \ \ Merge branch 'master' of https://github.com/rust-analyzer/rust-analyzer into ↵Seivan Heidari2019-11-151-0/+21
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | feature/themes
| * \ \ \ \ \ Merge branch 'master' of https://github.com/rust-analyzer/rust-analyzer into ↵Seivan Heidari2019-11-121-0/+2
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | feature/themes
| * | | | | | | Clearer docs usage under `rust-analyzer.scopeMappings`.Seivan Heidari2019-11-041-1/+1
| | | | | | | |
| * | | | | | | * Adding scope mapping configuration manifest in `package.json`Seivan Heidari2019-11-041-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Loading configurable scope mappings from settings. * Updating Readme with `rust-analyzer.scopeMappings`. `rust-analyzer.scopeMappings` -- a scheme backed JSON object to tweak Rust Analyzer scopes to TextMate scopes. ```jsonc { //Will autocomplete keys to available RA scopes. "keyword.unsafe": ["keyword", "keyword.control"], //Values are string | TextMateScope | [string | TextMateScope] "comments": "comment.block" } ```
* | | | | | | | Fill in type params in 'add missing impl members' assistFlorian Diebold2019-12-241-11/+11
| |_|_|_|_|_|/ |/| | | | | |
* | | | | | | Cleanup Vim and NeoVim instructions. Fix #2579Francisco Lopes2019-12-171-17/+12
| | | | | | |
* | | | | | | Code: check whether the LSP binary is in PATHLaurențiu Nicola2019-12-081-1/+16
| | | | | | |
* | | | | | | fix file nameAndrew Banchich2019-12-041-1/+1
| | | | | | |
* | | | | | | fix linkAndrew Banchich2019-12-041-1/+1
| | | | | | |
* | | | | | | use relative linkAndrew Banchich2019-12-041-1/+1
| | | | | | |
* | | | | | | fix outdated link to ra-emacs-lsp.elAndrew Banchich2019-12-041-1/+1
| | | | | | |
* | | | | | | Merge #2018bors[bot]2019-12-021-0/+18
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]>
| * | | | | | | docs: describe new feature 'add custom impl for derived trait'Paulo Lieuthier2019-11-281-0/+18
| | |_|_|_|_|/ | |/| | | | |
* | | | | | | Add back corrected `cargo install` commandJonathan Behrens2019-12-011-8/+8
| | | | | | |
* | | | | | | Clarify installation instructionsJonathan Behrens2019-12-011-10/+15
|/ / / / / / | | | | | | | | | | | | 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.
* | | | | | Merge #2343bors[bot]2019-11-241-0/+19
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]>
| * | | | | | do refact and fix some issuebravomikekilo2019-11-241-2/+2
| | | | | | |
| * | | | | | initial invert_ifbravomikekilo2019-11-211-0/+19
| | |_|_|_|/ | |/| | | |
* | | | | | Fix url to point to rust_analyzer specificallyAshkan Kiani2019-11-231-1/+1
| | | | | |
* | | | | | Add note about neovim's built in language serverAshkan Kiani2019-11-231-0/+5
|/ / / / /
* | | | / Add rust-analyzer-expand-macro function for EmacsFlorian Diebold2019-11-201-1/+1
| |_|_|/ |/| | |
* | | | Add document in features.mdEdwin Cheng2019-11-191-0/+4
| |_|/ |/| |
* | | Merge #2165bors[bot]2019-11-151-0/+21
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | 2165: ra_assists: Add add_new assist r=matklad a=rep-nop Adds a new assist to autogenerate a new fn based on the selected struct, excluding tuple structs and unions. The fn will inherit the same visibility as the struct and the assist will attempt to reuse any existing impl blocks that exist at the same level of struct. Not marking this as closing #1644 since there's a part 2 of adding autocompletion for when someone starts typing `[pub ]fn new(...` Co-authored-by: Wesley Norris <[email protected]>
| * | Add add_new assistWesley Norris2019-11-091-0/+21
| |/ | | | | | | | | | | | | Adds a new assist to autogenerate a new fn based on the selected struct, excluding tuple structs and unions. The fn will inherit the same visibility as the struct and the assist will attempt to reuse any existing impl blocks that exist at the same level of struct.