summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaana Burcu Dogan <jbd@google.com>2017-06-14 12:41:14 -0700
committerJaana Burcu Dogan <jbd@google.com>2017-07-19 21:38:16 +0000
commit77ee861ca208fd7f5a674ac0c442f92009ae42d7 (patch)
tree28ba1eca23660f288cfd7ccc4cbddc0667b0c4c3
parentffd5687a8217e6829d2248dd0698f18c0e128ac2 (diff)
downloadgo-git-77ee861ca208fd7f5a674ac0c442f92009ae42d7.tar.gz
doc: add an editor guide
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 #20398. Updates #20402. Updates #20399. Updates #20401. Updates #20569. Change-Id: I0c6cb48eb4e3848807aaad78390493e14f097916 Reviewed-on: https://go-review.googlesource.com/45772 Reviewed-by: Steve Francia <spf@golang.org>
-rw-r--r--doc/docs.html6
-rw-r--r--doc/editors.html210
-rw-r--r--doc/editors/gogland.pngbin0 -> 9430 bytes
-rw-r--r--doc/editors/vimgo.pngbin0 -> 7591 bytes
-rw-r--r--doc/editors/vscodego.pngbin0 -> 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 &gt; Go &gt; 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
new file mode 100644
index 0000000000..842f089e4a
--- /dev/null
+++ b/doc/editors/gogland.png
Binary files differ
diff --git a/doc/editors/vimgo.png b/doc/editors/vimgo.png
new file mode 100644
index 0000000000..cf317eff32
--- /dev/null
+++ b/doc/editors/vimgo.png
Binary files differ
diff --git a/doc/editors/vscodego.png b/doc/editors/vscodego.png
new file mode 100644
index 0000000000..4e6c7b8047
--- /dev/null
+++ b/doc/editors/vscodego.png
Binary files differ