GoLand 2020.3 Help

FAQ about GoLand

General questions

Is there a GoLand Community edition?

No, as there is no way to separate GoLand functionality into free and paid tiers. You can still try GoLand by using a free 30-day trial or Early Access Program (pre-release) versions as long as they are available.

How to get GoLand for free or at a discount?

If you want to get a GoLand license for free or at a discount, check out the offers on the following page: Toolbox Subscription - Special Offers. If you have any questions, contact our sales support.

Free individual licenses are available for students, faculty members, and core contributors to open source projects.

Is GoLand available via the JetBrains Toolbox as part of the All Products Pack?

Yes, it is available both as a standalone IDE and as a part of the All Products Pack.

What is the difference between GoLand and the Go plugin for IntelliJ IDEA Ultimate?

It is the same.

Does GoLand include support for databases?

Yes. The database management functionality in GoLand is supported by the Database tools and SQL plugin. The Database tools and SQL plugin provides support of all the features that are available in DataGrip, the standalone database management environment for developers. With the plugin, you can query, create, and manage databases. Databases can work locally, on a server, or in the cloud. The plugin supports MySQL, PostgreSQL, Microsoft SQL Server, SQLite, MariaDB, Oracle, Apache Cassandra, and others. See the full list of supported vendors in Database connection.

In addition to Go, which web technologies does GoLand support?

In addition to tools for core Go development, GoLand supports JavaScript, TypeScript, Node.js, SQL, Databases, Docker, Kubernetes, Terraform, and other technologies.

How to leave feedback or submit a bug?

The Getting help topic describes how to leave feedback, report a bug, or submit a feature request.

Configuring Go development environment

What configuration is needed before the start?

To start coding, you need to install Go SDK. In most cases, GOROOT and GOPATH variables are set automatically.

If you have Go SDK installed, GoLand automatically detects and uses it.

If Go SDK is not detected, right from GoLand, you can download Go SDK from the official repository or navigate to the Go SDK directory. You can do that when you create a new project or in settings.

GOROOT is automatically set to the installation directory of Go SDK. The installation directory must include bin and src directories.

GOPATH is automatically set to $HOME/go on Unix and macOS and %USERPROFILE%/go on Windows. You can configure the global, project, and module GOPATH variable in settings (press ( Ctrl+Alt+S ) and navigate to Go | GOPATH ).

How do I run gofmt/goimports/golang-ci on save?

For a single file, you can use the built-in import management and code formatter. Imports are managed on-the-fly. To customize import management, open settings by pressing Ctrl+Alt+S and navigate to Go | Imports .

To reformat code, press Ctrl+Alt+L . Comparing to gofmt, GoLand’s formatter works with syntactically incorrect code and can be invoked on an arbitrary block. There are other features such as automatically inserting semicolons, wrapping parameters and arguments, and others.

Alternatively, you can use file watchers to trigger gofmt and goimports. File watcher is a built-in GoLand tool that allows you to run command-line tools automatically when files are changed or saved. GoLand automatically saves changes that you make in your files.

For example, to set a file watcher to run gofmt, open settings by pressing Ctrl+Alt+S and navigate to Tools | File Watchers , click the Add button and select gofmt. In the New Watcher dialog, click OK.

How do I see the results of static analysis tools in the editor?

Results of static analysis tools are displayed in the Output tab of the Run tool window.

You can use the built-in or external (like golang-ci) static analysis tool.

The Output tab of the Run tool window

How do I change the output directory of the application binary (go build -o)?

Navigate to Run | Edit configurations , click the run/debug configuration that you use to run your application. In the Output directory field, specify the path that you want to use as the output directory of the application binary.

Alternatively, open your run/debug configuration and specify -o directory_path in the Go tool arguments field.

Change the output directory of the application binary

How do I provide arguments to `go build` and `go test` commands?

Navigate to Run | Edit configurations , click the run/debug configuration that you use to run your application or your tests. In the Go tool arguments field, type a space-separated list of arguments that you want to use with go build or go test.

If you need to set build constraints, open settings by pressing Ctrl+Alt+S and navigate to Go | Build Tags & Vendoring . For more information about possible build constraints, see Build Constraints at golang.org.

Working with projects

How do I open a VSCode project in GoLand?

Navigate to File | Open , select the folder that you want to add, and click Open.

What's the difference between workspaces and projects?

The main difference is that a workspace can contain multiple projects. In Visual Studio Code, you add multiple projects as roots to your workspace (see Multi-root Workspaces in the Visual Studio Code documentation).

GoLand does not use a workspace concept. To have a multi-root structure in GoLand, you need to define projects that you want to add as content roots (see How can I open several projects in GoLand simultaneously?).

If you have only one project in your workspace, these two concepts have no differences.

How can I open several projects in GoLand simultaneously?

You can add any number of directories as content roots. To add a content root, open settings by pressing Ctrl+Alt+S and navigate to Settings | Project structure | Add Content Root .

Another way is to click File | Open , select the folder of a project that you want to add, and click Open. In the popup window, select Attach.

How do I change the Go SDK for my project?

