Release notes for GoLand 2020.2
Actions: the new Add Caret Per Selected Line action
The Add Caret Per Selected Line action creates carets at the end of each selected line. To invoke the action, press Alt+Shift+G.
Code formatting: wrapping for call arguments, function parameters, and composite literal elements
To configure wrapping for call arguments, function parameters, and composite literal elements, open settings by pressing Ctrl+Alt+S and navigate to.
Code formatting: intention actions for wrapping arguments
To wrap arguments in the function signature, place the caret before the opening bracket, call the intention action by pressing Alt+Enter, and select Put arguments on separate lines. To revert this action, press Alt+Enter and select Put arguments on one line.
Generics: the experimental support of type parameters
Experimental feature based on the proposed draft design at go.googlesource.com.
Type inference is not supported yet, you might see red code when passing parameters to a function with type parameters.
How to use type parameters for generic programming: learn about the experimental support of type parameters in GoLand.
Go Modules: the focus does not switch aggressively between tool windows
When you get errors from running
go list -m all, the IDE does not switch the focus from the active tool window to the Run tab.
Go Modules: notification when you edit go.sum
The go.sum file contains the expected cryptographic checksums of the content of specific module versions. If you want to change go.sum, modify the go.mod file.
GoLand displays a notification when you edit go.sum.
Go modules: Support for the GOMODCACHE environment variable
The default storage place for the Go modules cache is $GOPATH/pkg/mod. By using the
GOMODCACHE environment variable, you can change the default location to a different one (for example,
Go modules: dependencies in the vendor folder resolve faster
If you have a vendor directory in your project, Go builds your application only with the dependency packages that are inside this directory. Since GoLand 2020.2, GoLand ignores the Go modules cache and uses the vendor directory only. This feature helps to discover unresolved dependencies faster.
For example, if you add an empty vendor directory manually, GoLand will instantly show all the unresolved dependencies that you can add with a quick-fix.
Go modules: autocompletion of parentheses in go.mod
require statements, GoLand adds a closing parenthesis immediately after the opening parenthesis.
Go modules: go list commands run sequentially with a progress bar
In GoLand 2020.2,
go list commands run sequentially. You can see the progress bar with the actual numbers of
go list commands in the queue.
Inspections: notification about the violation of Go conventions for struct tags
The Malformed struct tag code inspection reports struct tags that do not conform to Go conventions.
For example, this inspection reports fields that repeat values in JSON tags.
Inspections: the widget for inspections
To navigate between detected problems, you can use the Inspections widget. The Inspections widget shows the number of warnings, errors, and typos in the current file. You can go through them using the arrow icons or by pressing F2.
By using the Inspections widget, you can configure the highlighting level (None, Errors Only, or All Problems), change the severity level of inspections, and toggle the Compact View.
Widget for inspections: learn how to configure the Inspections widget.
Inspections: malformed names of tests, benchmarks, and examples
GoLand reports malformed names of tests, benchmarks, and examples, so you do not need to call
go vet explicitly. In some cases, GoLand suggests quick-fixes. For example, to rename the
Testcalculate function to
TestCalculate due to Go conventions for names.
Inspections: string(int) conversions
string(int) conversion returns the UTF-8 representation of the Unicode code point and not its decimal string representation. For conversions that intend to use the code point, GoLand suggests replacing such conversions with
string(rune(x)). Alternatively, you can convert an integer to a string by using the
strconv.Itoa method or its equivalents from the
Intention actions: preview of intention actions
For some intention actions, you can open a preview by pressing Ctrl+Shift+I.
Navigation: highlight references from comments to related package-level declarations
If you click the reference in comments, you can navigate to related package-level declarations in the same package. Also, you can use the Navigate to Declaration and Usage action (Ctrl+B) for such references.
Names of methods, functions, and structs in comments are highlighted.
GoLand highlights references to exported symbols only. Words are resolved to package-level declarations in the same package. Two words separated with a dot are treated either as
Type.Method or as
GoLand highlights references only if the name is unique to reduce the number of false positives.
Navigation: the Find Usages action searches for embedded structs and interfaces
The Find Usages action searches for embedded structs and interfaces.
Plugins: the Swagger plugin
GoLand supports the Swagger plugin. By using the Swagger plugin, you can edit Swagger and Open API specification files.
Note that you need a local JAR with swagger-codegen or an HTTP link to swagger-codegen on Maven Central.
Plugins: learn more about plugins.
Project: the Save Project as Template action
You can save a project as a template. Later, you can create projects that are based on the saved project. For example, you can use this template for the projects that are nearly identical to the template project.
Save projects as templates: learn more about this functionality.
Quick-fixes: the Unpack slice quick-fix
The Unpack slice quick-fix converts a slice to a variadic variable.
Refactorings: refactorings to work with variadic arguments
Use the Introduce Variable refactoring (Ctrl+Alt+V) to extract variadic arguments into a new slice variable.
To reverse the Introduce Variable refactoring, use the Inline refactoring (Ctrl+Alt+N).
Tool windows: the Problems tool window and the Inspections Widget are introduced
The Problems tool window displays a list of warnings and errors in the current file. You can fix these issue by using an intention action. You can call the intention action by pressing Alt+Enter. Alternatively, right-click the issue and select Show Quick Fixes.
Running inspections: learn more about running inspections and the widget for inspections.
VCS: Merge, Pull, and Rebase dialogs
GoLand now includes new Merge, Pull, and Rebase dialogs.
WSL support: WSL2 support for Git on Windows
GoLand supports Git from the Windows Subsystem for Linux 2 (WSL2), which is available in Windows 10 version 2004.
If Git is not installed on Windows, GoLand searches for Git in WSL and use it from there. Also, GoLand automatically switches to Git from WSL for projects that are opened when you use the \wsl$ path.