GoLand 2025.1 Help

FAQ about GoLand

General questions

Is there a a GoLand Community Edition?

No, because it is not possible to separate GoLand's functionality into free and paid tiers. However, you can try GoLand by using a free 30-day trial or Early Access Program (pre-release) versions while they are available.

What are Early Access Program (EAP) builds?

The Early Access Program (EAP) gives you an opportunity to try out the newest features and improvements in GoLand that are being developed for the next major release. These features are often still in progress and may change before the final release.

EAP builds are not fully tested and might be unstable. By using them in real-world projects and sharing your feedback, you help us improve the final product and reduce the chance of unexpected issues in the stable release.

  • Try out new features as soon as they become available.

  • EAP builds are free to use and do not require an active subscription. Each build is valid for 30 days from its release date.

  • You can download EAP builds from the website, via the Toolbox App, from within the IDE, or as a snap package (for Ubuntu).

  • EAP builds are published until the release candidate is ready.

  • We reward the most active EAP participants each release cycle with a free 1-year GoLand subscription and branded merchandise.

How to get GoLand for free or at a discount?

If you are looking to get a a GoLand license for free or at a discounted rate, visit the following page to explore available options: Special offers. If you have any questions, feel free to contact our sales support.

Free individual licenses are available for students, faculty members, and core contributors to open source projects. For a full list of subscription and pricing options, visit the Subscription Options and Pricing page.

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?

While the core functionality is the same, there are several differences between GoLand and the Go plugin for IntelliJ IDEA Ultimate:

GoLand

IntelliJ IDEA Ultimate

Location of Go settings

Displayed at the top level of the settings dialog.

Location of Go settings

Nested under Languages & Frameworks.

Location of Go settings

Plugins

Some plugins for Go development are bundled by default (for example, the Go Template plugin).

Some Go development plugins must be installed manually.

Project management

To attach a folder, go to File | Open and click Attach. You can manage the project structure in the Project Structure dialog. For more information, refer to Content root.

To attach a folder, you need to add it as a module. For more information, refer to the Modules topic in the IntelliJ IDEA documentation.

Prebuilt indexes for Go SDK

Included

Not included

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 the Data sources topic.

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

Alongside core Go development tools, GoLand also supports JavaScript, TypeScript, Node.js, SQL, databases, Docker, Kubernetes, Terraform, OpenTofu, and other popular technologies.

How to leave feedback or submit a bug?

The Support and assistance topic explains how to share feedback, report a bug, or submit a feature request.

  • YouTrack issues for GoLand: log in to your JetBrains account and click New issue.

  • JetBrains Support Center: click the Submit a request button at the top of the page.

  • X: share your issue with us. Mention @GoLandIDE in your post.

  • goland-support@jetbrains.com: email our team with a description of the issue. Include any materials that could help us troubleshoot more efficiently, such as code samples, screenshots, logs, or videos.

Configuring Go development environment

What configuration is needed before the start?

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

If the Go SDK is already installed, GoLand will detect and use it automatically.

If the Go SDK is not detected, you can either download it from the official repository or locate the SDK directory manually, all directly within GoLand. You can do this during project creation or later in the settings.

GOROOT is automatically set to the Go SDK installation directory. This directory must include the bin and src folders.

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

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.

GoLand integrates the Go Linter plugin, bringing you support for golangci-lint. This allows you to configure your linters. You can analyze and enhance your Go code by selecting the specific checks that matter most to you. For more information, refer to Configuring golangci-lint.

Configuring golangci-lint

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

Navigate to Run | Edit Configurations, then select the run/debug configuration you use to run your application. In the Output directory field, specify the path you want to use as the output directory for the application binary.

Alternatively, open the run/debug configuration and add the -o directory_path flag 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. . For more information about possible build constraints, refer to Build Constraints at pkg.go.dev.

How to add test flags like '-race', '-failfast', '-short', and others

