IntelliJ IDEA
IntelliJ IDEA – the Leading Java and Kotlin IDE, by JetBrains
IntelliJ IDEA 2021.3 EAP 5: Inline Hints for Kotlin Ranges, a New VCS Action, and More
IntelliJ IDEA 2021.3 EAP 5 is here! For over a month now, we’ve been delivering new features and essential quality enhancements designed to improve your daily experience with our IDE. With this version, we’ve implemented inline hints for Kotlin and a reworked Kotlin New Project wizard, the ability to push commits up to the selected one, typeahead support in the terminal, and more.
As usual, to test out the latest changes, you can get the new build from our website, through the free Toolbox App, or as a snap (for Ubuntu).
Let’s get started!
Kotlin
Inline hints for ranges
Kotlin supports various ways to declare ranges. However, sometimes understanding range bounds can be more difficult than you would expect. For instance, it can be tough to distinguish between .. and until.
From now on, interpreting these ranges will be easier because we’ve added inline hints that explain with plain mathematical signs what the words or symbols used for the ranges mean. The example below shows how the hints work.
This feature is enabled by default. If you want to switch it off, right-click on a hint and select Disable ‘Ranges’ hints type or go to Preferences / Settings | Editor | Inline hints | Kotlin | Ranges and deselect the Show ranges checkbox there.
Fold coroutines
We’ve received a lot of feedback indicating that, in most cases, internal coroutine calls don’t carry important information when they appear in stack traces. They also take up too much space, forcing you to scroll to get to the calls that matter.
Starting from EAP 5, it is possible to fold such coroutines. To do so, just click the minus sign next to the internal coroutine lines. To unfold them again, click on the link specifying the number of internal coroutine lines.
Better New Project wizard
When you start a new Kotlin project, you’ll find an improved layout for the New Project wizard. First off, we’ve removed some of the unpopular templates, and we’ve added a new one that lets you create a project with Compose Web capabilities.
What’s more, the fields now come with explanations in the form of tooltips so you can understand exactly what the field is responsible for.
On the second step, you no longer need to fill in numerous fields. We’ve cut the required fields down to the basics and carefully grouped the settings so that you can get started on your new project quickly and more easily.
If you create a new project, please check out the new layout and share your feedback. Are all the settings that are most important for you present? Is the template list sufficient? Are there other things we could improve?
Improved Possibly blocking call in non-blocking context inspection
The Possibly blocking call in non-blocking context inspection warns you if you use a coroutine in the wrong context. In this EAP, we’ve made it possible not only for the inspection to prompt you about the problem but also for it to offer a context-dependent quick-fix.
What’s more, we’ve improved this inspection – it now covers more cases, and you can customize it so it works better in your particular environment.
VCS
New Push All up to Here action
Sometimes, you may have several commits that are ready to ship while others are still work in progress. In such cases, you may want to push only the ones you are confident about.
In the current build, we allow you to push commits up to the one you have selected in the Log tab of the Git tool window. To do so, pick the commit you want to stop at, right-click on it to call the context menu, and select the new Push All up to Here action.
Terminal
ConPTY support on Windows
IntelliJ IDEA’s terminal supports the new ConPTY API on Windows. Using this as a backend for the terminal helps us address several problems that users were having with the old implementation, which was based on winpty.
What’s more, it adds support for 24-bit colors in the terminal.
Typeahead support
Previously, when you were typing characters in IntelliJ IDEA’s terminal while working on a remote machine, the IDE couldn’t display the characters as fast as it would on a local machine, because of latency.
Fortunately, this is no longer an issue because we’ve introduced typeahead support. Our built-in terminal can now predict text modifications and will instantly display them in light grey.
Quality enhancements
As usual, we’ve implemented some bug fixes and improvements. Here are the most significant changes:
- Fixed the Maven Wrapper feature. The IDE now automatically downloads Maven Wrapper (if you haven’t downloaded it yet) and uses it for Maven goal execution. Additionally, the IDE remains responsive when downloading Maven Wrapper upon opening a project and displays the download progress. [IDEA-258757], [IDEA-276012], [IDEA-246835]
- Fixed the modified .vmoptions files so they will be properly updated during IntelliJ IDEA version upgrades. [IDEA-240526]
- Fixed the IDE’s behavior when double-clicking on a window’s title bar on macOS. [IDEA-274588]
- Fixed the WSL 2 error that would occur when trying to reload all Maven projects or execute a Maven goal. [IDEA-266222]
- Fixed the error causing the IDE not to recognize Maven multi-module dependencies in WSL 2. [IDEA-265900]
- Fixed the Maven resources compiler, which was returning a Failed to copy error when building a project inside WSL 2. [IDEA-266670]
- Fixed the ability to add external tools to the Quick List. [IDEA-257383]
- Fixed the bug causing incorrect environment variables to appear in the ProxyCommand when you start the IDE from the JetBrains Toolbox App. [IDEA-222673]
- Fixed the new Maven Run Configuration in v2021.3 so that it is compatible with previous versions of the IDE. [IDEA-279198]
Those are the most significant updates contained in this EAP build. You can find a list with the remaining issues we’ve addressed in the release notes.
We would love to get your feedback on these new features! If there are any problems preventing you from working smoothly, please report them to our issue tracker.
Happy developing!