...
Run Format

Editor plugins and IDEs

Introduction

This document lists commonly used editor plugins and IDEs from the Go ecosystem that make Go development more productive and seamless. A comprehensive list of editor support and IDEs for Go development is available at the wiki.

Options

The Go ecosystem provides a variety of editor plugins and IDEs to enhance your day-to-day editing, navigation, testing, and debugging experience.

Note that these are only a few top solutions; a more comphensive community-maintained list of IDEs and text editor plugins is available at the Wiki.

Each development environment integrates a number of Go-specific tools. The following feature matrix lists and compares the most significant features.


vim

Visual Studio Code

Gogland

Atom
Editing features
Build and run from the editor/IDE Yes Yes Yes Yes
Autocompletion of identifers (variable, method, and function names) Yes Yes Yes Yes
Type-aware autocompletion No No Yes No
Rename identifiers Yes Yes Yes Yes
Auto format, build, vet, and lint on save Yes Yes Yes1 Yes
Auto insert import paths and remove unused on save Yes Yes Yes2 Yes
Auto generate JSON, XML tags for struct fields Yes Yes Yes Yes
Navigation features
Display documentation inline, or open godoc in browser Yes Yes Yes Yes
Switch between *.go and *_test.go file Yes Yes Yes No
Jump to definition and referees Yes Yes Yes Yes
Look up for interface implementations Yes Yes Yes Yes
Search for callers and callees Yes Yes Yes Yes
Testing and debugging features
Debugger support No Yes Yes Yes3
Run a single test case, all tests from file, or all tests from a package Yes Yes Yes No
Auto generate tests for packages, files and identifiers No Yes No No
Debug tests No Yes Yes Yes3
Display test coverage Yes Yes Yes Yes
Install Install Install Install

1Possible when enabled via Settings > Go > On Save, go vet and golint are available via plugins. Also runs tests on save if configured.
2Additionally, user input can disambiguate when two or more options are available.
3Available if the go-debug package is installed.