Go logo

GoLand

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

GoLand 2023.3 Is Available!

GoLand 2023.3 delivers a full-fledged JetBrains AI Assistant and support for dev containers. It adds multiple new hints, refactorings, and quick-fixes to improve your productivity, like a huge update for code folding styles, hints for slice expressions, and new code insight for custom printf-like functions. The new version also provides updates for Docker and Kubernetes, improvements for working with version control systems, and tweaks for web development.

In this blog post, we’ll take a look at the most anticipated and significant updates. Let’s dive right in!

Download GoLand 2023.3

AI Assistant

Besides yourself, who knows your project best? Your IDE! And that’s why AI Assistant can be so context-aware and helpful. JetBrains AI Assistant is now generally available with a number of new and improved features to increase your productivity in JetBrains IDEs. Try JetBrains AI today!

Learn more about JetBrains AI and AI Assistant from the creators themselves: Watch the recording from JetBrains AI Launch Event Online on our YouTube channel.

GoLand 2023.3 also brings several Go-specific adjustments for AI Assistant functions, like Rename, Generate unit test, and Write documentation.

Developer productivity features

Code insight for custom printf-like functions

GoLand provides a lot of useful features for standard printf-like functions, such as highlighting of placeholders, error detection, code foldings, and others. You have been asking us to provide similar functionality for custom functions and functions from external libraries, and we listened!  Now, you can define your own printf-like functions and GoLand will provide hints, labeling, and highlighting for them.

A step toward an Extract Parameter refactoring

Another highly demanded feature is the Extract Parameter refactoring. GoLand 2023.3 introduces the first part of its implementation – the Create Parameter quick-fix for unresolved references.
It allows you to select an unresolved reference and use the quick-fix option to create a parameter. This triggers a Change Signature refactoring dialog, which can be used to select a default value and specify the parameter’s type.

Generate switch for enums

GoLand adds yet another way to automate the mundane: Anytime you want to compose a switch statement that is based on a list of enums, the IDE will help you write it and suggest generating cases for all the values in the list.

Support for local Go installations with asdf

asdf is a CLI tool that lets you manage multiple language runtime versions. In response to feedback from the community, we’ve decided to include asdf support in the current version. With this release, GoLand will check the Go version in the .tool-versions file and use the appropriate Go SDK for the selected project.

Data flow analysis

GoLand 2023.3 introduces a refined data flow analyzer based on the engine used in CLion, which runs constantly when you are writing your code and helps improve your code’s quality. This feature detects code problems such as potential nil dereference, incorrect or missing error handling, and always true/false conditions.

Please note that this feature is currently in early access and is disabled by default. You can enable it in Settings | Editor | Inspections | Go | Data Flow Analysis (experimental). Don’t forget to share your feedback with us to help us continue enhancing this area of GoLand!

Go 1.21 

Forwards compatibility and toolchain management

In Go 1.21, the Go distribution includes the go command and a bundled Go toolchain. The go command can use the bundled toolchain or other versions found in the system, or even download the required version from the internet.

Specifically, the go line in a go.mod file now specifies the minimum required Go toolchain version. In previous releases, it was a mostly unenforced suggestion.

GoLand fully supports this flow and automatically downloads the SDK version specified in a go.mod file using a go or toolchain line. The specified version is also automatically set in the GOROOT settings.

Early access

Support for dev containers

Dev containers allow developers to describe their development workspaces – including IDEs, necessary tools, dependencies, and frameworks – using code. These described configurations are stored in the project repository and can be rapidly launched within a container.

GoLand now supports dev containers, allowing you to use containers as a full-featured development environment to edit, build, and run your projects. Dev containers can be run remotely via an SSH connection or locally using Docker.

The support comes as an early access feature as we are still working on a feature set. We value your feedback on this update and encourage you to share any use cases that you believe should be covered in future updates.

That’s it for the release overview. Feel free to check What’s New in GoLand 2023.3 for more updates and features.

Leave your comments here, report any issues you encounter to our issue tracker, ping us on Twitter, or drop us a message in the Gophers Slack #goland channel.

image description