-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
The Go ecosystem provides many tools to make Go development more productive and seamless. Document the availability of the editor plugins and IDEs, add an overview of feature support and screencasts. Updates golang#20398. Updates golang#20402. Updates golang#20399. Updates golang#20401. Updates golang#20569. Change-Id: I0c6cb48eb4e3848807aaad78390493e14f097916 Reviewed-on: https://go-review.googlesource.com/45772 Reviewed-by: Steve Francia <spf@golang.org>
- Loading branch information
Showing
5 changed files
with
216 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,210 @@ | ||
<!--{ | ||
"Title": "Editor plugins and IDEs", | ||
"Template": true | ||
}--> | ||
|
||
<h2 id="introduction">Introduction</h2> | ||
|
||
<p> | ||
This document lists commonly used editor plugins and IDEs from the Go ecosystem | ||
that makes Go development more productive and seamless. | ||
A comphensive list of editor support and IDEs for Go development is available on | ||
<a href="http://golang.org/wiki/IDEsAndTextEditorPlugins">the wiki</a>. | ||
</p> | ||
|
||
<h2 id="options">Options</h2> | ||
<p> | ||
The Go ecosystem provides a variety of editor plugins and IDEs to enhance your day-to-day | ||
editing, navigation, testing, and debugging experience. | ||
</p> | ||
|
||
<ul> | ||
<li><a href="https://github.com/fatih/vim-go">Vim Go</a>: a plugin for Vim to provide Go programming language support</li> | ||
<li><a href="https://marketplace.visualstudio.com/items?itemName=lukehoban.Go">Visual Studio Code Go</a>: | ||
an extension for Visual Studio Code to provide support for the Go programming language</li> | ||
<li><a href="https://www.jetbrains.com/go">Gogland</a>: Gogland is distributed either as standalone IDE | ||
or a plugin for the IntelliJ Platform IDEs</li> | ||
</ul> | ||
|
||
<p> | ||
Note that these are only a few top solutions, a more comphensive | ||
community maintained list of | ||
<a href="https://github.com/golang/go/wiki/IDEsAndTextEditorPlugins">IDEs and text editor plugins</a> | ||
is available at the wiki. | ||
</p> | ||
|
||
<p> | ||
Each development environment provides a large variety of static and dynamic tool integrations. | ||
The following feature matrix lists and compares the most significant features. | ||
</p> | ||
|
||
<table class="features-matrix"> | ||
<tr> | ||
<th></th> | ||
<th><img title="Vim Go" src="/doc/editors/vimgo.png"><br>Vim Go</th> | ||
<th><img title="Visual Studio Code" src="/doc/editors/vscodego.png"><br>Visual Studio Code Go</th> | ||
<th><img title="Gogland" src="/doc/editors/gogland.png"><br>Gogland</th> | ||
</tr> | ||
<tr> | ||
<td class="feature-row" colspan="4">Editing features</td> | ||
</tr> | ||
<tr> | ||
<td>Build and run from the editor/IDE</td> | ||
<td class="yes">Yes</td> | ||
<td class="yes">Yes</td> | ||
<td class="yes">Yes</td> | ||
</tr> | ||
<tr> | ||
<td>Autocompletion of identifers (variable, method, and function names)</td> | ||
<td class="yes">Yes</td> | ||
<td class="yes">Yes</td> | ||
<td class="yes">Yes</td> | ||
</tr> | ||
<tr> | ||
<td>Autocompletion based on type</td> | ||
<td class="no">No</td> | ||
<td class="no">No</td> | ||
<td class="yes">Yes</td> | ||
</tr> | ||
<tr> | ||
<td>Rename identifiers</td> | ||
<td class="yes">Yes</td> | ||
<td class="yes">Yes</td> | ||
<td class="yes">Yes</td> | ||
</tr> | ||
<tr> | ||
<td>Auto format, build, vet, and lint on save</td> | ||
<td class="yes">Yes</td> | ||
<td class="yes">Yes</td> | ||
<td class="yes">Yes<sup>1</sup></td> | ||
</tr> | ||
<tr> | ||
<td>Auto insert import paths and remove unused on save</td> | ||
<td class="yes">Yes</td> | ||
<td class="yes">Yes</td> | ||
<td class="yes">Yes<sup>2</sup></td> | ||
</tr> | ||
<tr> | ||
<td>Auto generate JSON, XML tags for struct fields</td> | ||
<td class="yes">Yes</td> | ||
<td class="yes">Yes</td> | ||
<td class="yes">Yes</td> | ||
</tr> | ||
<tr> | ||
<td class="feature-row" colspan="4">Navigation features</td> | ||
</tr> | ||
<tr> | ||
<td>Display documentation inline, or open godoc in browser</td> | ||
<td class="yes">Yes</td> | ||
<td class="yes">Yes</td> | ||
<td class="yes">Yes</td> | ||
</tr> | ||
<tr> | ||
<td>Switch between <code>*.go</code> and <code>*_test.go</code> file</td> | ||
<td class="yes">Yes</td> | ||
<td class="yes">Yes</td> | ||
<td class="yes">Yes</td> | ||
</tr> | ||
<tr> | ||
<td>Jump to definition and referees</td> | ||
<td class="yes">Yes</td> | ||
<td class="yes">Yes</td> | ||
<td class="yes">Yes</td> | ||
</tr> | ||
<tr> | ||
<td>Look up for interface implementations</td> | ||
<td class="yes">Yes</td> | ||
<td class="yes">Yes</td> | ||
<td class="yes">Yes</td> | ||
</tr> | ||
<tr> | ||
<td>Search for callers and callees</td> | ||
<td class="yes">Yes</td> | ||
<td class="yes">Yes</td> | ||
<td class="yes">Yes</td> | ||
</tr> | ||
<tr> | ||
<td class="feature-row" colspan="4">Testing and debugging features</td> | ||
</tr> | ||
<tr> | ||
<td>Debugger support</td> | ||
<td class="no">No</td> | ||
<td class="yes">Yes</td> | ||
<td class="yes">Yes</td> | ||
</tr> | ||
<tr> | ||
<td>Run a single test case, all tests from file, or all tests from a package</td> | ||
<td class="yes">Yes</td> | ||
<td class="yes">Yes</td> | ||
<td class="yes">Yes</td> | ||
</tr> | ||
<tr> | ||
<td>Auto generate tests for packages, files and identifiers</td> | ||
<td class="no">No</td> | ||
<td class="yes">Yes</td> | ||
<td class="no">No</td> | ||
</tr> | ||
<tr> | ||
<td>Debug tests</td> | ||
<td class="no">No</td> | ||
<td class="yes">Yes</td> | ||
<td class="yes">Yes</td> | ||
</tr> | ||
<tr> | ||
<td>Display test coverage</td> | ||
<td class="yes">Yes</td> | ||
<td class="yes">Yes</td> | ||
<td class="yes">Yes</td> | ||
</tr> | ||
<tr class="download"> | ||
<td></td> | ||
<td><a href="https://github.com/fatih/vim-go">Install<a/></td> | ||
<td><a href="https://marketplace.visualstudio.com/items?itemName=lukehoban.Go">Install<a/></td> | ||
<td><a href="https://www.jetbrains.com/go">Install<a/></td> | ||
</tr> | ||
</table> | ||
|
||
<p> | ||
<sup>1</sup>: Possible when enabled via Settings > Go > On Save, go vet and golint are available via plugins. Also runs tests on save if configured. | ||
<br> | ||
<sup>2</sup>: Additionally, user input can disambiguate when two or more options are available. | ||
</p> | ||
|
||
</div> | ||
|
||
<style> | ||
.features-matrix { | ||
min-width: 800px; | ||
border-collapse: collapse; | ||
} | ||
.features-matrix th { | ||
width: 60px; | ||
text-align: center; | ||
font-size: 14px; | ||
color: #666; | ||
} | ||
.features-matrix th img { | ||
width: 48px; | ||
} | ||
.features-matrix .yes { | ||
text-align: center; | ||
} | ||
.features-matrix .no { | ||
text-align: center; | ||
background-color: #ffe9e9; | ||
} | ||
.features-matrix .download { | ||
font-weight: bold; | ||
text-align: center; | ||
} | ||
.features-matrix td { | ||
padding: 11px 5px 11px 5px; | ||
border-bottom: solid 1px #ebebeb; | ||
} | ||
.features-matrix .feature-row { | ||
background-color: #ebebeb; | ||
font-weight: bold; | ||
} | ||
</style> | ||
|
||
<!--TODO(jbd): Add the Atom comparison--> |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.