|
| 1 | += Changelog #21 |
| 2 | +:sectanchors: |
| 3 | +:page-layout: post |
| 4 | +:!figure-caption: |
| 5 | + |
| 6 | +Commit: commit:90f837829d4f2c1054751de2de695ba1c0b8ae5c[] + |
| 7 | +Release: release:2020-04-20[] |
| 8 | + |
| 9 | +== New Features |
| 10 | + |
| 11 | +* pr:3958[] Initial support for proc-macros |
| 12 | ++ |
| 13 | +image::https://user-images.githubusercontent.com/1711539/79734928-c57c1d80-82f7-11ea-93a5-9081087402e0.gif[] |
| 14 | ++ |
| 15 | +To enable it, set the following settings: |
| 16 | +[source,json] |
| 17 | +---- |
| 18 | +{ |
| 19 | + "rust-analyzer.cargo.loadOutDirsFromCheck": true, |
| 20 | + "rust-analyzer.procMacro.enabled": true |
| 21 | +} |
| 22 | +---- |
| 23 | + |
| 24 | +* pr:3990[] switch to Chalk recursive solver. |
| 25 | + This significantly improves type inference when associated types are involved, |
| 26 | + for example, with iterators: |
| 27 | ++ |
| 28 | +.Before |
| 29 | +image::https://user-images.githubusercontent.com/1711539/79728444-3a4a5a00-82ee-11ea-83ab-1f3e539dde69.png[] |
| 30 | ++ |
| 31 | +.After |
| 32 | +image::https://user-images.githubusercontent.com/1711539/79728643-8ac1b780-82ee-11ea-867a-b231d46b89a0.png[] |
| 33 | + |
| 34 | +* pr:4034[] add `unresolvedReference` semantic tag for names which rust-analyzer fails to resolve. |
| 35 | + Adding to VS Code config |
| 36 | ++ |
| 37 | +[source,json] |
| 38 | +---- |
| 39 | +"editor.tokenColorCustomizationsExperimental": { |
| 40 | + "unresolvedReference": "#FF0000" |
| 41 | +} |
| 42 | +---- |
| 43 | ++ |
| 44 | +will give fast feedback about unresolved references, highlighting them in red. |
| 45 | +No default highlighting is set, as rust-analyzer still has a fair number of false positives. |
| 46 | ++ |
| 47 | +image::https://user-images.githubusercontent.com/1711539/79669212-42a17880-81ba-11ea-9274-bceac6448914.gif[] |
| 48 | + |
| 49 | + |
| 50 | +* pr:3962[] don't assign shortcut for **Parent Module** command. |
| 51 | + The original shortcut was kbd:[ctrl+u], but it conflicts with VS Code build-in. |
| 52 | + It is recommended to assign custom shortcut for `rust-analyzer.parentModule` action. |
| 53 | +* pr:3965[] implement inline associated type bounds. |
| 54 | +* pr:3966[] add support for bounds on associated types in trait definitions. |
| 55 | +* pr:4026[] omit more parameter hints in the presence of underscores. |
| 56 | +* pr:3894[] implement exhaustiveness checking for record enum variants. |
| 57 | + |
| 58 | +== Fixes |
| 59 | + |
| 60 | +* pr:3961[] fix extraneous comma when merging import. |
| 61 | +* pr:3969[] **Add Function** assist now uses `todo!` macro. |
| 62 | +* pr:3967[] handle `Self::Type` in trait definitions when referring to own associated type. |
| 63 | +* pr:3948[] fix inlay hints config synchronization between client and server. |
| 64 | +* pr:3979[] fix missing match arm false positive for enum with no variants. |
| 65 | +* pr:4010[] fix diagnostics ranges in macros. |
| 66 | +* pr:4011[] fix self-fulfilling completion. |
| 67 | +* pr:4012[] fix panic on ellipsis in pattern. |
| 68 | +* pr:4021[] fix type equality for dyn Trait. |
| 69 | +* pr:4022[] fix panic in syntax highlighting. |
| 70 | +* pr:4023[] fix another crash from wrong binders. |
| 71 | +* pr:4027[] don't qualify builtins in generated code. |
| 72 | +* pr:4036[] fix name resolution in guard closes and record patterns. |
| 73 | + |
| 74 | +== Internal Improvements |
| 75 | + |
| 76 | +* pr:3971[] add `rust-analyzer diagnostics` command for batch processing. |
| 77 | +* pr:3964[] nicer Chalk debug logs. |
| 78 | +* pr:3994[], pr:4016[] don't expose implementation details of `SyntaxNodePtr`. |
| 79 | +* pr:3995[] separate project discovery from project loading. |
| 80 | +* pr:4008[] add more info about what failed in tidy tests. |
0 commit comments