GoLand 2022.2 offers new features for generics and go.work
.
We’ve also added support for fuzz tests.
SQL statements are now automatically detected, and you get comprehensive code assistance for them.
GoLand now supports WebSocket connections and can send GraphQL queries over HTTP and WebSocket protocols.
If you prefer an interactive approach to learning, we invite you to complete the What's New in GoLand 2022.2 tutorial from the Welcome screen.
any
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 interface{}
with 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 testdata
folder.
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.
use
directivesWe’ve added a quick-fix that groups multiple use
directives in a go.work
file into one directive.
fmt.Appendf
We’ve added support for fmt.Appendf
,
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.
unix
build constraintGoLand now supports the new unix
build tag, which recognizes any Unix or Unix-like system.
loong64
to the Arch list
Go 1.19 is introducing a new architecture – loong64
.
We’ve added it to our Arch list in
Settings
| Go | Build Tags & Vendoring.
We’ve improved Quick Documentation:
chan
keyword, on channel send and receive operations,
and on all references to channel types.
iota
now contains additional
information about how to use it.
If a constant is part of an iota
group,
the value is now shown in the completion box,
even if the constant is defined implicitly.
GoLand no longer scans the cache
subdirectory in ~/go/pkg/mod
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
improve performance.
go:linkname
directive
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.
iota
inspectionThere 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
iota
, true
, or false
.
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.
For http://
and https://
,
simple HTTP requests are used,
while ws://
and 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
http://
and https://
.
You can open these links in a web browser and generate requests in the HTTP client.