aboutsummaryrefslogtreecommitdiff
path: root/docs
Commit message (Collapse)AuthorAgeFilesLines
...
* 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-233-27/+59
| |\
| * \ Merge branch 'master' of https://github.com/rust-analyzer/rust-analyzer into ↵Seivan Heidari2019-11-283-19/+19
| |\ \ | | | | | | | | | | | | feature/themes
| * \ \ 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-181-1/+1
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | | | | | Update READMEAlexander Ekdahl2019-11-301-3/+2
|/ / / / / / / /
* | | | | | | / rename ra_ide_api -> ra_ideAleksey Kladov2019-11-273-19/+19
| |_|_|_|_|_|/ |/| | | | | |
* | | | | | | 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
| |_|_|/ |/| | |
* | | | Don't create a separate bin for format hookAleksey Kladov2019-11-181-1/+1
| |_|/ |/| |
* | | 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.
* / Implement postfix completions feature flagGreg2019-11-121-0/+2
|/
* move all assists to use generated docsAleksey Kladov2019-10-272-17/+17
|
* use new api for flip_trait_bound assistAleksey Kladov2019-10-271-0/+12
|
* document almost all assistsAleksey Kladov2019-10-272-174/+119
|
* document some more assistsAleksey Kladov2019-10-272-84/+93
|
* use unicode bar for drawing the cursorAleksey Kladov2019-10-261-13/+16
|
* support range selection in assist docsAleksey Kladov2019-10-261-0/+17
|
* check style for assist docsAleksey Kladov2019-10-261-4/+53
|
* use correct spacing for enum patternAleksey Kladov2019-10-261-1/+1
|
* document a couple of assistsAleksey Kladov2019-10-262-51/+37
|
* generate more assists docsAleksey Kladov2019-10-252-91/+137
|
* sublime: hint where feature flags would goJacob2019-10-251-1/+5
|
* auto-generate assists docs and testsAleksey Kladov2019-10-252-1/+27
|
* document feature flagsAleksey Kladov2019-10-251-2/+11
|
* Update rustdoc link pt.2memoryruins2019-10-241-1/+1
|