Go logo


A cross-platform Go IDE with extended support for JavaScript, TypeScript, and databases

Early Access Program

The GoLand 2023.2 Early Access Program Has Started!

Today marks the beginning of GoLand’s second Early Access Program for 2023. Check out our roadmap blog post for what we have planned for v2023.2.

You can get this EAP build via the Toolbox App, download it from our website, use a snap package (for Ubuntu), or from inside GoLand, select Check IDE updates for: Early Access Program in Preferences / Settings | Appearance & Behavior | System Settings | Updates.

Download GoLand 2023.2 EAP

If you’re not familiar with our EAPs, here’s a brief overview:

EAP builds let you try out the latest features and enhancements in GoLand while we continue to work on them. These builds are not fully tested and might be unstable, but this is where you can help us. By taking these builds and their new features for a test drive with your real-world projects and scenarios, you can help us polish them. This way, the IDE will work more smoothly for you when the final version is released.

  • The EAP lets you be among the first to try the newest features.
  • EAP builds are free to use for 30 days from the build date. You can use this period as an extended trial of GoLand.
  • We provide a series of EAP builds until a stable release is almost ready. For version 2023.2, the EAP period will last until mid-July.
  • In each release cycle, we reward the most active evaluators and people who helped us improve GoLand by sharing their product experience, feedback, and suggestions. We give them a complimentary one-year GoLand subscription.
  • New builds come out almost every day. If you don’t want to wait for the official EAP build announcements, you can download our nightly builds, available only via the Toolbox App. Note that nightly builds often do not meet the quality standards for official EAP builds and don’t come with release notes. Like EAP builds, they expire within 30 days of being released.

Now let’s look at what’s new in this EAP build.

Optional ability to download modules automatically

To download Go modules dependencies in a project in GoLand, you need to manually apply a quick-fix. Failing to apply the quick-fix may result in red code in newly opened projects, which can be confusing, and some users want GoLand to run go mod download automatically. The discussion about whether it would be better to download dependencies automatically has continued for some time.

In this build, we’ve implemented the ability to download modules automatically on project open and after each change of the go.mod file. This functionality is on by default, but you can turn it off at any time in Settings/Preferences | Go | Go Modules.

Migrate function parameter to method receiver

We have two new refactorings – Migrate function parameter to method receiver and Migrate method receiver to function parameter.

The Migrate function parameter to method receiver refactoring can be useful when you’ve implemented several functions and then realized that you’d rather have a type and convert all of the functions into methods on this type instead.

Migrate method receiver to function parameter is for when you’ve implemented a type and several methods on that type, but you then decide that you’d prefer to have several separate functions instead.

Completion for ‘make’ function arguments

We’ve added type-aware completions for make function invocations.

Checks for ‘make’ function arguments

GoLand can now detect errors and redundant arguments in make functions. There is also a quick-fix to remove redundant arguments, which you can access via Alt+Enter (⌘⌥), as usual.

Option to disable vendoring 

You can now disable vendoring per project, for example, when you have a monorepo containing the vendor folder used by another language. You can disable vendoring while creating a new project or anytime by going to Preferences/Settings | Go | Go modules.

VS Code keymap is bundled

If you’re accustomed to the VS Code keymap, you can now choose it in the Customize section on the Welcome screen. You can also change the keymap in Preferences/Settings | Keymap.

The receiver type is shown in completion for method expressions

If you’re calling a method directly on a type (this is called a method expression), you need to provide the receiver type as the first argument. GoLand now shows the receiver as the first parameter in completion suggestions for these cases.

Generics: Improved error message for missing arguments

The error message for missing type arguments in the type’s instantiation has been improved. Now, GoLand explicitly tells you what’s wrong.

Preview for the Wrap error handling in a closure intention

We’ve added a preview for the Wrap error handling in a closure intention.

The preview appears when you open the list of available intention actions and hover over an option. This feature lets you instantly see how your code will be altered once you apply the IDE’s suggestions.

You can disable the preview feature by pressing Ctrl+Q / F1 while the list of intention actions is open, and it will remain disabled until you turn it back on in the same way.

Warning for redundant conditions in ‘for’ loops 

GoLand now shows a warning message for redundant conditions in for loops. There is also a quick-fix to remove the redundant condition. You can access the quick-fix via Alt+Enter (⌘⌥).

Notable bug-fixes

GO-10198 – Incorrect receiver with built-in type is detected, as expected.

That’s it for today. We’d love to hear what you think about our new features. Get in touch with us on Twitter, leave your comments here, open an issue in our tracker, or drop us a message in the Gophers Slack #goland channel. Thanks!

image description