What else is hidden in the 2018.3 EAP 1?
Three days ago we announced that we are opening up our Early Access Program for the upcoming GoLand 2018.3 release. We have added such an enormous number of powerful new things inside, that we actually couldn’t fit them all into one blog post! So we have decided that we need to create a second part to this first EAP build. If you haven’t read the first blog post yet – we welcome you to start there to get the whole picture.
Click on a topic below to learn more about a specific area you’re interested in, or read through the whole blog post to get yourself up to speed with all the new improvements:
- Improved Search Everywhere popup
- Exclude specific files and folders from any formatting actions
- Multiline code snippets in Find in Path and Replace in Path dialogs
- Plugins Page
- Activity Monitor
- Version Control System updates
- Drag-and-drop files and projects on the Welcome screen to open
- Docker supports CLI options for the build part
- Completion for previous package versions in package.json
- The Remove action now automatically updates the indents for HTML and JSX
- Two new code inspections for CSS
The Story of the Search Everywhere popup
The Search Everywhere popup is at the heart of any search in JetBrains IDEs, it has one of the most known shortcuts (Double Shift), and helps millions developer daily find files, actions, symbols, types, classes, settings, and UI elements.
Over the years, Search Everywhere has had many updates and improvements. With the growing power from one release to another, the number of bugs and problems were increased and this once shining action is starting to look a little bit unpolished. We couldn’t let that happen.
Please welcome the new Search Everywhere popup!
Take a second to look at the new redesigned UI: it doesn’t lose focus and doesn’t change its size unexpectedly, the size of the dialog isn’t dependent on the contents, and now it is resizable and movable. Speaking of functionality, it now provides quick access to Go to Types, Go to file, Go to symbol, and Find actions. And the cherry on top is, the search is much faster now, thanks to using an asynchronous approach.
You can use the TAB key to switch between the tabs in this new dialog. All the shortcuts also still work, and Double Shift will take you to the Search Everywhere tab. Press ⌘⇧A on macOS or Ctrl+Shift+A on Windows/Linux to go to the Action tab.
Exclude specific files and folders from any formatting actions
You can now exclude a specific set of files from the Reformat code, Optimize imports, and Rearrange code actions. To do this, go to the Settings | Editor | Code Style, in the Formatter Control tab add the scope for where you want the code formatting to be disabled.
Multiline code snippets in Find in Path and Replace in Path dialogs
The Find and Replace in Path dialogs now have better support for multiline code snippets: paste in the code you want to search for or type a query – when you need to add a new line, click the icon on the right-hand side of the input field or press ⌘/Ctrl+Shift+Enter.
The Plugins page based in Settings/Plugins has been completely reworked, including all the functionality and UI.
It has been given an absolutely new look and feel. Now instead of the plugins list with the full description in the left-hand pane, you will see each plugin as an object with a short definition, a tag, download numbers, date of the last update, and its rating. All this information allows you to search by tags and sort the results by downloads, name, rating, featured, or updated.
A brand new Activity Monitor shows you how much CPU the subsystems and plugins (both built-in and additionally installed) are consuming. The Activity Monitor arranges the subsystems, categories, and entries in the list by how much %CPU they are currently using; this may help you find slow plugins, slow subsystems, or other bottlenecks. It’s available via Main menu | Help | Activity Monitor.
Version Control updates
The upcoming GoLand 2018.3 gets an improved Git integration. First, GoLand has started to support Git submodules: now when you clone repositories with the submodules, GoLand will not only clone the root repositories but also all of its submodules. The Update project action, Diff, History, and Conflict resolution work for submodule folders as well.
Show History for Revision has changed its name to History Up to Here and now shows the full file history instead of only the history up to the selected commit as it was before.
The IDE now allows you to ignore whitespace changes while merging. Go to the Merge Revisions for … dialog in the new Ignore drop-down menu and choose between the options: Ignore whitespaces, Trim whitespaces, or Do not ignore.
In a related change, GoLand 2018.3 will use the Native Git SSH Executable by default. The IDE will correctly handle the passphrase and other prompts from the native SSH.
Besides all this, now you can easily copy a file from one Git branch to another with the new Get from Branch action in the Files tab of the Compare branches dialog. This action is also available in a branch popup menu for Mercurial.
Drag-and-drop files and projects on the Welcome screen to open
We have added a new way to open projects — simply drag the folder to the IDE’s Welcome Screen from the file manager or the desktop.
Docker supports CLI options for the build part
The Docker integration allows the use of CLI options for the build part: in the Dockerfiles run configuration, you will find the new Build options field. For now, the following CLI options are supported:
GoLand continues to expand the out-of-the-box functionality that it inherits from WebStorm.
As you might know, whenever you write a comment that starts with the word TODO, GoLand will display it in the TODO tool window. It can also be a
Fixme, or any other custom pattern that you add to Settings | Editor | Todo.
Put in the todo comment and then add extra indents on the next lines to continue the todo. If you remove the indentation, GoLand will treat it as if it were a normal comment.
You can configure their behavior or disable them completely in the Settings | Editor | General | Appearance | Show parameter name hints option.
Completion for previous package versions in package.json
GoLand provides more suggestions for the available versions in
Press Ctrl+Space or start typing a different version number, after you’ve added the name of the dependency. GoLand will provide you with suggestions of all the previous versions of the package.
The Remove action now automatically updates the indents for HTML and JSX
The Unwrap/Remove action for tags has been added (⇧⌘Space on macOS and Ctrl+Shift+Delete on Windows and Linux), which as the name suggests, removes the opening and closing tag and now automatically updates the indents, so you no longer need to run Reformat code or fix them manually. It is also available as an intention, simply press Alt+Enter on the tag and select Remove tag from the list.
Two new code inspections for CSS
Thanks to our colleagues on the WebStorm team, now we have two new inspections instead of just the old aggressive one, which sometimes changed the code semantics.
The first one, Properties may be safely replaced with a shorthand, shows a weak warning when there’s a full set of longhand properties and switching to the shorthand one is 100% safe. The second one, Properties may probably be replaced with a shorthand, doesn’t highlight the code but provides a quick-fix via Alt+Enter for any cases when the conversion might change the code.
That’s all! Get this EAP build working on your machine and try it out: from the website, via Toolbox App, or right from the IDE. Also, don’t hesitate to share your feedback with us. We love hearing from you: here in comments, in our Twitter, or our bug tracker.
Subscribe to Blog updates
Thanks, we've got you!
The GoLand 2023.3 Early Access Program Has Started!
The Early Access Program for GoLand 2023.3 is now open!
GoLand 2023.2 Reaches Beta!
The Beta provides all of the new features and improvements already announced during our current EAP cycle.
GoLand 2023.2 EAP #7: LSP API Support, and HTTP Client Improvements
This build includes support for LSP API and improvements for HTTP Client.