diff --git a/_posts/2022-11-21-changelog-183.markdown b/_posts/2022-11-21-changelog-183.markdown new file mode 100644 index 0000000..280db5e --- /dev/null +++ b/_posts/2022-11-21-changelog-183.markdown @@ -0,0 +1,94 @@ +--- +layout: post +title: "IntelliJ Rust Changelog #183" +date: 2022-11-21 13:00:00 +0300 +--- + + +## New Features + +* [#9641], [#9699] Support [Intention and quick-fixes preview](https://blog.jetbrains.com/idea/2022/09/intellij-idea-2022-3-eap/#Intention_action_preview_enabled_by_default) in 2022.3. + Note, not all intentions and quick-fixes have a preview at this moment. See the corresponding [issue](https://github.com/intellij-rust/intellij-rust/issues/9561) for more details + + {% include gif-img.html path="/assets/posts/changelog-183/intention_preview" w="700px" %} + + +* [#7353] Support code insight features (like completion, navigation, find usages, rename, etc.) for [intra-doc links](https://doc.rust-lang.org/rustdoc/write-documentation/linking-to-items-by-name.html) + + {% include gif-img.html path="/assets/posts/changelog-183/intra-docs_links" w="700px" %} + +* [#9649] Enable native Rust support in [MSVC LLDB](https://blog.jetbrains.com/clion/2019/06/clion-2019-2-eap-msvc-debugger-unused-includes-check-and-more/#msvc_debug) in 2022.3 IDE builds on Windows. + Currently, the most visible improvement of the native support is the proper displaying of Rust primitive type names, such as `u64` instead of `unsigned long long` + + | Before | After | + |-|-| + | ![image](/assets/posts/changelog-183/msvc_lldb_before.png) | ![image](/assets/posts/changelog-183/msvc_lldb_after.png) | + +* [#8958] Provide support for proper build script evaluation and procedural macro expansion on Windows with arm64 CPU + +* [#9350] Support [renaming](https://plugins.jetbrains.com/plugin/8182-rust/docs/rust-refactorings.html#rename-refactoring) (`Refactor | Rename` or Shift+F6) derive procedural macros + +* [#9694] Enable [derive](https://doc.rust-lang.org/reference/procedural-macros.html#derive-macros) procedural macro expansion in [nightly plugin builds](https://plugins.jetbrains.com/plugin/8182-rust/docs/rust-quick-start.html#install-nightly). + To turn it off, disable `org.rust.macros.proc.derive` [experimental feature](https://plugins.jetbrains.com/plugin/8182-rust/docs/rust-faq.html#experimental-features) + +## Fixes + +* [#9698] `Specify type explicitly` intention now uses fully qualified name when the same name is already in scope + + {% include gif-img.html path="/assets/posts/changelog-183/specify_type_explicitly" w="700px" %} + +* Completion improvements + * [#9658] Show completion autopopup when typing in a recursive macro call + + * [#9714] Fix type inference of const arguments in a path qualifier type arguments + + * [#9708] Fix completion in a function-like macro call body + +* [#9695] Properly load stdlib metadata with [custom build target](https://docs.rust-embedded.org/embedonomicon/custom-target.html) + +* [#9689] Fallback to hardcoded stdlib structure if fetching of stdlib structure failed for some reason + +* [#9633] Fix `clippy` if the run configuration doesn't contain `Build Before Launch` task + +* [#9602] Show error about incompatibility between Run targets and WSL toolchains in Run/Debug configuration editor + +* [#9585] Fix `Add unambiguous imports on the fly` option for 2022.3 + +* [#9525] Substitute `Self` in [`Inline function`](https://plugins.jetbrains.com/plugin/8182-rust/docs/rust-refactorings.html#extractmethod-refactoring) refactoring (`Refactor | Inline...` or Ctrl+Alt+N) + +* [#9470] Improve completion when the caret is placed in the middle of an identifier + +* [#9515] Add trailing comma if needed by `Add missing fields` quick fix (by [@t-kameyama]) + +* [#9377] Fix `docs.rs` documentation hyperlinks for procedural macros (by [@afetisov]) + +## Internal Improvements + +* [#9667] Await finish of macro expansion task when running inspection from [command line](https://www.jetbrains.com/help/idea/command-line-code-inspector.html) or via [Qodana](https://www.jetbrains.com/qodana/) + +Full set of changes can be found [here](https://github.com/intellij-rust/intellij-rust/milestone/92?closed=1) + +[@afetisov]: https://github.com/afetisov +[@t-kameyama]: https://github.com/t-kameyama + +[#7353]: https://github.com/intellij-rust/intellij-rust/pull/7353 +[#8958]: https://github.com/intellij-rust/intellij-rust/pull/8958 +[#9350]: https://github.com/intellij-rust/intellij-rust/pull/9350 +[#9377]: https://github.com/intellij-rust/intellij-rust/pull/9377 +[#9470]: https://github.com/intellij-rust/intellij-rust/pull/9470 +[#9515]: https://github.com/intellij-rust/intellij-rust/pull/9515 +[#9525]: https://github.com/intellij-rust/intellij-rust/pull/9525 +[#9585]: https://github.com/intellij-rust/intellij-rust/pull/9585 +[#9602]: https://github.com/intellij-rust/intellij-rust/pull/9602 +[#9633]: https://github.com/intellij-rust/intellij-rust/pull/9633 +[#9641]: https://github.com/intellij-rust/intellij-rust/pull/9641 +[#9649]: https://github.com/intellij-rust/intellij-rust/pull/9649 +[#9658]: https://github.com/intellij-rust/intellij-rust/pull/9658 +[#9667]: https://github.com/intellij-rust/intellij-rust/pull/9667 +[#9689]: https://github.com/intellij-rust/intellij-rust/pull/9689 +[#9694]: https://github.com/intellij-rust/intellij-rust/pull/9694 +[#9695]: https://github.com/intellij-rust/intellij-rust/pull/9695 +[#9698]: https://github.com/intellij-rust/intellij-rust/pull/9698 +[#9699]: https://github.com/intellij-rust/intellij-rust/pull/9699 +[#9708]: https://github.com/intellij-rust/intellij-rust/pull/9708 +[#9714]: https://github.com/intellij-rust/intellij-rust/pull/9714 diff --git a/assets/posts/changelog-183/intention_preview.gif b/assets/posts/changelog-183/intention_preview.gif new file mode 100644 index 0000000..3d1a022 Binary files /dev/null and b/assets/posts/changelog-183/intention_preview.gif differ diff --git a/assets/posts/changelog-183/intention_preview.png b/assets/posts/changelog-183/intention_preview.png new file mode 100644 index 0000000..be113e2 Binary files /dev/null and b/assets/posts/changelog-183/intention_preview.png differ diff --git a/assets/posts/changelog-183/intra-docs_links.gif b/assets/posts/changelog-183/intra-docs_links.gif new file mode 100644 index 0000000..5bb933e Binary files /dev/null and b/assets/posts/changelog-183/intra-docs_links.gif differ diff --git a/assets/posts/changelog-183/intra-docs_links.png b/assets/posts/changelog-183/intra-docs_links.png new file mode 100644 index 0000000..07468b6 Binary files /dev/null and b/assets/posts/changelog-183/intra-docs_links.png differ diff --git a/assets/posts/changelog-183/msvc_lldb_after.png b/assets/posts/changelog-183/msvc_lldb_after.png new file mode 100644 index 0000000..296ee24 Binary files /dev/null and b/assets/posts/changelog-183/msvc_lldb_after.png differ diff --git a/assets/posts/changelog-183/msvc_lldb_before.png b/assets/posts/changelog-183/msvc_lldb_before.png new file mode 100644 index 0000000..2d9a934 Binary files /dev/null and b/assets/posts/changelog-183/msvc_lldb_before.png differ diff --git a/assets/posts/changelog-183/specify_type_explicitly.gif b/assets/posts/changelog-183/specify_type_explicitly.gif new file mode 100644 index 0000000..57109bc Binary files /dev/null and b/assets/posts/changelog-183/specify_type_explicitly.gif differ diff --git a/assets/posts/changelog-183/specify_type_explicitly.png b/assets/posts/changelog-183/specify_type_explicitly.png new file mode 100644 index 0000000..9ee6546 Binary files /dev/null and b/assets/posts/changelog-183/specify_type_explicitly.png differ