GoLand 2021.1 Help

Go tools


With gofmt, you can format Go source code in the opened file or in the whole Go project.

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.

  1. To format code in the opened file, go to Tools | Go Tools | Go fmt file.

  2. To format code in the current project, go to Tools | Go Tools | Go fmt project.

  3. To format code before you commit your changes into VCS, select the Go fmt checkbox. For more information about committing your changes, see Commit and push changes to Git repository.

    Example of the go fmt tool


With goimports, you can automatically update your Go import lines (add missing and remove unreferenced imports).

  1. If your project does not have goimports, click the go get goimports link in the Goimports file notification window. Otherwise, open the Terminal tool window (View | Tool Windows | Terminal), and type the following command to install goimports: go get golang.org/x/tools/cmd/goimports. Press Enter.

  2. To add missing imports, navigate to Tools | Go Tools and click Goimports file.

    Example of goimports

go generate

The go generate uses the //go:generate directive to define and invoke the code generation. For more information about go generate, see Generating code at blog.golang.org.

  1. Add the following line to your Go code: //go:generate command arguments (for example, //go:generate stringer -type=Pill)

  2. Click Tools | Go Tools | Go generate file. Alternatively, click the Run icon (the Run icon) on the gutter and select Go Generate.

    Example of go generate

go vet

The go vet command examines Go source code and reports suspicious constructs.

  • To find possible bugs or suspicious constructs with go vet, click Tools | Go Tools | Go vet file. You can see the result of code analysis in the Terminal tool window.

    Example of go vet
Last modified: 08 March 2021