GoLand Releases

Meet GoLand 2021.3!

Read this post in other languages:

The third major release of the year is out!  

In GoLand 2021.3 you’ll find native support for Go projects in WSL, the Inline Function refactoring, support for remote development (Beta), some improvements for the debugger, two new postfixes for converting strings to numbers, and more.  

In addition, we have new features to offer for front-end web development and working with databases. 

All the new functionality available in DataGrip and WebStorm is also available in GoLand. Check out DataGrip 2021.3 What’s New and WebStorm 2021.3 What’s New.

To learn more about the new features in GoLand 2021.3, head over to our What’s New page, where you’ll find a full overview of the release along with GIFs and screenshots. 

Download GoLand 2021.3

If you prefer an interactive approach to learning, complete the What’s New in GoLand 2021.3 tutorial from the Welcome screen.

What’s New

WSL support

You can now open a project in WSL and specify an SDK located there. 

gofmt on save by default 

The Reformat code option, which lets you run gofmt and GoLand’s own formatter on save, is now enabled by default. 

Inline Function and Inline Method

The Inline refactoring for functions and methods is now available. 

Better handling of value styles in struct tags

When you add a tag value in a struct field, GoLand suggests a list of different styles for writing compound words – camelCase, snake_case, etc. After you’ve chosen one, the IDE remembers your choice and will suggest the same style first in the list for other fields in this struct. 

New postfixes for string-to-number conversion

We have a couple of new postfixes for converting strings to numbers – parseInt and parseFloat

Source preview for Show Usages

You can now turn on the source code preview for a found usage by clicking the square icon. 

Run targets

  • You can configure folders for sources and executables on the remote machine.
  • It is now possible to set a project-wide default run target. 
  • You can configure proxy servers for your SSH connections.

Debugger

  • We changed how interfaces are represented in the Variables tab. If you have an interface with inner type *int, and value nil, it will be shown like this: {interface{} | *int} *int(nil).
  • GoLand now displays only the last part of the full package name in the Variables tab.
  • If object types take up too much space in the Variables tab, you can right-click in the tab area and untick the Show Types option. 
  • GoLand bundles Delve built for the ARM64 architecture. 

A template for testify assertions

GoLand can generate a template with assertions if you already used assert in your package. 

New quick-fixes

  • A new quick-fix will address incorrectly formatted error strings. 
  • If you have an exported function that returns an unexported type, GoLand will suggest a quick-fix to export that type.

Other Go-related changes

  • GoLand has a new inspection that highlights the usages of context.TODO(). 
  • We’ve added the //TODO implement me comment for the templates generated when you use the Implement Methods action.

Remote development

GoLand now supports a Beta version of remote development workflows. 

HTTP client 

GoLand’s HTTP client now supports gRPC requests.

VCS enhancements

  • Checkout and Rebase onto Current works for remote branches.
  • New Push All up to Here action allows pushing commits up to the one you have selected in the Log tab.
  • The VCS settings are now more discoverable and structured.

UI improvements

  • The Evaluate expression functionality is now available on the Variables tab. 
  • You can now split the Run tool window. 
  • We have a new window for bookmarks. 

Profiler

You can visualize the difference between the two snapshots on the flame graph. 

Terminal

  • GoLand’s terminal supports the new ConPTY API on Windows.
  • We’ve introduced typeahead support to deal with latency on remote machines – our terminal predicts text modifications and instantly displays them in light grey.  

Web development

  • You can download ES6 modules by using a quick-fix on the import path.
  • You can update npm packages right from the editor with the help of a quick-fix.
  • We’ve improved the way code completion works in HTML.
  • We’ve added a quick-fix that lets you put comma-separated elements on separate lines.

Working with databases

  • We’ve added the ability to display the Aggregate view for a range of cells.
  • The data editors are now completely independent if you split the editor and open the same table.
  • GoLand automatically detects column types in CSV files.

Please tell us what you think about our new features! Leave your comments here, report any issues you encounter to our bug tracker, ping us on Twitter, or drop us a message in the Gophers Slack #goland channel.

image description