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 &gt; Go &gt; 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>