IntelliJ Rust Changelog #109
New Features
-
#4542 Support
env!("OUT_DIR")
ininclude!
macro calls in experimental mode. So now the plugin supports all code insight features (highlighting, navigation, completion, etc.) for code generated while compilation in most cases. Under the hood, it uses the output ofcargo build --build-plan
command to get value ofOUT_DIR
variable. Note, this feature is disabled by default because found out thatcargo build --build-plan
forces next build command to recompile whole project (including dependencies). To turn it on just enableorg.rust.cargo.fetch.out.dir
option inExperimental Features
dialog. -
#4581 Support code coverage in CLion. It’s available since recent 2019.3 EAP release. Implementation is based on grcov utility. If the utility is not installed on your machine, the plugin will suggest installing it. Note, it requires nightly toolchain to instrument code properly.
-
#4397 Make
Build
action take into account only selected configuration if possible. So, if you have run configuration that runs a specific target, thenBuild
action will build only that target. Note, it works only when build tool window is enabled. You can turn it on viaExperimental Features | org.rust.cargo.build.tool.window
option
Fixes
-
#4491 Parse macro calls with missing
;
at the end in right way. Previously, the plugin showed a lot of syntax errors for macro calls in this case -
#4572 Correctly highlight
async
,await
andtry
keywords in code disabled bycfg
attribute -
#4553 Render
async
keyword forasync
functions in quick documentation -
#4513 Take into account
async
keyword byImplement members
quick fix
Internal Improvements
- Macros improvements:
- #4491 Implement manual parsing of macro calls.
It should make macro call parsing faster and simplify special parser rules for macro calls (like existing parser rules for
vec!
andinclude!
) in grammar. - #4522 Rework mapping between macro calls and the corresponding expansions. It should make implementation more stable in general and fix some sporadic exceptions
- #4491 Implement manual parsing of macro calls.
It should make macro call parsing faster and simplify special parser rules for macro calls (like existing parser rules for
Full set of changes can be found here