diff options
-rw-r--r-- | doc/docs.html | 6 | ||||
-rw-r--r-- | doc/editors.html | 210 | ||||
-rw-r--r-- | doc/editors/gogland.png | bin | 0 -> 9430 bytes | |||
-rw-r--r-- | doc/editors/vimgo.png | bin | 0 -> 7591 bytes | |||
-rw-r--r-- | doc/editors/vscodego.png | bin | 0 -> 3373 bytes |
5 files changed, 216 insertions, 0 deletions
diff --git a/doc/docs.html b/doc/docs.html index 1ccd1f3fe7..92392e2596 100644 --- a/doc/docs.html +++ b/doc/docs.html @@ -57,6 +57,12 @@ explains how to use the <a href="/cmd/go/">go command</a> to fetch, build, and install packages, commands, and run tests. </p> +<h3 id="editors"><a href="editors.html">Editor plugins and IDEs</a></h3> +<p> +A document that summarizes commonly used editor plugins and IDEs with +Go support. +</p> + <h3 id="effective_go"><a href="effective_go.html">Effective Go</a></h3> <p> A document that gives tips for writing clear, idiomatic Go code. diff --git a/doc/editors.html b/doc/editors.html new file mode 100644 index 0000000000..dd74446d7b --- /dev/null +++ b/doc/editors.html @@ -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-->
\ No newline at end of file diff --git a/doc/editors/gogland.png b/doc/editors/gogland.png Binary files differnew file mode 100644 index 0000000000..842f089e4a --- /dev/null +++ b/doc/editors/gogland.png diff --git a/doc/editors/vimgo.png b/doc/editors/vimgo.png Binary files differnew file mode 100644 index 0000000000..cf317eff32 --- /dev/null +++ b/doc/editors/vimgo.png diff --git a/doc/editors/vscodego.png b/doc/editors/vscodego.png Binary files differnew file mode 100644 index 0000000000..4e6c7b8047 --- /dev/null +++ b/doc/editors/vscodego.png |