Navigate to Run | Edit Configurations, then select the run/debug configuration you use to run your application or tests. In the Go tool arguments field, specify the flags you want to use:

  • -race: enables data race detection. Supported only on linux/amd64, freebsd/amd64, darwin/amd64, windows/amd64, linux/ppc64le, and linux/arm64 (only for 48-bit VMA).

  • -test.failfast: stops running new tests after the first test failure.

  • -test.short: reduces the run time of long-running tests.

  • -test.benchmem: prints memory allocation statistics for benchmarks.

For more test flags, refer to the Go documentation on pkg.go.dev.

Run tests with test flags

How to change the name of a compiled binary?

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, specify -o customExecutableName.

change the name of a compiled binary

Working with projects

How do I open a VS Code project in GoLand?

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

What is the difference between workspaces and projects?

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

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

If your workspace contains only one project, the difference between these two concepts becomes negligible.

  • Content roots: learn how to work with files from several directories that do not share a common parent.

  • Managing directories: see how to attach and detach directories.

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 Project structure | Add Content Root. .

Alternatively, go to File | Open, select the folder of the project you want to add, and click Open. In the dialog that appears, choose Attach to add it to the current project.

  • Content roots: learn how to work with files from several directories that do not have a common immediate parent.

  • Managing directories: see how to attach and detach directories.

How do I change the Go SDK for my project?

You can either download the Go SDK from the official repository or specify the path to a local installation.

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

How do I run or debug my application?

To run or debug your application, you can use one of the following options:

  • In the gutter next to the code, 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 file or 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, refer to Create a run/debug configuration.

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

You can view all project dependencies in a diagram. 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. . Make sure 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?

Version control integration is enabled automatically when you open a project with a recognized VCS root.

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

  • Version control: learn how to work with version control systems in GoLand. Support for Git and Mercurial is bundled. To enable support for other VCS systems, install the corresponding plugin. For more information about plugin management, refer to Plugins.

Working with the code editor

Can I use the VS Code key bindings in GoLand?

Yes, you can use the VS Code key bindings in GoLand by installing the VS Code Keymap plugin.

To install the plugin, use one of the following methods:

How do I see the documentation on mouseover?

Hover over a code element to view its documentation.

Documentation on mouseover

How does code completion in GoLand work?

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

  • Code completion: learn more about other types of code completion and how to use them.

How can I use multiple carets/cursors?

To add or remove multiple carets, press and hold Shift+Alt and click where you want to place the next caret.

Alternatively, you can press Ctrl twice and, without releasing it, use the Up or Down arrow keys to add carets line by line. To create a rectangular selection, press Ctrl and drag the caret across multiple lines.

How can I select and rename multiple elements at once?

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

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

What are the automated code refactoring tools available?

You can view the full list of available refactorings for the current context under the Refactor menu.

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

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

  • Inline refactoring: moves an extracted code fragment back to its calling location. This is the opposite of the Extract refactoring.

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

  • Move refactoring: relocates source code elements to another package or file. For example, you can move methods to a different package.

Are there any special code analysis features in GoLand?

GoLand supports gotest, gocheck, and gobench. These packages help ensure that your code behaves correctly and as expected.

You can also use profiling to analyze the performance of your tests and benchmarks. Profiling provides insights into CPU and memory usage, and shows the frequency and duration of function and method calls. For more information, refer to Profiling for tests.

  • Testing: Learn how to create test configurations and run tests.

  • Profiling for tests: Tools for profiling your tests and benchmarks.

How to disable code folding for one-line returns/panics and formatted strings?

Open settings by pressing Ctrl+Alt+S and navigate to Editor | General | Code Folding. In the Go section, clear the checkboxes for one-line returns, panics, or formatted strings to disable their code folding.

Code folding for one-line returns, panics, and formatted strings

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 the name of the plugin or technology you are looking for. Press Enter to start the search.

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 dialog (Ctrl+Alt+S) , select Plugins, and click Install Plugin from Disk. Choose the plugin archive file and click OK. Restart the IDE if prompted.

I want 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 support, and run/debug configurations to help you get started.

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

Can I use Visual Studio Code plugins in GoLand?

No, Visual Studio Code plugins are not compatible with GoLand. However, you can often find a similar plugin in the JetBrains Plugin Marketplace. For more information, see How do I find the plugin that I need?

Last modified: 02 April 2025