GoLand 2019.1 EAP opens with a Better Debugger that includes Smart Step Into action, Improved Refactorings, Enhanced Completion, and more

Posted on by

GoLand Early Access Program for the upcoming 2019.1 release is open!

You can get the first EAP build via Toolbox App, or from the website, using snap packages (for Ubuntu) or even from GoLand itself — just be sure that you select Automatically check updates for Early Access Program in Preferences / Settings | Appearance & Behavior | System Settings | Updates.

If you are new to the EAP concept, here’s a short explanation of what the EAP is and how it works: the EAP program provides free access to pre-release GoLand builds it is where you can try out the newest features early and in return give feedback on how they can be improved and any issues with them.

Also, when it comes to release time, we reward the most active EAP participants with a free 1-year personal GoLand subscription and a special custom designed t-shirt. Are there any gophers on that t-shirt? You bet!

Smart Step Into

Debugging a chain of calls and nested method calls is way easier to do with the new debugger action, Smart Step Into, as it lets you step into arbitrary calls in an expression, automatically stepping over the methods which you are not interested in.

For example, when debugging code like fmt.Printf("My name is %s, I am %d!", me.FullName(), me.Age()) , you can opt to specifically step into Age() .

To invoke Smart Step Into, press Shift+F7 or select Smart Step Into in the Run menu.

Goroutines instead of threads

The debugger output now displays goroutines instead of threads. Thanks to that you can switch between them, quickly navigate to standard Go libraries, and get more information about how your code is being executed. You can also switch back to thread view if it is ever needed.

View int as binary, decimal, or hex

You can now choose whether to display int variables in the debugger views as binary, decimal, or hex. Just right-click a variable and select the appropriate or preferred option under View as.

Rename refactoring

Rename refactoring includes the capability to rename methods declared in interfaces. When renaming such methods, GoLand will offer to rename their implementations as well.

The Refactoring Preview panel in the Find tool window lets you see what the current refactoring will affect, with usages grouped by their type and location in the project.

New Intention Actions for declarations

Wrote all the declarations and decided to merge them, then had second thoughts and now need to split them back into groups? No problem — we added a set of intention actions to help you regroup declarations in any way you need.

Press Alt+Enter on a single declaration to:

— Add parens to declaration;

— Remove parens from declaration;

To merge two declarations into a single one separated via a comma or wrapped in parentheses, you can use:

— Merge declaration up;

— Merge declaration up via comma;

Merge as many declarations as you want into a single one wrapped in parentheses if they surrounded by blank lines from the rest of code.

— Merge all declarations;

Replace a group of comma separated declarations and a group of declarations wrapped in parentheses with two separate declarations:

— Split declarations into two groups;

— Split declaration by comma;

Replace a group of declarations wrapped in parentheses with separate declarations.

— Split all declarations;

For the complete list of available actions and their detailed descriptions, go to the Declaration section of Go in Settings/Preferences | Editor | Intentions.

Other changes:

We have added new project templates for web development (such as React App, React Native, HTML5 Boilerplate, and Foundation) on the Welcome screen.

Code completion for non-imported Go modules.

Settings of JetBrains-made plugins are searchable in the Preferences/Settings dialog.

Important bug-fixes

— GO-3341 — Move refactoring updates the references when moving a file from one package to another.