|
| 1 | += Changelog #19 |
| 2 | +:sectanchors: |
| 3 | +:page-layout: post |
| 4 | + |
| 5 | +Commit: commit:ec3fb1cdb4f1808a11fb6057550ed721c2aa36a9[] + |
| 6 | +Release: release:2020-04-06[] |
| 7 | + |
| 8 | +== New Features |
| 9 | + |
| 10 | +* **BREAKING** pr:3824[] changed the name of many options. The current set is specified https://github.com/rust-analyzer/rust-analyzer/blob/ec3fb1cdb4f1808a11fb6057550ed721c2aa36a9/editors/code/package.json#L176-L390[here]. If you are using a non-VS Code client, note that rust-analyzer now asks for |
| 11 | +`rust-analyzer` secion of configuration, and expects this config to be present in `initializationOptions`. |
| 12 | + |
| 13 | +* pr:3804[], pr:3825[] it is now possible to use arbitrary command for on the fly error checking: |
| 14 | ++ |
| 15 | +[source,json] |
| 16 | +---- |
| 17 | +{ |
| 18 | + "rust-analyzer.checkOnSave.overrideCommand": [ |
| 19 | + "./x.py", "check", "--json-output" |
| 20 | + ] |
| 21 | +} |
| 22 | +---- |
| 23 | +* pr:3807[], pr:3825[] similarly, it is now possible to completely override `rustfmt` command. |
| 24 | + |
| 25 | +* pr:3820[] remove support for old syntax highlighting. To use the new semantic tokens highlighting: |
| 26 | +. install the recent vscode insiders build |
| 27 | +. add |
| 28 | ++ |
| 29 | +[source,json] |
| 30 | +---- |
| 31 | +{ |
| 32 | + "rust-analyzer.highlighting.semanticTokens": true, |
| 33 | + "editor.semanticHighlighting.enabled": false, |
| 34 | +} |
| 35 | +---- |
| 36 | ++ |
| 37 | +to config |
| 38 | +. run vscode as `code-insiders matklad.rust-analyzer` |
| 39 | +. make sure to use a color theme with support for syntax highlighitng. |
| 40 | +. Rust specific tokens and modifiers are listed https://github.com/rust-analyzer/rust-analyzer/blob/ec3fb1cdb4f1808a11fb6057550ed721c2aa36a9/editors/code/package.json#L489-L531[here]. For example, to underline all `mut` and `&mut` variables, add this to `settings.json`: |
| 41 | ++ |
| 42 | +[source,json] |
| 43 | +---- |
| 44 | +"editor.tokenColorCustomizationsExperimental": { |
| 45 | + "*.mutable": { |
| 46 | + "fontStyle": "underline" |
| 47 | + } |
| 48 | +} |
| 49 | +---- |
| 50 | + |
| 51 | +* pr:3814[] add **Implement From for enum variant** assist |
| 52 | ++ |
| 53 | +image::https://user-images.githubusercontent.com/1711539/78559964-8f2da100-7815-11ea-99a4-00b431df7022.gif[] |
| 54 | + |
| 55 | +* pr:3746[] add **Create function** assist. |
| 56 | ++ |
| 57 | +image::https://user-images.githubusercontent.com/1711539/78560241-111dca00-7816-11ea-89a4-5489ddf6d9dc.gif[] |
| 58 | + |
| 59 | +* pr:3840[] automatically add call parenthesis for tuple-like enum variants |
| 60 | ++ |
| 61 | +image::https://user-images.githubusercontent.com/1711539/78560584-9a350100-7816-11ea-93ad-66bf625fcb93.gif[] |
| 62 | + |
| 63 | +* pr:3666[] handle some configuration changes without server restart. |
| 64 | +* pr:3777[] populate default task list in VS Code with cargo commands. |
| 65 | +* pr:3765[] SSR no longer takes field order into account. |
| 66 | +* pr:3829[] SSR treats method call and UFCS equivalently. |
| 67 | +* pr:3779[] code completion for recrod literals now suggest only fields which are not already present. |
| 68 | + |
| 69 | +== Fixes |
| 70 | + |
| 71 | +* pr:3785[] attach doc comments to declaration even if there's a blank line after comment. |
| 72 | +* pr:3781[], pr:3819[] make **Run** action correctly handle the case with several major versions of the package in the crate graph. |
| 73 | +* pr:3786[] **Fill Match Arms** assits does not leave the floating comma behind. |
| 74 | +* pr:3797[] don't show chaining hints for record literals and unit structs. |
| 75 | +* pr:3844[] make sure that default configuration values are honored. |
| 76 | +* pr:3857[] fix inference of function pointer return types. |
| 77 | +* pr:3858[] don't show return type for `()`-returning function. |
| 78 | + |
| 79 | +== Internal Improvements |
| 80 | + |
| 81 | +* pr:3817[], pr:3815[], pr:3816[] **Show Syntax Tree** internal command now has syntax highlighting and auto scroll from source. |
| 82 | +* pr:3805[], pr:3806[], pr:3811[] lower literal patterns. |
| 83 | +* pr:3790[] use uniiform naming (`config`) for all configuration-related functionality. |
| 84 | +* pr:3792[], pr:3802[] inspired by Emacs, rename "cargo watch" functionality to flycheck. |
| 85 | +* pr:3738[], pr:3800[] more groundwork for proc-macro support. |
| 86 | +* pr:3793[] add integrated test for code-generating build.rs. |
| 87 | +* pr:3795[] decouple flycheck and project model. |
| 88 | +* pr:3809[] reduce the number of structs holding configuration from three to one. |
| 89 | +* pr:3836[] wrap macros in pattern position into `ast::MacroPat` node to not confuse them with expressions. |
| 90 | +* pr:3744[] upgrade chalk. |
0 commit comments