GoLand now has an inspection that reports the usage of an empty interface as a type or type constraint.
There is also an intention action that replaces
any. From the intention action’s popup, you can replace all empty interfaces in a file.
Type parameters with empty parameter lists are now reported as errors. We’ve added a quick-fix to delete them.
We’ve added a new inspection that reports unused type parameters. They are grayed out, and you will see a warning when you hover over them.
The IDE now reports an error if you attempt to use interfaces with methods in unions.
If you try to use a type parameter as a constraint, GoLand will display an error.
GoLand automatically inserts a type parameter’s identifier when you add a receiver while creating a method.
We’ve introduced a new Find Usages group for generics: Type parameter declaration.
You can now run fuzz tests from GoLand. If you click on the green triangle
icon in the gutter next to your fuzz test, you will see different options for running the test.
If the test fails, the failing seed corpus entry will be written to a file
and placed in your package directory in the
The path to this file will also appear in the console as a clickable link.
If you click on the link, the file will be opened in the IDE,
and you will see a green triangle icon at the top of the file.
Clicking on this icon will run
go test with the failing seed corpus entry.
From GoLand you can also run fuzz tests just like normal unit tests.
In GoLand, you will now no longer see a run button in the gutter if you’ve configured a Go SDK that doesn’t support fuzzing. We've added a quick-fix to change the Go SDK if the current Go SDK doesn't support fuzzing.
We’ve added a quick-fix that groups multiple
directives in a
go.work file into one directive.
We’ve added support for
and now GoLand identifies formatting verbs inside strings.
As a result, the
Appendf function benefits from all of the
features that formatting functions have,
such as the Add a format string argument intention action.
GoLand now supports the new
unix build tag, which recognizes any Unix or Unix-like system.
loong64to the Arch list
Go 1.19 is introducing a new architecture –
We’ve added it to our Arch list in
| Go | Build Tags & Vendoring.
We’ve improved Quick Documentation:
chankeyword, on channel send and receive operations, and on all references to channel types.
iotanow contains additional information about how to use it. If a constant is part of an
iotagroup, the value is now shown in the completion box, even if the constant is defined implicitly.
GoLand no longer scans the
cache subdirectory in
since it doesn’t contain information needed for the IDE to work correctly.
This folder can be fairly large, and we believe that excluding it from the scan will
We've added support for the
go:linkname compiler directive:
//go:linkname localname [importpath.name]
It instructs the compiler to use
importpath.name as the object file symbol
name for the variable or function declared as
localname in the source code.
There is a new inspection in GoLand that will warn you if
iota is used irregularly.
We’ve also enabled the Reserved word used as name inspection for
iota and other built-in constants.
The inspection will be triggered if you try to assign a value to a constant named
The Go documentation recommends that all methods on a given type should have either value or pointer receivers.
There is a new inspection in GoLand that will warn you if your type has methods on both value and pointer receivers.
SQL statements are now automatically detected and the language is injected into every string literal that matches a certain pattern. When you inject a language into a string literal, you get comprehensive code assistance when editing that literal.
You can find the patterns, edit them, and add your own in Settings | Editor | Language Injections.
GoLand now supports the Run Anything action that allows you to quickly launch run/debug configurations, applications, scripts, commands, and tasks, as well as open recent projects. To use it, just press Ctrl twice and start typing in the search bar.
GoLand now supports WebSocket connections. You can create requests as well as send and receive messages.
GoLand can now send GraphQL queries over HTTP and WebSocket protocols out of the box.
simple HTTP requests are used,
wss:// are delegated to the WebSocket executor.
There is now a way to select a run environment from the play icon on the gutter. To enable this feature, choose the Select Environment Before Run option from the Run with combobox.
We’ve updated the Remote Development section on GoLand’s Welcome screen. Here you can choose your preferred method for backend orchestration. Also, the port forwarding functionality is now available for processes running on the terminal.
You can find more details about the new remote development features in this blog post.
JetBrains Space is a complete software development platform that provides project management, issue tracking, Git hosting, code reviews, continuous integration, package repositories, and remote backend orchestration for JetBrains IDEs through dev environments.
Space integration is now bundled with GoLand. With this first-class integration, you can browse Space projects and clone repositories, then start working on them directly. When your changes are ready, you can create a merge request and perform a code review from within the IDE.
You can now manage your Space dev environments for remote development directly within GoLand.
When your IDE is connected to your Space organization, all of your existing dev environments are synchronized. You can create a new dev environment for a repository and branch, and start coding right away. You can hibernate a dev environment to reduce resource consumption or simply delete it when your work is finished.
For macOS users, we’ve introduced the ability to merge all open project windows by turning them into tabs within a single window. To do this, go to Window | Merge All Project Windows.
We’ve introduced a keyboard shortcut that changes the font size everywhere in the editor. To increase the font size, press Alt+Shift+. To decrease it, press Alt+Shift+,
When you zoom into or out from your code within the editor, you can now see an indicator that shows the current font size and the option to revert it back to the default.
We’ve integrated a Description field into the Add Mnemonic Bookmark dialog so that you can add an optional description to your bookmark. To add a mnemonic bookmark, right-click the gutter next to the line you want to bookmark and choose the corresponding option from the context menu. Or you can use the shortcut Ctrl+F11.
The Cloning repository progress bar is now shown right in the Projects list.
You can now access Code Completion Settings from the vertical ellipsis menu button in the code completion popup.
We've added the option to toggle whether the IDE automatically inserts parentheses during code completion.
You can adjust the highlighting style for inspections using the new Highlighting in editor dropdown menu in Settings | Editor | Inspections.
This provides you with more options for customizing inspections. For example, you can set the severity level of a particular inspection to Warning but change the highlighting style to Error.
You can now copy images from one Docker daemon to another using the new Copy Docker Image action, which saves the image to a file and then pushes it to the chosen connection.
GoLand now automatically connects to Docker after you restart the IDE. This new setting is enabled by default in Settings | Advanced Settings | Docker.
GoLand is now integrated with Colima and Rancher to support more options for establishing connections to a Docker daemon.
You can now select several CSV files and import them all at once.
When working with databases, you now have two file resolve modes: Playground and Script.
Playground is for when you have a set of unconnected queries, and Script is for queries that have sequential logic.
GoLand can now help you import trusted SSL certificates from system trust stores. It will automatically use the custom certificates specific to your enterprise environment. You don’t need to perform any additional actions. Everything should work right out of the box.
JSON and YAML files now feature automatically inserted web references
inside values that start with
You can open these links in a web browser and generate requests in the HTTP client.