IntelliJ IDEA 2019.2 EAP2: Shell Script Support, Improved Code Duplicates Detection, Services Tool Window, and More

Please welcome a new EAP build for the upcoming IntelliJ IDEA 2019.2 which we have loaded with new features!
Shell Script support
The upcoming IntelliJ IDEA 2019.2, will provide rich editing support for shell scripts, including word and path completion, Quick documentation preview, and even the textual rename.
The upcoming IntelliJ IDEA 2019.2, will include integration with several external tools to enhance the shell script support even further.
For detecting possible errors in your script, the IDE will prompt you to install the inspection tool named Shellcheck, which can detect a ton of issues and provide quick-fixes for them.
Also, the upcoming IntelliJ IDEA 2019.2 will have integration with the Shfmt external formatter engine. When you invoke the Reformat Code action for the first time, the IDE will suggest you install this tool, and then after that the IDE will properly format your shell script.
The upcoming version of IntelliJ IDEA will have integration with the website Explainshell. This means that you will be able to select a command in the editor and press Alt-Enter on it and the IDE will take you to Explainshell where you’ll find a detailed explanation of the selected command.
Improved detection of code duplicates
IntelliJ IDEA offers powerful tools to spot code duplicates. It can detect duplicates on the fly for Java with the “Duplicated code fragment” inspection. For all other languages, including Java, there is the Locate duplicates tool, which is highly configurable but doesn’t work on the fly.
With the upcoming 2019.2 release, we’re merging these tools so that you get the combined advantage of both in a single updated inspection – the “Duplicated code fragment”. It is configurable, works on the fly, and supports lots of languages including Java, Kotlin, Groovy, JavaScript, ActionScript, TypeScript, PHP, Python, HTML, XHTML, XML, CSS, and Ruby.
Of course, the IDE will provide an option to quickly navigate to duplicates, and it gives you options for a quick-fix when needed.
Please note that this feature is only supported in IntelliJ IDEA Ultimate.
Services tool window
The upcoming IntelliJ IDEA 2019.2, will introduce a brand new Services tool window which will provide a single place to view all connections and run configurations that are configured to be reported to the Services View. The Services tool window incorporates several tool windows such as RunDashboard, Database Console, Docker, and Application Servers.
Of course, we have kept all the actions that were specific to the incorporated tool windows accessible through their own nodes.
You can view all the service types as nodes, or you can alter the view to see them as tabs. Use the “Show in New tab” action from the toolbar or simply drag and drop the needed node on to the edge of the Services tool window.
You’ll be able to create a custom tab where you may group various services – simply select the services needed and invoke the Group Services action from the context menu or from the toolbar.
Version Control and Diff
Improved “Collapse Unchanged Fragments” mode of Diff
When you use Diff in the “Collapse Unchanged Fragments” mode, the IDE will now show a method in which the current code chunk is modified making it easier for you to understand the context. Previously, the Diff would collapse a method signature if it wasn’t changed, so you would only see the changed lines, but you would have no idea in which method they were changed.
Ability to view the Git file history for multiple directories selected from the Project View
In the upcoming IntelliJ IDEA 2019.2, it will be possible to select several folders in Project View and see all changes in any of these folders. Select the folders you want to check the changes in and choose the Git | Show History from the context menu.
JetBrains Runtime
JBR 11 (default) was updated to v11.0.3+12-b262.3:
- The issue with the context menu in the diagram popup was fixed: JBR-1255
- Find Action shortcut now works on macOS JBR-1135
- Select All action doesn’t break under certain conditions JBR-1433
- The IDE doesn’t freeze after returning from sleep or connecting/disconnecting external displays (macOS): JBR-1393
- Fixed various problems with emojis JBR-1435.
JBR 8 was updated to v1.8.0_202-release-1566-b8
- JavaFX was upgraded for MacOS and Linux up to 8u212 . On Windows, it is still 8u202 due to the issue: JBR-1531.
Download the new IntelliJ IDEA 2019.2 EAP build and give these new features a try! Don’t hesitate to submit feature requests to our issue tracker. Any feedback you can provide here in the comments is also appreciated.
Happy Developing!
Xinky says:
June 3, 2019I saw there is a new sdk feature: IDEA-214797 Allow using color palette in themes
How to use this feature in my theme plugin?
Zlata Kalyuzhnaya says:
June 4, 2019We’ll update the SDK documentation ASAP, please follow this ticket: https://youtrack.jetbrains.com/issue/IJSDK-609.
meandhere says:
April 26, 2020There’s not much documentation there.
michel says:
June 3, 2019The new Services tool window is absolutely great! The ability to show any node in a new tab is perfect.
We can finally have every running things in the same window (with tabs or not), even the database consoles.
The only thing missing is the ability to move the tabs left or right like we can do recently with the terminal tabs.
Zlata Kalyuzhnaya says:
June 3, 2019Hi Michel! Thank you for your feedback. Regarding the move tab issue, please follow this issue: https://youtrack.jetbrains.com/issue/IDEA-71490
xxx says:
June 4, 2019How can I add my run configurations to services tool window?
My services tool window is empty in a springboot project
Zlata Kalyuzhnaya says:
June 4, 2019In the Run/Debug Configurations dialog, select the Templates from the list in the left-hand pane and add the required run configuration to the Configurations available in Services section.
https://www.jetbrains.com/help/idea/creating-and-editing-run-debug-configurations.html#run-dashboard
xxx says:
June 5, 2019Oh… get it !
it’s REALLY hard to find
Adam says:
June 18, 2019I agree, until I found this comment I had absolutely no idea how to turn this on after an hour of searching.
Jógvan Olsen says:
June 4, 2019One feature I would love to be added to the Shell Script support would be able to create a Run Configuration to execute a script.
Zlata Kalyuzhnaya says:
June 4, 2019Hi Jógvan, thank you for your feedback. Please follow this issue for the update: https://youtrack.jetbrains.com/issue/IDEA-215578
GuLhe says:
August 9, 2019That and the refactor>extract {variable,function,…} that would be grand !
Roman says:
June 4, 2019Looks like the new EAP has a bug with gradle resync. Added a bug for this – https://youtrack.jetbrains.com/issue/IDEA-215572
If this is critical for you you might want to wait until it’s fixed.
Zlata Kalyuzhnaya says:
June 5, 2019Thank you for reporting this issue. We’ll take a look.
Laura says:
June 4, 2019I’m getting an error with the PHP plugin when running on Ubuntu —
The following plugins are incompatible with the current IDE build: PHP
Zlata Kalyuzhnaya says:
June 5, 2019Thanks for the info. It is fixed now. Please update the PHP plugin.
Rob Crawford says:
June 5, 2019The URL for downloading PlantUML is wrong, and there’s no clear way to provide the JAR manually.
Tristan Bellman-Greenwood says:
July 19, 2019Will the Shell plugin be available for Rider as well?
Porfirio says:
July 30, 2019ShellScript run configuration should allow to specify the run script relative to project directory like:
${PROJECT_DIR}/script.sh
Per Lundberg says:
October 29, 2019Late to the party, upgraded to 2019.2.3 yesterday. One annoyance I’ve noted is that trailing \ characters for lines in shell scripts (which are used to continue a variable to the next line) now show a red squiggly, implying that there is something wrong with this line.
For exampple, try writing a shell script that contains this variable and you’ll quickly notice the problem:
JAVA_OPTS=”\
-Djava.awt.headless=true \
-Djava.net.preferIPv4Stack=true \
-XX:+HeapDumpOnOutOfMemoryError \
-XX:HeapDumpPath=/tmp/”
Any way to get rid of this? I find it incredibly annoying; this wasn’t the case with the earlier 2019.1 version I used to run (with BashSupport) previously.
Thanks in advance.
Best regards,
Per