{"id":21361806,"url":"https://github.com/damnwidget/anaconda_go","last_synced_at":"2025-07-13T02:32:39.881Z","repository":{"id":20483795,"uuid":"23761845","full_name":"DamnWidget/anaconda_go","owner":"DamnWidget","description":"AnacondaGO adds autocompletion, linting and IDE features for Golang to your Sublime Text 3","archived":false,"fork":false,"pushed_at":"2019-11-20T13:49:57.000Z","size":2881,"stargazers_count":37,"open_issues_count":6,"forks_count":6,"subscribers_count":12,"default_branch":"master","last_synced_at":"2024-08-07T18:43:35.393Z","etag":null,"topics":["anaconda","autocomplete","golang","sublime-text"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DamnWidget.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-09-07T14:33:08.000Z","updated_at":"2024-08-05T21:03:56.000Z","dependencies_parsed_at":"2022-07-31T21:38:08.832Z","dependency_job_id":null,"html_url":"https://github.com/DamnWidget/anaconda_go","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DamnWidget%2Fanaconda_go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DamnWidget%2Fanaconda_go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DamnWidget%2Fanaconda_go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DamnWidget%2Fanaconda_go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DamnWidget","download_url":"https://codeload.github.com/DamnWidget/anaconda_go/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225850211,"owners_count":17534067,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anaconda","autocomplete","golang","sublime-text"],"created_at":"2024-11-22T06:11:56.719Z","updated_at":"2024-11-22T06:11:57.290Z","avatar_url":"https://github.com/DamnWidget.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Join the chat at https://gitter.im/DamnWidget/anaconda](https://badges.gitter.im/DamnWidget/anaconda.svg)](https://gitter.im/DamnWidget/anaconda?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n[![GitHub release](https://img.shields.io/github/release/damnwidget/anaconda_go.svg?maxAge=3000)](https://github.com/DamnWidget/anaconda_go/releases/latest)\n[![Anaconda Compatible Version \u003e= 2.1.20](https://img.shields.io/badge/anaconda%20compatible-%3E%3D%202.1.0-blue.svg)](https://github.com/DamnWidget/anaconda)\n[![Package Control](https://img.shields.io/packagecontrol/dt/anaconda_go.svg)](https://packagecontrol.io/packages/anaconda_go)\n\n                                                  |\n      _` |  __ \\    _` |   __|   _ \\   __ \\    _` |   _` |     _` |   _ \\\n     (   |  |   |  (   |  (     (   |  |   |  (   |  (   |    (   |  (   |\n    \\__,_| _|  _| \\__,_| \\___| \\___/  _|  _| \\__,_| \\__,_|   \\__, | \\___/\n                                                             |___/\n                                                The Sublime Text 3 Go IDE\n\n[![Pledgie][pledgie-donate-image]][pledgie-donate-link]\n\nAnacondaGO adds autocompletion, linting and IDE features for Golang to your Sublime Text 3 using anaconda's asynchronous engine so it shouldn't freeze your Sublime Text ever.\n\n**Note**: AnacondaGO does not include any key binding by itself as we think that package key bindings are intrusive, anyway, we provide some key binding suggestions in this same README file.\n\n## Table of Contents\n\n* [Table of Contents](#table-of-contents)\n* [NOTICE!](#notice)\n* [Supported Platforms](#supported-platforms)\n* [Dependencies](#dependencies)\n* [Dependencies Installation](#dependencies-installation)\n* [Plugin Installation](#plugin-installation)\n  * [Install AnacondaGO plugin](#install-anacondago-plugin)\n* [Features](#features)\n  * [Implementation Status](#implementation-status)\n  * [Autocompletion](#autocompletion)\n  * [Code linting](#code-linting)\n  * [Jump to definition (goto)](#jump-to-definition-goto)\n  * [Lookup For Function Callees](#lookup-for-function-callees)\n  * [Lookup For Function Callers](#lookup-for-function-callers)\n  * [Get Function Callstack (aproximation)](#get-function-callstack-aproximation)\n  * [Dereference Pointer](#dereference-pointer)\n  * [Get Referrers](#get-referrers)\n  * [Implements](#implements)\n  * [Browse file functions](#browse-file-functions)\n  * [Browse file structures](#browse-file-structures)\n  * [Browse file declarations](#browse-file-declarations)\n  * [Browse package functions](#browse-package-functions)\n  * [Browse package structures](#browse-package-structures)\n  * [Browse package declarations](#browse-package-declarations)\n  * [Explore Packages](#explore-packages)\n  * [Symbol under the cursor analysis and navigation](#symbol-under-the-cursor-analysis-and-navigation)\n  * [Show Documentation for symbol under cursor](#show-documentation-for-symbol-under-cursor)\n* [Known Issues](#known-issues)\n* [License](#license)\n\n## NOTICE!\n\nThis project is under heavy development, please, report any issue that you found with enough useful information, a ticket that says `It does not works` does not help us and does not help you. As a rule of thumb when opening a new ticket follow the rules below:\n\n* Add your ST3 build version\n* Add your Anaconda version\n* Add your AnacondaGO version\n* Add your Go version GOPATH and GOROOT and if you are using some kind of vendorer\n* Add your Python interpreter version\n* Add your Operating System version\n* Try to be as descriptive and verbose as you can\n* Give us instructions about how to reproduce the problem\n* Add as many information about your environment as you can\n\nAnacondaGO **is not** a fork of GoSublime and it **does not** pretends to be a GoSublime in-replacement or implement the same features that GoSublime already implements. This is a brand new Golang package for Sublime Text 3 that uses it's own approach and vision.\n\n## Supported Platforms\n\nAnacondaGO has been developed and tested in GNU/Linux with excellent results. The current status in the different platforms is:\n\n   * **GNU/Linux:** Beta\n   * **OS X:** Beta\n   * **Windows:** Beta (Not tested enough)\n\n## Dependencies\n\n1. [Anaconda](https://github.com/DamnWidget/anaconda) plugin for Sublime Text 3\n2. Go\n\n## Dependencies Installation\n\nAnacondaGO will try to install all it's dependencies on start, it tries to infer your Go configuration from the system but is probably that you have to\ndefine the `anaconda_go_GOROOT` and the `anaconda_go_GOPATH` in case that AnacondaGO is not able to infer your Go settings from the system.\n\n**Note**: AnacondaGO doesn't use the embedded ST3 python interpreter, for more information about\nanaconda and the `python_interpreter` take a look at the [anaconda's official documentation](http://damnwidget.github.io/anaconda/anaconda_settings/)\n\n## Plugin Installation\n\n[Anaconda](http://github.com/DamnWidget/anaconda) will be automatically installed by *Package Control* as soon as you try to install AnacondaGO. In case that you are installing anaconda\ndirectly from the git repository, then you must clone anaconda fisrt, cd to your Sublime Text 3 *Packages* directory and clone anaocnda in there:\n\n```\ngit clone https://github.com/DamnWidget/anaconda.git anaconda\n```\n\n### Install AnacondaGO plugin\n\n1. Show the Command Palette (`cmd+shift+p` on OS X or `ctrl+shift+p` on Linux/Windows)\n2. Type `install`, then select `Package Control: Install package` from the list of options\n3. Type `anaconda_go` and press enter\n\n## Features\n\nAncondaGO implements many features using different Go tools internally. Some features require of scopes, by default, AnacondaGO will try to infer your project\nscope comparing the directory where you are editing your code on with the active `GOPATH` but the user can define whatever scope that she wish adding a list of\ncomma-separated set of packages in the `anconda_go_guru_scope` settings option.\n\n### Implementation Status\n\nSome of the features are still under development:\n\n- [x] Context sensitive autocompletion\n- [x] Invalid Syntax Checking (linting)\n- [x] Code Style Linting\n- [x] Suspicious or smelly code blocks analysis (linting)\n- [x] Redundant code blocks analysis (linting)\n- [x] Function complexity analysis (linting)\n- [x] Dead code analysis (linting)\n- [x] Inefficient data structure analysis (linting)\n- [x] File and package symbols navigation (including variables, structures and functions)\n- [x] Symbol under the cursor analysis and navigation\n- [x] Installed Packages and Standard Library packages exploration\n- [x] Helper to implement Interfaces\n- [x] Auto formating/import on file save\n- [x] Show documentation for the symbol under the cursor\n- [x] Explore Packages and Show its Documentation\n- [x] Lookup for symbol referrers\n- [x] Function call and stack analysis\n- [x] Channels analysis\n- [x] Interface implementation analysis\n- [x] Pointers analysis (static dereference)\n- [ ] Integrated Debugger?\n\n**Note**: Not all the AnacondaGO fatures are listed below, for a full list just open the *Command Palette* and write **AnacondaGO**, you will get the full list of available operations (make sure you don't do that while your cursor is over a comment or a string as many AnacondaGO commands get automatically disabled on them).\n\n### Autocompletion\n\nAutocompletion is always active and there is no configuration or keybindings related with it, to use just write code in your ST3\n\n### Code linting\n\nAnacondaGO support several linters. The linters can be deactivated setting `anaconda_go_linting` to `false` in the AnacondaGO package configuration.\n\n#### Related configuration\n\nThe default linters configuration can be check below\n\n| Linter | Description | Default Setting |\n| --- | --- |--- |\n| aligncheck | Check structs alignment | Enabled |\n| deadcode | Finds and report unused code | Enabled |\n| dupl | Finds and report potentially duplicated code | Enabled |\n| errcheck | Checks that error reports are being used | Enabled |\n| gas | Report common programming mistakes that can lead to security issues | Enabled |\n| goconst | Reports repeated strings that could be constants | Enabled |\n| gocyclo | Reports cyclomatic complexity of functions | Enabled |\n| goling | Stylistic Linter | Enabled |\n| gosimple | Reports simplifications in code | Enabled |\n| gotype | Syntactic and Semantic analysis like the Go compiler | Enabled |\n| ineffassign | Detect when assignments to existing variables are not used | Enabled |\n| interfacer | Suggest narrower interfaces that could be used as func parameters | Enabled |\n| staticcheck | Check inputs to functions correctness | Enabled |\n| structcheck | Reports unused struct fields | Enabled |\n| unconvert | Detect redundant type conversions | Enabled |\n| varcheck | Reports unused global variables and constants | Enabled |\n| go vet | Reports potential errors or smelly code | Enabled |\n| go vet --shadow | Reports variables that may have been unintentionally shadowed | Enabled |\n| test | Show locations of test failures from the stdlib testing module | Disabled |\n| lll | Report long lines | Disabled |\n| testify | Show location of failed testify assertions | Disabled |\n| unused | Find unused variables (quite redundant) | Disabled |\n\nNote that several of these linters can and will report the same error in the same lines in some circumstances because that,\nAnacondaGO prioritizes error codes over warnings and cleans up the report lines to do not show more than one error per\nline in any time, if there are two different errors in a line, when one had been fixed the other will appear.\n\n#### Specific linter configuration\n\nSome linters accept configuration parameters that affects their behavior, those parameters can be configured setting specific options in the AncondaGO configuration.\n\n##### Execute juts fast linters\n\nIf you feel that the linter reports are very slow, you can try to run just fast linters. In the config:\n\n```javascript\n    \"anaconda_go_fast_linters_only\": true\n```\n\n**Note**: This will disable the `structcheck`, `varcheck`, `errcheck`, `aligncheck`, `testify`, `test`, `interfacer`, `unconvert` and `deadcode` linters independently of other configurations.\n\n##### Set max line length for lll\n\nThe user can specify the max line length for the `lll` linter by setting the `anaconda_go_max_line_length` to whatever numeric value that they wish, by default is 120\n\n**Note**: The `lll` linter is disabled by default\n\n##### Set the cyclomatic threshold\n\nThe complexity threshold for gocyclo can be adjusted by setting the `anaconda_go_gocyclo_threshold` to whatever value that the user wish, by default this value is a complexity of 10\n\n##### Set golint min confidence\n\nThe user can set the minimum confidence of golint in something being a problem to report it by setting `anaconda_go_min_confidence` to whatever decimal value that wish, by default this value is 0.80\n\n##### Set goconst min occurrences\n\nHow many times a string has to be repeated to be reported by goconst can be defined by setting `anaconda_go_min_occurrences`, by default that number is 3\n\n##### Set goconst min length\n\nGoconst will ignore any string with a length lower than `anaconda_go_min_const_length` that by default is 3\n\n##### Duplication threshold\n\nThe threshold for dupl to report a block of code as duplicated will contain a minimum sequence of `anaconda_go_dupl_threshold` characters cloned, by default that number is 50\n\n##### Enable linting of tests\n\nIf the user want to lint tests with those linters that supports it just set the `anaconda_go_lint_test` to `true`.\n\n##### Ignore gas warnings\n\nIf the user want to ignore a security report from gas if is totally certain that is fine, she can do it by adding a comment at the end of the reported line with this contents\n```go\n// nosec\n```\n\n##### Ignore arbitrary reports\n\nArbitrary reports could be disabled adding regular expressions to the `anaconda_go_exclude_regexps`\n\n### Jump to definition (goto)\n\nAnacondaGO can jump to whatever symbol definition (if the source is available).\n\n#### Usage\n\nPut the cursor over the symbol you want to jump to, open the *Command Palette* and select **AnacondaGO: Goto Definition**\n\n#### Suggested Keybinding\n\nOur suggested key binding for this feature is:\n```javascript\n{ \"keys\": [\"alt+k\", \"alt+g\"], \"command\": \"anaconda_go_goto\", \"context\":\n    [\n        {\"key\": \"selector\", \"operator\": \"equal\", \"operand\": \"(source.go) - comment\", \"match_all\": false}\n    ]\n}\n```\n\n#### Related configuration\n\nBy default AnacondaGO will try to use `guru` in order to find the definitions but `godef` can also be used if the user feels that `guru` is too slow setting the value for the setting `anaconda_go_guru_usage`. There are three different modes\n\n| Mode | Description | Default |\n| --- | --- |--- |\n| always | Use only Guru | Yes |\n| fallback | Use Godef by default and switch to Guru in case that Godef could not retrieve any result | No |\n| never | Use Godef no matter what | No |\n\n### Lookup For Function Callees\n\nLook in the code for possible methods that could be call targets of the function call under the cursor. This query uses pointer analysis so it requires of a scope.\n\n#### Usage\n\nPut the cursor over a function call expression and then open the *Command Palette* and select **AnacondaGO: Get Possible Function Callees**, you can also use the same entry in the Contextual menu using the right mouse click.\n\n#### Suggested Keybinding\n\n```javascript\n{ \"keys\": [\"alt+k\", \"alt+c\"], \"command\": \"anaconda_go_callees\" , \"context\":\n    [\n        {\"key\": \"selector\", \"operator\": \"equal\", \"operand\": \"(source.go)\", \"match_all\": false}\n    ]\n}\n```\n\n### Lookup For Function Callers\n\nLook up for possible caller of the function under the cursor. This query uses pointer analysis so it requires a scope.\n\n#### Usage\n\nPut the cursor over a function call expression and then open the *Command Palette* and select **AnacondaGO: Get Function Callers**, you can also use the same entry in the Contextual menu using the right mouse click.\n\n#### Suggested Keybinding\n\n```javascript\n{ \"keys\": [\"alt+Shift+k\", \"alt+Shift+c\"], \"command\": \"anaconda_go_callers\" , \"context\":\n    [\n        {\"key\": \"selector\", \"operator\": \"equal\", \"operand\": \"(source.go)\", \"match_all\": false}\n    ]\n}\n```\n\n### Get Function Callstack (aproximation)\n\nThis command returns a path from the root of the call graph to the function under the cursor. This query uses pointer analysis so it requires a scope.\n\n#### Usage\n\nPut the cursor over a function call expression and then open the *Command Palette* and select **AnacondaGO: Get Call Stack**.\n\n### Dereference Pointer\n\nThis function shows a list of possible objects to which a pointer may point, it also works with other reference\ntypes like slices, functions, maps and channels. This query uses pointer analysis so it requires a scope.\n\n#### Usage\n\nPut the cursor over a a reference and then open the *Command Palette* and select **AnacondaGO: Dereference Pointter**. You can alternatively use the same context menu option using the right mouse click.\n\n#### Suggested Keybinding\n\n```javascript\n{ \"keys\": [\"alt+k\", \"alt+p\"], \"command\": \"anaconda_go_pointsto\" , \"context\":\n    [\n        {\"key\": \"selector\", \"operator\": \"equal\", \"operand\": \"(source.go)\", \"match_all\": false}\n    ]\n}\n```\n\n### Get Referrers\n\nThis function lookup for references to the symbol under the cursor scanning all necessary packages withing the $GOPATH and $GOROOT.\n\n#### Usage\n\nPut the cursor over a a reference and then open the *Command Palette* and select **AnacondaGO: Get Referrer**. You can alternatively use the same context menu option using the right mouse click.\n\n#### Suggested Keybinding\n\n```javascript\n{ \"keys\": [\"alt+k\", \"alt+r\"], \"command\": \"anaconda_go_referrers\", \"context\":\n    [\n        {\"key\": \"selector\", \"operator\": \"equal\", \"operand\": \"(source.go)\", \"match_all\": false}\n    ]\n}\n```\n\n### Implements\n\nLookup for interfaces that are implemented by the symbol under the cursor, if teh symbol is itself an interface,\nit also returns the set of concrete types that implements it.\n\n#### Usage\n\nPut the cursor over a a reference and then open the *Command Palette* and select **AnacondaGO: Implements**. You can alternatively use the same context menu option using the right mouse click.\n\n#### Suggested Keybinding\n\n```javascript\n{ \"keys\": [\"alt+k\", \"alt+i\"], \"command\": \"anaconda_go_referrers\", \"context\":\n    [\n        {\"key\": \"selector\", \"operator\": \"equal\", \"operand\": \"(source.go)\", \"match_all\": false}\n    ]\n}\n```\n\n### Browse file functions\n\nThe user can browse all the current being edited file function definitions at any time\n\n#### Usage\n\nIn the *Command Palette* select **AnacondaGO: Browse File Functions** and press enter, a panel with all the defined functions on the file will be presented and it can be navigated using the arrow keys.\n\n#### Suggested Keybinding\n\n```javascript\n{ \"keys\": [\"alt+k\", \"alt+f\"], \"command\": \"anaconda_go_explore_file_funcs\", \"context\":\n    [\n        {\"key\": \"selector\", \"operator\": \"equal\", \"operand\": \"(source.go)\", \"match_all\": false}\n    ]\n}\n```\n\n### Browse file structures\n\nThe user can also browse all the file defined structures at any time\n\n#### Usage\n\nIn the *Command Palette* select **AnacondaGO: Browse File Structs** and press enter.\n\n#### Suggested keybinding\n\nOur suggested key binding for this feature is:\n```javascript\n{ \"keys\": [\"alt+k\", \"alt+s\"], \"command\": \"anaconda_go_explore_file_structs\", \"context\":\n    [\n        {\"key\": \"selector\", \"operator\": \"equal\", \"operand\": \"(source.go)\", \"match_all\": false}\n    ]\n}\n```\n\n### Browse file declarations\n\nThe user can also browse over all the file functions and structs at once at any time\n\n#### Usage\n\nIn the *Command Palette* select **AnacondaGO: Browse File Symbols** and press enter.\n\n#### Suggested keybinding\n\nOur suggested key binding for this feature is:\n```javascript\n{ \"keys\": [\"alt+k\", \"alt+y\"], \"command\": \"anaconda_go_explore_file_decls\", \"context\":\n    [\n        {\"key\": \"selector\", \"operator\": \"equal\", \"operand\": \"(source.go)\", \"match_all\": false}\n    ]\n}\n```\n\n### Browse package functions\n\nThe user can browse all the package functions that contains the current file being edited\n\n#### Usage\n\nIn the *Command Palette* select **AnacondaGO: Browse Package Functions** and press enter, a panel with all the defined functions on the file will be presented and it can be navigated using the arrow keys, if the user selects a function defined in a file that is not still open, it will be open in a new buffer.\n\n#### Suggested Keybinding\n\nOur suggested key binding for this feature is:\n```javascript\n{ \"keys\": [\"alt+Shift+k\", \"alt+f\"], \"command\": \"anaconda_go_explore_package_funcs\", \"context\":\n    [\n        {\"key\": \"selector\", \"operator\": \"equal\", \"operand\": \"(source.go)\", \"match_all\": false}\n    ]\n}\n```\n\n### Browse package structures\n\nThe user can also browse all the package defined structures at any time\n\n#### Usage\n\nIn the *Command Palette* select **AnacondaGO: Browse Package Structs** and press enter.\n\n#### Suggested keybinding\n\nOur suggested key binding for this feature is:\n```javascript\n{ \"keys\": [\"alt+Shift+k\", \"alt+s\"], \"command\": \"anaconda_go_explore_package_structs\", \"context\":\n    [\n        {\"key\": \"selector\", \"operator\": \"equal\", \"operand\": \"(source.go)\", \"match_all\": false}\n    ]\n}\n```\n\n### Browse package declarations\n\nThe user can also browse over all the package declarations including variables, constants functions and structures\n\n#### Usage\n\nIn the *Command Palette* select **AnacondaGO: Browse Package Symbols** and press enter.\n\n#### Suggested keybinding\n\nOur suggested key binding for this feature is:\n```javascript\n{ \"keys\": [\"alt+Shift+k\", \"alt+y\"], \"command\": \"anaconda_go_explore_package_decls\", \"context\":\n    [\n        {\"key\": \"selector\", \"operator\": \"equal\", \"operand\": \"(source.go)\", \"match_all\": false}\n    ]\n}\n```\n\n### Explore Packages\n\nIn a similar way, AnacondaGO offers a panel to explore all the packages installed in your `GOPATH` as well as all the packages present in the standard library.\n\n#### Usage\n\nIn the *Command Palette* select **AnacondaGO: Explore Packages** and press enter\n\n### Symbol under the cursor analysis and navigation\n\nAnacondaGO is able to analyze whatever (non ambiguous) symbol under the current cursor position and present a panel with information or a browsing panel.\n\n#### Usage\n\nJust situate the cursor over the symbol that you want to analyze and use the *Command Palette* command **AnacondaGO: Analyze Symbol**. Alternatively you can also click the right mouse button and select the same option in the contextual menu that is shown under the AnacondaGO menu entry.\n\nIf you want to browse the symbol contents use the *Command Palette* command **AnacondaGO: Browse Symbol**. Alternatively you can also click the right mouse button and select the same option in the contextual menu that is shown under the Anaconda menu entry.\n\n#### Suggested keybindings\n\nOut suggested key bindings for this feature are:\n```javascript\n{ \"keys\": [\"alt+k\", \"alt+a\"], \"command\": \"anaconda_go_analyze_symbol\", \"context\":\n    [\n        {\"key\": \"selector\", \"operator\": \"equal\", \"operand\": \"(source.go)\", \"match_all\": false}\n    ],\n    \"args\": { \"operation\": \"analyze\" }\n},\n{ \"keys\": [\"alt+k\", \"alt+b\"], \"command\": \"anaconda_go_browse_symbol\", \"context\":\n    [\n        {\"key\": \"selector\", \"operator\": \"equal\", \"operand\": \"(source.go)\", \"match_all\": false}\n    ],\n    \"args\": { \"operation\": \"browse\" }\n}\n```\n\n### Show Documentation for symbol under cursor\n\nThe user can look for the documentation of the current symbol under the cursor using `go_doc` or `gogetdoc` and retrieve the documentation in a bottom panel.\n\n#### Usage\n\nJust situate the cursor over the symbol that you want to retrieve the documentation for and use the *Command Palette\u0026 command **AncondaGO: Show Documentation**. Optionally you can also click the right mouse button and select the same options in the contextual menu that is shown under the AnacondaGO menu entry.\n\n#### Suggested keybindings\n\nOur suggested key bindings for this feature are:\n```javascript\n{ \"keys\": [\"alt+k\", \"alt+d\"], \"command\": \"anaconda_go_doc\", \"context\":\n    [\n        {\"key\": \"selector\", \"operator\": \"equal\", \"operand\": \"(source.go)\", \"match_all\": false}\n    ]\n}\n```\n\n#### Related Configuration\n\nAnacondaGO uses `gogetdoc` and `go doc` to retrieve documentation but `gogetdoc` is used by default (as it is able to find symbols that `go get` is not) if for some reason you prefer to use `go get` you can force it's usage setting the value of the `anaconda_go_force_go_doc_usage` setting to `true`.\n\nYou can also retrieve any unexported symbol documentation when using `go doc` by setting `anaconda_go_doc_private_symbols` to `true` (it is already true by default).\n\n### Show Packages Documentation (Linux and OSX only)\n\nAnacondaGO offers a simple to use installed packages documentation explorer that rely always on `go doc`. Using it you don't have the need to open your browser to retrieve documentation about any package in the standard library or any other installed package in your `GOPATH`.\n\n#### Usage\n\nOpen the *Command Palette* and use the command **AnacondaGO: Show Packages Documentation**.\n\n## Known Issues\n\n### Go runtime update\n\nIf you update the Golang runtime you may need to update several packages for code linting/autocomplete.\n```\ngo get -u golang.org/x/tools/cmd/godoc\ngo get -u golang.org/x/tools/cmd/vet\ngo get -u golang.org/x/tools/cmd/goimports\ngo get -u golang.org/x/tools/cmd/gorename\ngo get -u golang.org/x/tools/cmd/gotype\ngo get -u golang.org/x/tools/cmd/guru\ngo get -u github.com/golang/lint/golint\ngo get -u github.com/nsf/gocode\n```\n\nThe run `gocode close` from any terminal and restart sublime. \n\n\n## License\nThis program is distributed under the terms of the GNU GPL v3. See the [LICENSE][license] file for more details.\n\n\n[license]: https://raw.githubusercontent.com/DamnWidget/anaconda_go/master/LICENSE\n[pledgie-donate-image]: https://pledgie.com/campaigns/32230.png?skin_name=chrome\n[pledgie-donate-link]: https://pledgie.com/campaigns/32230\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdamnwidget%2Fanaconda_go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdamnwidget%2Fanaconda_go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdamnwidget%2Fanaconda_go/lists"}