Early Access Program Features

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

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.

Smart Step Into

Debugger updates

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.

Goroutines instead of threads in the debigger

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.

View int variable as binary in the debugger

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.

Rename refactoring asks to rename methods declared in interface

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.

Set of Intention Actions for declarations in action

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.

Code completion for non-imported Go moduless

Important bug-fixes

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

Comments below can no longer be edited.

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

  1. Avatar

    DeeGrant says:

    February 14, 2019

    Where is the “Create Command-line Launcher…” option in GoLand 2019.1 EAP?

    • Avatar

      Florin Pățan says:

      February 14, 2019

      Hi. How did you install the IDE? Was it via the Toolbox? If so, then the Toolbox as an option to create the command launcher for each IDE, please see the Toolbox settings. If not, can you please tell us the OS you are using? Thank you.

      • Avatar

        DeeGrant says:

        February 14, 2019

        I used the Toolbox app on the macOS. This feature is also available for other JetBrains applications (Rider, Pychram, etc.)

        Menu->Tools->Create Command-line Launcher…

        Are users required to use the Toolbox to generate a “goland” console script?

  2. Avatar

    Brian Thorstad says:

    March 26, 2019

    A problem I have had is the debugger blocks all threads, whereas in Java I could specify to block all threads or only the current one.

    Does the “Goroutines instead of threads” improvement address this?

    – if not, it is really helpful to be able to allow the rest of the application to proceed while debugging a single request. Can this be a feature please?

    • Avatar

      Florin Pățan says:

      March 29, 2019

      Hi Brian,

      Sorry for the delay in reply on this.
      After some investigation and chat with the Delve team, this feature needs some work from the Go Runtime Team before it can be implemented.
      As such, I created the following ticket on the Go tracker https://github.com/golang/go/issues/31132 and one in Delve https://github.com/go-delve/delve/issues/1529

      • Avatar

        Brian Thorstad says:

        March 29, 2019

        thanks for the helpful response.

        (btw, while I experimented w/ GoLand trial, I actually use IntelliJ Ultimate)

        • Avatar

          Florin Pățan says:

          March 29, 2019

          Then you can install the Go plugin for it and that will give you the same functionality as GoLand.

Discover more