From 9f73dad960676880a28bca53a2dbc39fd38698d7 Mon Sep 17 00:00:00 2001 From: Dmitry Murzin Date: Wed, 30 Nov 2022 17:24:34 +0200 Subject: [PATCH 1/3] Changelog 184 --- _posts/2022-12-05-changelog-184.markdown | 88 ++++++++++++++++++ .../posts/changelog-184/derive_proc_macro.png | Bin 0 -> 46419 bytes assets/posts/changelog-184/type_info.png | Bin 0 -> 26427 bytes 3 files changed, 88 insertions(+) create mode 100644 _posts/2022-12-05-changelog-184.markdown create mode 100644 assets/posts/changelog-184/derive_proc_macro.png create mode 100644 assets/posts/changelog-184/type_info.png diff --git a/_posts/2022-12-05-changelog-184.markdown b/_posts/2022-12-05-changelog-184.markdown new file mode 100644 index 0000000..364e349 --- /dev/null +++ b/_posts/2022-12-05-changelog-184.markdown @@ -0,0 +1,88 @@ +--- +layout: post +title: "IntelliJ Rust Changelog #184" +date: 2022-12-05 13:00:00 +0300 +--- + + +## An Update on Procedural Macros + +* [#9729] Enable [function-like](https://doc.rust-lang.org/reference/procedural-macros.html#function-like-procedural-macros) and [derive](https://doc.rust-lang.org/reference/procedural-macros.html#derive-macros) procedural macro expansion by default. Now the plugin provides them with syntax highlighting, completion, the [Show Macro Expansion](https://plugins.jetbrains.com/plugin/8182-rust/docs/rust-code-reference-info.html#macro-exansion) popup, and other features already available for declarative macros. Generated items are now suggested in code completion and considered in other code insight features: + + + + Note that [attribute](https://doc.rust-lang.org/reference/procedural-macros.html#attribute-macros) procedural macro expansion is still disabled by default. If you want to try out, enable `org.rust.macros.proc.attr` [experimental feature](https://plugins.jetbrains.com/plugin/8182-rust/docs/rust-faq.html#experimental-features) + +## New Features + +* [#4768] Show [coerced](https://doc.rust-lang.org/reference/type-coercions.html) types via `View | Type Info` action (Ctrl+Shift+P) + + + +* [#9686] Support short [intra-doc links](https://doc.rust-lang.org/rustdoc/write-documentation/linking-to-items-by-name.html) (in the `[link]` format) + +* [#9808] Parse half-open [range patterns](https://doc.rust-lang.org/reference/patterns.html#range-patterns) + +* [#9760] Notify users about changes in the crate roots of procedural macro libraries to reload the project model. Otherwise, the plugin won't be able to expand procedural macro calls properly + +* [#9711] Experimentally set `RUST_IDE_PROC_MACRO_COMPLETION` and `RUST_IDE_PROC_MACRO_COMPLETION_DUMMY_IDENTIFIER` environment variables for procedural macro when invoking them during completion. The idea is that authors of procedural macros could use these variables and based on them change the behavior of the macro to provide a better (possibly custom) completion for IDE users. See [usage example](https://github.com/yewstack/yew/pull/2972) in `yew::html!` macro + +## Fixes + +* [#9756] Suggest `Reload project` instead of `Attach file to a module` quick-fix for the crate root files after their creation + +* [#9761] Fix type inference in closures on nightly Rust + +* [#9779] Fix false-positive errors like `Use of moved values` after invalidating caches without clearing file caches + +* [#9800] Fix impl search when there are multiple type aliases with the same names + +* [#9783] Fix [move statement up/down](https://www.jetbrains.com/idea/guide/tutorials/rearranging-code/moving-statements-around/) editor action being incorrectly disabled with some IDE configurations (by [@afetisov]) + +* [#9823] Fix completion inside local macro calls in 2022.3 IDE builds + +* [#9767] Fix navigation, highlighting, completion and other code insight features with function-like macros invoked in the pattern context + +* [#9762] Fix `Find usages` for variables defined by macros + +* [#9764] Fix handling of nested blocks expanded from local macros + +* [#9741] Don't offer `Un-elide lifetimes` intention when there are no input lifetimes + +* [#9788] Don't show `File does not belong to any known Cargo project` warning for [scratch files](https://www.jetbrains.com/help/idea/scratches.html) + +* [#9345] Fix nesting of renamed imports (by [@afetisov]) + +* [#9745] Restore `Import | Fix all 'Unresolved reference' problems in file` quick-fix option, which adds all missing unambiguous imports. Note, if you prefer missing imports to be fixed on the fly, you can enable `Add unambiguous imports on the fly` option in `Settings | Editor | General | Auto Import` settings + +* [#9737] Don't create separate `Undo` entries when adding unambiguous import on the fly + +## Internal Improvements + +* [#9758] Make 2022.3 platform default for development + +Full set of changes can be found [here](https://github.com/intellij-rust/intellij-rust/milestone/93?closed=1) + +[@afetisov]: https://github.com/afetisov + +[#4768]: https://github.com/intellij-rust/intellij-rust/pull/4768 +[#9345]: https://github.com/intellij-rust/intellij-rust/pull/9345 +[#9686]: https://github.com/intellij-rust/intellij-rust/pull/9686 +[#9711]: https://github.com/intellij-rust/intellij-rust/pull/9711 +[#9729]: https://github.com/intellij-rust/intellij-rust/pull/9729 +[#9737]: https://github.com/intellij-rust/intellij-rust/pull/9737 +[#9741]: https://github.com/intellij-rust/intellij-rust/pull/9741 +[#9745]: https://github.com/intellij-rust/intellij-rust/pull/9745 +[#9756]: https://github.com/intellij-rust/intellij-rust/pull/9756 +[#9758]: https://github.com/intellij-rust/intellij-rust/pull/9758 +[#9760]: https://github.com/intellij-rust/intellij-rust/pull/9760 +[#9761]: https://github.com/intellij-rust/intellij-rust/pull/9761 +[#9762]: https://github.com/intellij-rust/intellij-rust/pull/9762 +[#9764]: https://github.com/intellij-rust/intellij-rust/pull/9764 +[#9767]: https://github.com/intellij-rust/intellij-rust/pull/9767 +[#9779]: https://github.com/intellij-rust/intellij-rust/pull/9779 +[#9783]: https://github.com/intellij-rust/intellij-rust/pull/9783 +[#9788]: https://github.com/intellij-rust/intellij-rust/pull/9788 +[#9800]: https://github.com/intellij-rust/intellij-rust/pull/9800 +[#9808]: https://github.com/intellij-rust/intellij-rust/pull/9808 +[#9823]: https://github.com/intellij-rust/intellij-rust/pull/9823 diff --git a/assets/posts/changelog-184/derive_proc_macro.png b/assets/posts/changelog-184/derive_proc_macro.png new file mode 100644 index 0000000000000000000000000000000000000000..26b1e7b7f0a8ec88f6b357ca62cc01d10e85207e GIT binary patch literal 46419 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 literal 0 HcmV?d00001 diff --git a/assets/posts/changelog-184/type_info.png b/assets/posts/changelog-184/type_info.png new file mode 100644 index 0000000000000000000000000000000000000000..71d7e3181bcb340bd8dde8baa25076d2f20da070 GIT binary patch literal 26427 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 literal 0 HcmV?d00001 From 30fc908cdf9fe8571616b07ad4951e39e79b17d3 Mon Sep 17 00:00:00 2001 From: Vitaly Bragilevsky Date: Mon, 5 Dec 2022 09:07:39 +0200 Subject: [PATCH 2/3] Mention blog post about macros --- _posts/2022-12-05-changelog-184.markdown | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/_posts/2022-12-05-changelog-184.markdown b/_posts/2022-12-05-changelog-184.markdown index 364e349..7053cf7 100644 --- a/_posts/2022-12-05-changelog-184.markdown +++ b/_posts/2022-12-05-changelog-184.markdown @@ -11,7 +11,9 @@ date: 2022-12-05 13:00:00 +0300 - Note that [attribute](https://doc.rust-lang.org/reference/procedural-macros.html#attribute-macros) procedural macro expansion is still disabled by default. If you want to try out, enable `org.rust.macros.proc.attr` [experimental feature](https://plugins.jetbrains.com/plugin/8182-rust/docs/rust-faq.html#experimental-features) + Note that [attribute](https://doc.rust-lang.org/reference/procedural-macros.html#attribute-macros) procedural macro expansion is still disabled by default. If you want to try out, enable `org.rust.macros.proc.attr` [experimental feature](https://plugins.jetbrains.com/plugin/8182-rust/docs/rust-faq.html#experimental-features). + + Read more about macros and how they are supported in Rust plugin in the [corresponding blog post](https://blog.jetbrains.com/rust/2022/12/05/what-every-rust-developer-should-know-about-macro-support-in-ides/) ## New Features From c4c9b7b4e4130f1c123f5c2815a0888dd09b0612 Mon Sep 17 00:00:00 2001 From: Dmitry Murzin Date: Mon, 5 Dec 2022 12:56:31 +0200 Subject: [PATCH 3/3] Review fixes --- _posts/2022-12-05-changelog-184.markdown | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/_posts/2022-12-05-changelog-184.markdown b/_posts/2022-12-05-changelog-184.markdown index 7053cf7..09b9a31 100644 --- a/_posts/2022-12-05-changelog-184.markdown +++ b/_posts/2022-12-05-changelog-184.markdown @@ -5,15 +5,18 @@ date: 2022-12-05 13:00:00 +0300 --- -## An Update on Procedural Macros +## Update on Procedural Macros Support -* [#9729] Enable [function-like](https://doc.rust-lang.org/reference/procedural-macros.html#function-like-procedural-macros) and [derive](https://doc.rust-lang.org/reference/procedural-macros.html#derive-macros) procedural macro expansion by default. Now the plugin provides them with syntax highlighting, completion, the [Show Macro Expansion](https://plugins.jetbrains.com/plugin/8182-rust/docs/rust-code-reference-info.html#macro-exansion) popup, and other features already available for declarative macros. Generated items are now suggested in code completion and considered in other code insight features: +We finally [enabled](https://github.com/intellij-rust/intellij-rust/pull/9729) [function-like](https://doc.rust-lang.org/reference/procedural-macros.html#function-like-procedural-macros) and [derive](https://doc.rust-lang.org/reference/procedural-macros.html#derive-macros) procedural macro expansion by default 🎉 - - Note that [attribute](https://doc.rust-lang.org/reference/procedural-macros.html#attribute-macros) procedural macro expansion is still disabled by default. If you want to try out, enable `org.rust.macros.proc.attr` [experimental feature](https://plugins.jetbrains.com/plugin/8182-rust/docs/rust-faq.html#experimental-features). - - Read more about macros and how they are supported in Rust plugin in the [corresponding blog post](https://blog.jetbrains.com/rust/2022/12/05/what-every-rust-developer-should-know-about-macro-support-in-ides/) +Now the plugin provides them with syntax highlighting, completion, the [Show Macro Expansion](https://plugins.jetbrains.com/plugin/8182-rust/docs/rust-code-reference-info.html#macro-exansion) popup, and other features already available for declarative macros. Generated items are now suggested in code completion and considered in other code insight features: + + + +Note that [attribute](https://doc.rust-lang.org/reference/procedural-macros.html#attribute-macros) procedural macro expansion is still disabled by default. If you want to try out, enable `org.rust.macros.proc.attr` [experimental feature](https://plugins.jetbrains.com/plugin/8182-rust/docs/rust-faq.html#experimental-features). + +Read more about macros and how they are supported in Rust plugin in the [corresponding blog post](https://blog.jetbrains.com/rust/2022/12/05/what-every-rust-developer-should-know-about-macro-support-in-ides/) ## New Features