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!
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.