Original post

The first Early Access Program () build for is ready for you to try. You can get it via the Toolbox App, download from the website, or use a snap package (for Ubuntu). Or, right in GoLand, select Automatically check updates for Early Access Program in Preferences / Settings | Appearance & Behavior | System Settings | Updates.

blog@2x

A month ago we published our roadmap for 2019.3. In it, we briefly outlined our primary goal for this release – fighting bugs, glitches, unexpected behavior, usability, and performance issues. However, it looks like we will add a few new things too.

If you’re new to GoLand and wondering about this Early Access Program business, here’s what it’s all about.

EAP builds let you try out the latest features and enhancements in Goland that are still a work in progress. The builds are not fully tested and might be unstable, but this is where you can come in. By taking these builds and features for a drive, in your real-world projects and scenarios, you can help us polish them, and so when the final release is ready, it will work for you smoothly.

  • The EAP lets you try out all the newest features first.
  • EAP builds are free to use for 30 days after the build date. You can basically use this as as an extended trial of GoLand.
  • We provide EAP builds until a stable release is almost ready. For this upcoming version 2019.3, it will last approximately through mid-November.
  • In each release cycle, we recognize the most active evaluators with a free 1-year GoLand subscription and a branded T-shirt.
  • On top of that, we provide fresh builds based on the latest development code almost every day, if you don’t want to wait for the announcements of EAP builds. These nightly builds are only available via the Toolbox App. Note that the quality of nightly builds is usually below our standards, they don’t have release notes, and like EAP builds they also expire within 30 days of their release.

So, let me tell you about what’s new in this first EAP for GoLand 2019.3.

Support for Remote debugging with Mozilla rr

Now it’s possible to debug your applications remotely using Mozilla rr. Follow these steps:

  1. Collect an rr trace on the remote machine.
  2. Start the debugger on the remote machine like this:
    dlv --headless --api-version 2 -l localhost:2345 replay /path/to/trace/dir /path/to/binary
  3. Connect to it from the IDE as usual.

Performance

We’ve fixed several issues to make GoLand perform faster and consume less CPU.

Refactorings

Change Signature always shows the type of parameters in the Parameters and Result parameters tabs. Tick the new Reuse types checkbox to collapse consequence types in the Signature Preview.

change-signature

In addition, you will find a new intention action, Reuse signature types, which merges parameter definitions in a single declaration (via Alt + Enter).

The Move refactoring doesn’t rename package main files that contain a func main() declaration, so they remain runnable.

Extract Variable and Rename are now better at suggesting names. For example, err is suggested for expressions of type error, ctx is suggested for context.Context, and so on.

exctract-variable

Other improvements

Now it’s possible to analyze the callees’ method hierarchy in the Hierarchy tool window. Previously, it was only possible to explore the callers of a selected method. Now, we’ve added two dedicated buttons to easily switch between the callers and callees of the selected method. Also, now you can sort the elements within a tree alphabetically, by clicking a special button in the menu.

hierarchy-tool-window

The inspection Bool condition code (part of Declaration redundancy inspections) doesn’t warn you about using const booleans anymore.

The names of Module packages are presented in a clearer and simpler way in the Project View.

go-modules

We’ve made the rune literal lexer less restrictive, so GoLand doesn’t highlight a valid rune literal as an error after editing.