You can either download Go SDK from the official repository or navigate to your local copy.

Open settings by pressing Ctrl+Alt+S and navigate to Go | GOROOT . Click the Add button. To navigate to your local copy of Go SDK, select Local. To download Go SDK, click Download.

How do I change the GOPATH variable for my project?

Open settings by pressing Ctrl+Alt+S and navigate to Go | GOPATH . Depending on the scope that you want to apply, select the corresponding section (Global GOPATH, Project GOPATH, Module GOPATH) and click the Add button the Add button. Navigate to the directory that you want to associate with GOPATH.

You can configure GOPATH for the following scopes: Global, Project, and Module. If you specified all three scopes, GoLand selects the narrowest scope first.

How do I run or debug my application?

To run or debug your application, you can use the following approaches:

  • In the left gutter of the editor, click the Run application icon the Run Application icon and select Run <method_name> in <file_name> or Debug <method_name> in <file_name>.

  • Right-click the opened file or a method in the editor and select Run <method_name> in <file_name> Ctrl+Shift+F10 or Debug <method_name> in <file_name> Shift+F9 .

  • Create a run/debug configuration. For more information about run/debug configurations, see Create a run/debug configuration.

How do I view dependencies for my project in the same window?

You can create a diagram with all the dependencies in the project. Right-click the go.mod file in your project and select Diagrams | Show Diagram .

To ensure that Go modules are enabled in the project, open settings by pressing Ctrl+Alt+S and navigate to Go | Go modules . Ensure that the Enable Go modules integration checkbox is selected.

How do I close a project?

Click File | Close Project .

How do I start with VCS integration?

VCS integration enables automatically.

To enable VCS integration manually, click VCS | Enable Version Control Integration . In the Enable Version Control Integration dialog, select the VCS that you want to use and click OK.

Working with the code editor

Can I use the VSCode key bindings in GoLand?

Install the VS Code Keymap plugin.

To install the VS Code Keymap plugin, use one of the following approaches:

  • You can download the plugin from plugins.jetbrains.com by using the following link: https://plugins.jetbrains.com/plugin/12062-vs-code-keymap/.

  • Open settings by pressing Ctrl+Alt+S and navigate to Plugins . In the search field, type VS Code Keymap. Find VS Code Keymap by JetBrains and click Install.

How do I see the documentation on a mouseover?

Hover the cursor over the code element to see documentation on it.

Documentation on mouse over

How does code completion in GoLand work?

By default, GoLand displays the code completion popup automatically as you type. Alternatively, you can press Ctrl+Space or select Code | Completion | Basic from the main menu.

How can I use multiple carets/cursors?

To add or remove multiple carets, press and hold Shift+Alt and click at the next location of the caret.

Alternatively, to add multiple carets, you can press Ctrl twice, and then without releasing it, press the Up or Down arrow keys. You can also make a multiple selection by pressing Ctrl and dragging the caret.

How can I select and rename multiple elements at once?

In the editor, select an element you want to rename and press Shift+F6 . Alternatively, select Refactor | Rename from the main menu.

Use the Rename refactoring to change names of symbols, files, and all the references to them throughout code.

What are the automated code refactoring tools available?

The full list of refactorings for the current context is available under the Refactor menu item.

  • Change signature changes the method or function name; adds, removes, and reorders parameters; assigns default values to new non-variadic parameters.

  • Extract refactorings extracts code fragments that can be grouped. You can extract a constant, a variable, a method, and an interface.

  • Inline refactoring moves an extracted code fragment to the calling code. An opposite to the Extract refactoring.

  • Copy refactoring copies a file, a directory, or a package to a different directory or a package.

  • Move refactoring moves source code sections to another package or a file. For example, you can use the Move refactoring to move methods to another package.

Are there any special code analysis features in GoLand?

GoLand supports gotest, gocheck, and gobench. By using these packages, you can ensure that the behavior of your code is correct and expected.

You can use profiling to get a performance analysis of your tests and benchmarks. During profiling, you see the CPU and memory usage, the frequency and duration of function and method calls. For more information about profiling, see Profiling for tests.

Using plugins

How do I find the plugin that I need?

Open settings by pressing Ctrl+Alt+S and navigate to Plugins . In the search field, type a plugin or technology name. Press Enter to start searching.

Alternatively, you can search for a plugin at plugins.jetbrains.com and install it manually.

How do I install the plugin that I have available on my computer?

In the Settings/Preferences dialog Ctrl+Alt+S , select Plugins and click Install Plugin from Disk. Select the plugin archive file and click OK. Restart the IDE if prompted.

I'd like to write a plugin for GoLand. Are there any instructions?

You can use any edition of GoLand to develop plugins. It provides an open API, a dedicated SDK, module, and run/debug configurations to help you.

The recommended workflow is to use Gradle. For more information, see the IntelliJ Platform SDK Developer Guide.

Can I use Visual Studio Code plugins in GoLand?

No, but you can find a similar plugin in the plugin marketplace. For details, see How do I find the plugin that I need?.

Last modified: 18 October 2020