The latest updates include enhanced code generation directly within the editor, context-aware AI chat that answers project-related queries without requiring you to copy code, and project-aware AI actions that use extended context to provide more comprehensive results. A new diff viewer makes it easier to identify changes the AI actions have made to your code.
Use AI Assistant in GoLand as a supplemental feature with a JetBrains AI Service subscription.
Naming is hard! That’s why the AI Assistant in GoLand will suggest some name ideas for functions to improve readability.
Documenting your code is a mundane routine, albeit a necessary one. The Write documentation action facilitates well-commented code in just a couple of clicks.
AI Assistant can help you to create a test for a specific function or method and will suggest adding more test cases after the initial test class has been created.
This quick-fix allows you to type a non-existing function name and then generate implementation in a package of your choice.
The 2023.3 release comes with the first part of the highly anticipated Extract Parameter refactoring. The Create Parameter quick-fix for unresolved references allows you to select an unresolved reference and use the quick-fix option to create a parameter. It also allows changing its type if it's not precise enough, providing a default value, and changing the calls with the default value.
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.
GoLand 2023.3 provides support for Dev Container Features, providing a convenient and fast way to integrate additional tools, runtimes, and libraries essential for development.
We’ve also introduced support for Docker Compose within Dev Containers, enabling the seamless launch of both the main container with the IDE and any dependent containers, such as those with databases or message queues, which are useful during the development process.
panics, there will now be an option
to use the new concise code folding style, which will look much closer to the original code.
The new folding syntax is enabled by default.
We use a similar approach for
case clauses: the upward arrow is removed,
and only the double colon is folded.
As we’ve done for one-line
panics, we’ve also
enabled folding for functions with a single
To improve the readability of error-handling code, GoLand automatically folds
if blocks with error-handling code, GoLand also folds
all single statements, for example, with calls to logging.
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.
Switchgeneration for enums
GoLand can now assist in writing
switch statements for enums. It suggests
generating cases for all the values in completion.
The inspection helps you keep track of
iota constants. The inspection warns you about cases not covered
switch and provides two solutions: to add the missing clauses
or to add a default clause.
The feature allows you to see exactly what code has been reached in single
or multiple runs. It also helps detect dead code.
Previously, it worked only for test runs; now, you can run the
main function with Coverage too.
Slice expressions can be confusing, especially those with three indices.
GoLand will now show you hints while you’re building slices.
GoLand provides a lot of useful features for standard
highlighting of placeholders, error detection, code foldings, etc.
Now, all these features are available for user-defined
GoLand 2023.3 introduces a refined data flow analyzer based on the engine used in CLion.
This feature more broadly detects code problems such as potential
incorrect or missing error handling, and always
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) and provide us with your feedback!
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 current version.
With this release, GoLand will check the Go version in the
file and use the appropriate Go version for the selected project.
Go 1.21 and later take better care not to miscompile code that requires
an even newer version of Go. Specifically, the
go line in
now specifies a minimum required Go toolchain version, while in previous releases,
it was a mostly unenforced suggestion.
Now, GoLand fully supports this flow and automatically downloads the SDK version specified
go.mod file using
The specified version is also automatically set in Go project settings.
GoLand 2023.3 migrated to the modern IntelliJ Platform API, so it does not run
go list -m for a second time if the project contains vendor directories.
More effective utilization of caches enhances the performance of projects
containing many Go modules.
A new Run to Cursor inlay option that offers a quick way to navigate to a specific line of code while debugging. Once your program is suspended, you can hover over the line of code to which you wish to continue execution. You can then utilize the Run to Cursor popup to execute your code until it reaches the line where your cursor is placed.
Expanding the GitLab integration, we’ve added support for GitLab snippets. You can now create public or private snippets directly within the IDE.
Now, you can easily add
kubeconfig contexts from clusters located
in directories outside the required system. The project will include links
kubeconfig files, making these clusters available while you work
on your project. The
kubeconfig contents added in this way won’t be
copied to or modified in the system
(~/.kube/config). This feature
is especially useful when you frequently add and remove Kubernetes clusters
from cloud or on-premises environments.
When you start using the Kubernetes plugin, you may need to install kubectl and/or Helm. If you don’t have them on your machine already, the IDE will offer to automatically install them.
Telepresence allows you to debug the microservices of a Kubernetes application locally, as if your workstation were a part of the cluster. In this release, we’ve made the Telepresence workflow more accessible by moving it to the cluster’s context menu. We've also streamlined interception management for a smoother debugging experience.
importblock in Terraform
GoLand supports top-level
import blocks from version 1.5 of the Terraform
import blocks allow you to bring the current
infrastructure under Terraform’s management. When
import is used
within a code block, it becomes part of the standard plan and apply cycle and ceases
to be a state operation. Terraform performs automatic code generation
for imported resources, saving you time when developing infrastructure as code.
GoLand 2023.3 solves some of the inconsistencies encountered when adding
import type statements. We’ve added the option to
configure the usage of the TypeScript import type statement
or type specifier when importing a type. We’ve also improved the behavior
exports field of package.json for TypeScript files.
We’ve improved the Structure view for better navigation within large
.http files. This update also introduces
color-coded labels for request types and provides a clearer listing
of their contents. We’ve also added support for declaring variables
@ and authentication with OAuth 2.0 password
and client credential grant types.
GoLand will automatically detect your Cypress and Playwright tests and let you run and debug them with a single mouse click. The support also includes the ability to explore the results and find issues by navigating the Test Tree.
This is a revamped way to review code changes. Now, instead of going through each file one by one, you can see all of the modified files from a changeset in a single, scrollable frame. Learn more.