FAQ about GoLand
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.
What are Early Access Program (EAP) and nightly builds?
What is the Early Access Program?
The Early Access Program lets you try out the features and enhancements in GoLand that are being developed for the next GoLand version release. These EAP features are often so new, in fact, that they are still works in progress.
EAP builds are not fully tested and might be unstable. By using EAP builds and their new features in your real-world projects and scenarios, you can help us polish them before the releases and help us and our users avoid any nasty surprises.
The EAP lets you try out the newest features as they become available.
EAP builds don’t require an active subscription, and each is free to use for 30 days from its release date.
EAP builds are available for download from the website, via the ToolBox App, directly from the IDE, and as a snap package (for Ubuntu).
We provide EAP builds until the stable release candidate is ready.
In each release cycle, we reward the most active evaluators with a free 1-year GoLand subscription and branded merchandise.
What are nightly builds?
Nightly builds are a special subcategory of the EAP program, and are released almost every day. They include the most recent changes, but they have not yet been tested at all.
The quality of nightly builds is usually below the standards of our official EAP builds.
Nightly builds do not come with release notes or blog post announcements.
During the EAP, nightly builds are free for everyone to use for 30 days after the build date. Once the EAP is over, you need to have an active GoLand license to use them.
Nightly builds are only available via the ToolBox application.
How to get GoLand for free or at a discount?
Free individual licenses are available for students, faculty members, and core contributors to open source projects.
Free individual licenses for students and faculty members: see who can apply for free licenses and how you can do that.
Free Open Source Licenses: see application terms, license terms, and restrictions.
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?
Though main functionality is the same, still there are some differences:
IntelliJ IDEA Ultimate
Location of Go settings
Top level of the settings page.
Inside the Languages & Frameworks menu item.
Some plugins for Go development are not bundled, you need to install them manually
Some plugins are not compatible between GoLand and IntelliJ IDEA Ultimate (for example, the GoLand Help plugin).
To attach a folder, you navigate to Attach. You can manage the project structure in the Project Structure menu. For more information about working with a project structure, see Content root.and then click
To attach a folder you need to add it as a module. For more information about modules in IntelliJ IDEA Ultimate, see the Modules topic in the IntelliJ IDEA documentation.
Prebuilt indexes for Go SDK
Shipped with GoLand
Location of the IML file
GoLand stores all the settings files in the .idea directory.
When you create a Go project in IntelliJ IDEA, you can specify a directory for the .iml file. By default, it is the root directory of the project. For more information about changing the directory for the .iml file, see Change the IML file location for Go projects in IntelliJ IDEA.
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?
How to leave feedback or submit a bug?
The Support and assistance topic describes how to leave feedback, report a bug, or submit a feature request.
Youtrack issues for GoLand: log in to your JetBrains account and click New issue.
Requests in the JetBrains Support Center: click the Submit a request button that is at the top of the main page.
Twitter: tweet us about your problem. Mention @GoLandIDE in your tweet.
firstname.lastname@example.org: email our team about your problem. Describe your problem, and attach all available materials that can speed up troubleshooting (code samples, screenshots, logs, animations, videos, and other materials).
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
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 ).
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.
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.
Also, you can use On code reformat option ( , click Other tab). This option lets you invoke both formatters by pressing Ctrl+Alt+L whenever you want.
Alternatively, use the Reformat code option in Actions on Save. This action is enabled by default for GoLand. When triggered by pressing Ctrl+S, the IDE runs the built-in GoLand formatter and gofmt.
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.
How do I change the output directory of the application binary (go build -o)?
Navigate to Output directory field, specify the path that you want to use as the output directory of the application binary., click the run/debug configuration that you use to run your application. In the
Alternatively, open your run/debug configuration and specify
-o directory_path in the Go tool arguments field.
Run/debug configurations: read more about run/debug configurations and how to use them.
How do I provide arguments to `go build` and `go test` commands?
Navigate to Go tool arguments field, type a space-separated list of arguments that you want to use with
go build or
If you need to set build constraints, open settings by pressing Ctrl+Alt+S and navigate to Build Constraints at golang.org.. For more information about possible build constraints, see
How to add test flags like '-race', '-failfast', '-short', and others
Navigate to Go tool arguments field, specify a flag that you plan to use:, click the run/debug configuration that you use to run your application or your tests. In the
-race: enables data race detection. Supported only on
linux/arm64(only for 48-bit VMA).
-test.failfast: stops new tests after the first test failure.
-test.short: shortens run time of long-running tests.
-test.benchmem: prints memory allocation statistics for benchmarks.
Check other flags in the Go documentation at pkg.go.dev.
How to change the name of a compiled binary?
Navigate to Go tool arguments field, specify
Working with projects
How do I open a VSCode project in GoLand?
Navigate to Open., select the folder that you want to add, and click
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.
Another way is to click Open. In the popup window, select Attach., select the folder of a project that you want to add, and click
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 Add button. To navigate to your local copy of Go SDK, select Local. To download Go SDK, click Download.. Click the
Configuring GOROOT and GOPATH: a help page that shows you how to set GOROOT and GOPATH in GoLand.
How do I change the GOPATH variable for my project?
Open settings by pressing Ctrl+Alt+S and navigate to Add button . Navigate to the directory that you want to associate with GOPATH.. Depending on the scope that you want to apply, select the corresponding section (Global GOPATH, Project GOPATH, Module GOPATH) and click the
You can configure GOPATH for the following scopes: Global, Project, and Module. If you specified all three scopes, GoLand selects the narrowest scope first.
Configuring GOROOT and GOPATH: a help page that shows you how to set GOROOT and GOPATH in GoLand.
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 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 .
To ensure that Go modules are enabled in the project, open settings by pressing Ctrl+Alt+S and navigate to Enable Go modules integration checkbox is selected.. Ensure that the
Create a diagram of dependencies: see the animation that shows how to create a diagram of dependencies.
How do I close a project?
How do I start with VCS integration?
VCS integration enables automatically.
To enable VCS integration manually, click Enable Version Control Integration dialog, select the VCS that you want to use and click OK.. In the
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. 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.
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.
Code completion: read about other types of code completion and how you can use them.
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.
Multiple cursors and selection ranges: learn about other cases of multiple caret usage.
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, selectfrom the main menu.
Use the Rename refactoring to change names of symbols, files, and all the references to them throughout code.
Rename refactorings: see the topic for more features of the Rename refactoring.
What are the automated code refactoring tools available?
The full list of refactorings for the current context is available under themenu 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.
Code refactoring: see the section to learn more about the mentioned refactorings.
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.
How to disable code folding for one-line returns/panics and formatted strings?
Open settings by pressing Ctrl+Alt+S and navigate to Go section, clear all or some of the checkboxes that toggle code folding.. In the
How do I find the plugin that I need?
Open settings by pressing Ctrl+Alt+S and navigate to. In the search field, type a plugin or technology name. Press Enter to start searching.
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?.