aboutsummaryrefslogtreecommitdiff
path: root/editors/code/src/config.ts
Commit message (Collapse)AuthorAgeFilesLines
...
* Privatize highlightingAleksey Kladov2019-12-301-3/+0
|
* Merge #2061bors[bot]2019-12-291-5/+9
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-231-24/+89
| |\
| * | Vscode wasn't running the linter automatically so ran `npm run fix` - wonder ↵Seivan Heidari2019-11-091-3/+2
| | | | | | | | | | | | if it's related to `tslint` being deprecated.
| * | * Adding scope mapping configuration manifest in `package.json`Seivan Heidari2019-11-041-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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" } ```
| * | Merge branch 'master' into feature/themesSeivan Heidari2019-10-311-7/+0
| |\ \
| * | | Introducing a Scopes Mapper to map from RA scopes to TextMate scopes with ↵Seivan Heidari2019-10-271-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fallbacks. Current scopes defined: ``` ['keyword.unsafe', ['storage.modifier', 'keyword.other', 'keyword.control']], ['function', ['entity.name.function']], ['parameter', ['variable.parameter']], ['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.mut', ['variable']], ['field', ['variable.object.property']], ['module', ['entity.name.section']] ``` Need to complement with further fallbacks as some themes fail.
| * | | Proof of concept theming and 'tokenColorCustomizations' support.Seivan Heidari2019-10-241-1/+5
| | | |
* | | | Keep VSCode config mostly backwards compatibleEmil Lauridsen2019-12-251-11/+20
| | | |
* | | | Configuration plumbing for cargo watcherEmil Lauridsen2019-12-251-44/+15
| |_|/ |/| |
* | | Merge #2568bors[bot]2019-12-171-0/+9
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2568: Add option to disable all-targets. r=matklad a=pftbest Can be useful in embedded. Co-authored-by: Vadzim Dambrouski <[email protected]>
| * | | Add option to disable all-targets.Vadzim Dambrouski2019-12-151-0/+9
| | | | | | | | | | | | | | | | Can be useful in embedded.
* | | | Default to client watching on VS CodeAleksey Kladov2019-12-171-2/+2
|/ / /
* | | Enable `allFeatures` by default and fix lintsoxalica2019-12-131-9/+16
| | |
* | | Support setting cargo featuresoxalica2019-12-131-13/+57
| | |
* | | Code: enable prettier trailing commasLaurențiu Nicola2019-12-091-11/+11
| | |
* | | Allow disabling sysrootAleksey Kladov2019-12-091-0/+5
| |/ |/| | | | | Might be helpful for debugging
* | document feature flagsAleksey Kladov2019-10-251-7/+0
|/
* Merge #1980bors[bot]2019-10-231-0/+6
|\ | | | | | | | | | | | | | | 1980: Shorten inline type hints r=matklad a=detrumi Implements #1946 Co-authored-by: Wilco Kusee <[email protected]>
| * Make inlay hint length configurableWilco Kusee2019-10-181-0/+6
| |
* | Adds config option for cargo-watch `--ignore` flagRoberto Vidal2019-10-171-1/+10
|/
* add option to disable notifyAleksey Kladov2019-09-061-0/+4
|
* implement feature flagsAleksey Kladov2019-08-221-0/+4
|
* allow to exclude certain files and directoriesAleksey Kladov2019-08-061-0/+4
|
* Show type decoratorsKirill Bulatov2019-07-251-0/+5
|
* Add noUnusedLocals to VsCode tsconfigRyan Cumming2019-06-291-1/+0
| | | | | | `tslint` doesn't catch this because TypeScript has had this check builtin since 2.9. However, it's disabled by default so right now nothing is checking for unused variables.
* Fix code after "apply suggestions"Aleksei Sidorov2019-06-241-8/+8
|
* Apply suggestions from code reviewAleksey Sidorov2019-06-241-2/+2
| | | Co-Authored-By: Aleksey Kladov <[email protected]>
* Fix tslintsAleksei Sidorov2019-06-241-2/+2
|
* Introduce cargo-watch.check-commandAleksei Sidorov2019-06-241-1/+12
|
* make LRU cache configurableAleksey Kladov2019-06-121-0/+4
|
* Make rainbows optionalPascal Hertleif2019-05-271-0/+7
|
* Add cargo-watch.check-argumentsEdwin Cheng2019-04-021-14/+25
|
* Add config for cargo-watch traceEdwin Cheng2019-04-021-6/+19
|
* Change enableCargoWatchOnStartup to have three statesVille Penttinen2019-03-211-3/+5
| | | | | | | This fixes #1005. Defaults to `ask` which prompts users each time whether to start `cargo watch` or not. `enabled` always starts `cargo watch` and `disabled` does not.
* Guard auto cargo watch behind a config optionIgor Matuszewski2019-03-181-0/+8
|
* Add showWorkspaceLoadedNotification to vscode clientVille Penttinen2019-03-061-0/+7
| | | | | | | | | This allows users to control whether or not they want to see the "workspace loaded" notification. This is done on the server side using InitializationOptions which are provided by the client. By default show_workspace_loaded is true, meaning the notification is sent.
* Run prettierVille Penttinen2019-02-071-4/+11
|
* Add new configuration "enableEnhancedTyping" to control registering of ↵Ville Penttinen2019-02-071-0/+25
| | | | | | | | | | | | | | | | | | "type" command This further fixes problems when having a VIM extension (at least vscodevim) enabled, by not calling `overrideCommand('type', commands.onEnter.handle)` when enableEnhancedTyping is set to `false`. The problem is dependent on the order in which extensions are activated, if rust-analyzer is activated before `vscodevim`, rust-analyzer will register the `type` command, and when `vscodevim` finally attempts to activate, it will fail to register the command. This causes `vscodevim` to stop working properly. This setting allows users to disable the registerCommand `type` in rust-analyzer, allowing `vscodevim` to work. The setting defaults to `true`. Currently changing the setting requires reloading of the window.
* align command namingAleksey Kladov2019-01-281-1/+1
|
* Config for raLspServerPath will be overwritten if __RA_LSP_SERVER_DEBUG is setAndrew Ross2019-01-191-2/+5
| | | | | | | Changed presentation from clear to reveal silent Removed the vscode gitignore entry Added debugging documentation Added tasks and launch configs
* Allow user to set path to ra_lsp_server in vscode settingsgentoo902019-01-051-0/+5
|
* Run prettier on all filesDaniel McNab2018-10-081-13/+15
|
* Add tslint and prettier to ciDaniel McNab2018-10-081-13/+13
|
* Apply tslint suggestions, round oneAdolfo Ochagavía2018-10-071-0/+23