Go logo

GoLand

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

Early Access Program

The GoLand 2023.3 Early Access Program Has Started!

The Early Access Program for GoLand 2023.3 is now open! If you want to know our plans for the final release, check out the roadmap blog post

You can get the first 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.3 EAP

If you’re not familiar with our Early Access Program, 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 in your real-world projects and scenarios, you can help us polish them. This way, when the final version is released, it will work smoothly for you.

  • The EAP lets you be among the first to try out 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 the upcoming version 2023.3, the EAP period will last until the end of November.
  • In each release cycle, we reward the most active evaluators and people who helped us make GoLand better by sharing their product experience, feedback, and suggestions with a free 1-year GoLand subscription.
  • Fresh builds come out almost every day. If you don’t want to wait for the official EAP build announcements, you can simply download our nightly builds, which are only available via the Toolbox App. Note that the nightly builds often do not meet the quality standards for official EAP builds, and they don’t come with release notes. Like EAP builds, they expire within 30 days of being released.

Now let’s look at what we have implemented in this EAP build. 

Improved code folding style

In several cases, GoLand collapses blocks of code to improve readability. We’ve been getting requests to improve code folding and bring it more in line with Go syntax. In 2023.3, the GoLand team is introducing a new style for code folding.

One-line returns and panics

For one-line returns and panics, there will now be an option to use the new code folding style:

In 2023.3, Go syntax will be used instead of the upward arrow and the asterisk. Syntax highlighting is preserved, and you can edit the content of the block without having to expand it. For both the new and old folding styles, we only fold the code if the folded text does not exceed the right margin. The right margin is configurable in the IDE.

To avoid code symmetry issues, this folding is disabled for if conditions with an else branch.

For case clauses, we use a similar approach: the upward arrow is removed, and only the double colon is folded.

The new folding syntax is enabled by default. You can switch to the old syntax or disable folding in Settings | Editor | General | Code folding.

Functions with single returns

As we’ve done for one-line returns and panics, we’ve also enabled folding for functions with a single return statement.

Error handling

To improve the readability of error-handling code, GoLand automatically folds error-handling if blocks.

Most if blocks containing error-handling code, where the if condition is either a comparison of errors or a call to errors.Is or errors.As, are already folded by single-line returns.

For if blocks with error-handling code, GoLand also folds all single statements, for example with calls to logging.

You can manage all of the folding options in Settings | Editor | General | Code folding.

Disabled code folding for string formatting

We’ve disabled code folding for string formatting to make the relevant syntax more visible. What’s more, the new approach to code folding allows you to edit code blocks without having to expand them. You can enable code folding for string formatting in Settings | Editor | General | Code folding.

File contents in the Structure view

The Structure view is a powerful tool that provides an overview of the project’s structure. However, for larger projects, it may require you to pay additional attention, as some files in the package can have hundreds of fields and methods spread across multiple files.

Previously, if any methods were defined for a structure declared in another file, the entire type with all its properties and methods would be displayed. Now, GoLand can only display the methods declared in the current file, which should improve the clarity of the Structure view.

Code coverage profiles for programs

The code coverage profile for programs allows us to see exactly what code has been reached in single or multiple runs. The feature also helps in detecting dead code. 

Code coverage profiles are supported in Go starting from the 1.20 version, and GoLand will support them in v2023.3.

AI Assistant

AI Assistant (limited access) is now able to explain regex variables in Go code. Just place the caret inside a regular expression, choose AI Actions, and then select Explain Go RegExp fragment.

We’ve also added Go specific prompts to AI Assistant. The prompts appear as clickable links in a window with an empty chat. If you click on a link, a corresponding query is passed to AI Assistant.

Please note that AI Assistant is not yet generally available. See our documentation for more details.

Quick-fix for creating a function in another package

We’ve added a quick-fix that allows you to type a function name and then implement it in a package of your choosing. Place the caret on a function name, press ⌥ ↩ (Alt + Enter) to see all available fixes and select Create function ‘function name’.

In the pop-up window that appears, you will choose the target for the function. You can enter the name of an existing file or offer an unused name, in which case a new file will be created from scratch. 

Show parameter info for slice expressions

Slice expressions can be a bit confusing, especially ones with three indices. GoLand will now show you hints while you’re building slices.

IntelliJ Platform enhancements

As part of the large family of JetBrains IDEs, GoLand gets a lot of features that are implemented for the whole IntelliJ Platform! Here are some new features from the IntelliJ IDEA 2023.3 EAP:

User experience

  • We’ve implemented an option to hide the main toolbar when using the IDE’s default viewing mode, just like in the old UI.
  • We’ve introduced the Default layout option, which provides a quick way to revert your workspace’s appearance back to its default state.
  • Color-coded highlighting for editor tabs is now enabled by default.
  • We have redesigned the JetBrains IDE icons for macOS to align them with the standard style guidelines of the operating system.

Version control systems: GitLab snippets

We’ve added support for GitLab snippets.

Performance: Download of shared JDK indexes enabled by default 

To boost the IDE’s startup speed, we’ve optimized the indexing process by making the download of shared JDK indexes the default. GoLand will now seamlessly connect to a dedicated resource in the background, fetching and applying shared indexes for your JDK automatically.

We would appreciate your feedback on our latest features. Feel free to contact us on social media, leave your comments here, open an issue in our tracker, or drop us a message in the Gophers Slack #goland channel. Thank you!

image description