github.com/MangoDowner/go-gm@v0.0.0-20180818020936-8baa2bd4408c/doc/editors.html (about) 1 <!--{ 2 "Title": "Editor plugins and IDEs", 3 "Template": true 4 }--> 5 6 <h2 id="introduction">Introduction</h2> 7 8 <p> 9 This document lists commonly used editor plugins and IDEs from the Go ecosystem 10 that make Go development more productive and seamless. 11 A comprehensive list of editor support and IDEs for Go development is available at 12 <a href="http://golang.org/wiki/IDEsAndTextEditorPlugins">the wiki</a>. 13 </p> 14 15 <h2 id="options">Options</h2> 16 <p> 17 The Go ecosystem provides a variety of editor plugins and IDEs to enhance your day-to-day 18 editing, navigation, testing, and debugging experience. 19 </p> 20 21 <ul> 22 <li><a href="https://github.com/fatih/vim-go">vim</a>: vim-go plugin provides Go programming language support</li> 23 <li><a href="https://marketplace.visualstudio.com/items?itemName=lukehoban.Go">Visual Studio Code</a>: 24 Go extension provides support for the Go programming language</li> 25 <li><a href="https://www.jetbrains.com/go">Gogland</a>: Gogland is distributed either as a standalone IDE 26 or as a plugin for the commercial IntelliJ Platform IDEs</li> 27 <li><a href="https://atom.io/packages/go-plus">Atom</a>: Go-Plus is an Atom package that provides enhanced Go support</li> 28 </ul> 29 30 <p> 31 Note that these are only a few top solutions; a more comphensive 32 community-maintained list of 33 <a href="https://github.com/golang/go/wiki/IDEsAndTextEditorPlugins">IDEs and text editor plugins</a> 34 is available at the Wiki. 35 </p> 36 37 <p> 38 Each development environment integrates a number of Go-specific tools. 39 The following feature matrix lists and compares the most significant features. 40 </p> 41 42 <table class="features-matrix"> 43 <tr> 44 <th></th> 45 <th><img title="Vim Go" src="/doc/editors/vimgo.png"><br>vim</th> 46 <th><img title="Visual Studio Code" src="/doc/editors/vscodego.png"><br>Visual Studio Code</th> 47 <th><img title="Gogland" src="/doc/editors/gogland.png"><br>Gogland</th> 48 <th><img title="Go-Plus" src="/doc/editors/go-plus.png"><br>Atom</th> 49 </tr> 50 <tr> 51 <td class="feature-row" colspan="5">Editing features</td> 52 </tr> 53 <tr> 54 <td>Build and run from the editor/IDE</td> 55 <td class="yes">Yes</td> 56 <td class="yes">Yes</td> 57 <td class="yes">Yes</td> 58 <td class="yes">Yes</td> 59 </tr> 60 <tr> 61 <td>Autocompletion of identifers (variable, method, and function names)</td> 62 <td class="yes">Yes</td> 63 <td class="yes">Yes</td> 64 <td class="yes">Yes</td> 65 <td class="yes">Yes</td> 66 </tr> 67 <tr> 68 <td>Type-aware autocompletion</td> 69 <td class="no">No</td> 70 <td class="no">No</td> 71 <td class="yes">Yes</td> 72 <td class="no">No</td> 73 </tr> 74 <tr> 75 <td>Rename identifiers</td> 76 <td class="yes">Yes</td> 77 <td class="yes">Yes</td> 78 <td class="yes">Yes</td> 79 <td class="yes">Yes</td> 80 </tr> 81 <tr> 82 <td>Auto format, build, vet, and lint on save</td> 83 <td class="yes">Yes</td> 84 <td class="yes">Yes</td> 85 <td class="yes">Yes<sup>1</sup></td> 86 <td class="yes">Yes</td> 87 </tr> 88 <tr> 89 <td>Auto insert import paths and remove unused on save</td> 90 <td class="yes">Yes</td> 91 <td class="yes">Yes</td> 92 <td class="yes">Yes<sup>2</sup></td> 93 <td class="yes">Yes</td> 94 </tr> 95 <tr> 96 <td>Auto generate JSON, XML tags for struct fields</td> 97 <td class="yes">Yes</td> 98 <td class="yes">Yes</td> 99 <td class="yes">Yes</td> 100 <td class="yes">Yes</td> 101 </tr> 102 <tr> 103 <td class="feature-row" colspan="5">Navigation features</td> 104 </tr> 105 <tr> 106 <td>Display documentation inline, or open godoc in browser</td> 107 <td class="yes">Yes</td> 108 <td class="yes">Yes</td> 109 <td class="yes">Yes</td> 110 <td class="yes">Yes</td> 111 </tr> 112 <tr> 113 <td>Switch between <code>*.go</code> and <code>*_test.go</code> file</td> 114 <td class="yes">Yes</td> 115 <td class="yes">Yes</td> 116 <td class="yes">Yes</td> 117 <td class="yes">No</td> 118 </tr> 119 <tr> 120 <td>Jump to definition and referees</td> 121 <td class="yes">Yes</td> 122 <td class="yes">Yes</td> 123 <td class="yes">Yes</td> 124 <td class="yes">Yes</td> 125 </tr> 126 <tr> 127 <td>Look up for interface implementations</td> 128 <td class="yes">Yes</td> 129 <td class="yes">Yes</td> 130 <td class="yes">Yes</td> 131 <td class="yes">Yes</td> 132 </tr> 133 <tr> 134 <td>Search for callers and callees</td> 135 <td class="yes">Yes</td> 136 <td class="yes">Yes</td> 137 <td class="yes">Yes</td> 138 <td class="yes">Yes</td> 139 </tr> 140 <tr> 141 <td class="feature-row" colspan="5">Testing and debugging features</td> 142 </tr> 143 <tr> 144 <td>Debugger support</td> 145 <td class="no">No</td> 146 <td class="yes">Yes</td> 147 <td class="yes">Yes</td> 148 <td class="yes">Yes<sup>3</sup></td> 149 150 </tr> 151 <tr> 152 <td>Run a single test case, all tests from file, or all tests from a package</td> 153 <td class="yes">Yes</td> 154 <td class="yes">Yes</td> 155 <td class="yes">Yes</td> 156 <td class="no">No</td> 157 </tr> 158 <tr> 159 <td>Auto generate tests for packages, files and identifiers</td> 160 <td class="no">No</td> 161 <td class="yes">Yes</td> 162 <td class="no">No</td> 163 <td class="no">No</td> 164 </tr> 165 <tr> 166 <td>Debug tests</td> 167 <td class="no">No</td> 168 <td class="yes">Yes</td> 169 <td class="yes">Yes</td> 170 <td class="yes">Yes<sup>3</sup></td> 171 </tr> 172 <tr> 173 <td>Display test coverage</td> 174 <td class="yes">Yes</td> 175 <td class="yes">Yes</td> 176 <td class="yes">Yes</td> 177 <td class="yes">Yes</td> 178 </tr> 179 <tr class="download"> 180 <td></td> 181 <td><a href="https://github.com/fatih/vim-go">Install<a/></td> 182 <td><a href="https://marketplace.visualstudio.com/items?itemName=lukehoban.Go">Install<a/></td> 183 <td><a href="https://www.jetbrains.com/go">Install<a/></td> 184 <td><a href="https://atom.io/packages/go-plus">Install</a></td> 185 </tr> 186 </table> 187 188 <p> 189 <sup>1</sup>Possible when enabled via Settings > Go > On Save, <code>go</code> <code>vet</code> and <code>golint</code> are available via plugins. Also runs tests on save if configured. 190 <br> 191 <sup>2</sup>Additionally, user input can disambiguate when two or more options are available. 192 <br> 193 <sup>3</sup>Available if the <a href="https://atom.io/packages/go-debug">go-debug</a> package is installed. 194 </p> 195 196 </div> 197 198 <style> 199 .features-matrix { 200 min-width: 800px; 201 border-collapse: collapse; 202 } 203 .features-matrix th { 204 width: 60px; 205 text-align: center; 206 font-size: 14px; 207 color: #666; 208 } 209 .features-matrix th img { 210 width: 48px; 211 } 212 .features-matrix .yes { 213 text-align: center; 214 } 215 .features-matrix .no { 216 text-align: center; 217 background-color: #ffe9e9; 218 } 219 .features-matrix .download { 220 font-weight: bold; 221 text-align: center; 222 } 223 .features-matrix td { 224 padding: 11px 5px 11px 5px; 225 border-bottom: solid 1px #ebebeb; 226 } 227 .features-matrix .feature-row { 228 background-color: #ebebeb; 229 font-weight: bold; 230 } 231 </style>