GoGuru
GoGuru是SublimeText 3的一个Golang插件,它集成了Go guru工具。
详细信息
安装
- 总计 8K
- Win 2K
- Mac 4K
- Linux 2K
8月6日 | 8月5日 | 8月4日 | 8月3日 | 8月2日 | 8月1日 | 7月31日 | 7月30日 | 7月29日 | 7月28日 | 7月27日 | 7月26日 | 7月25日 | 7月24日 | 7月23日 | 7月22日 | 7月21日 | 7月20日 | 7月19日 | 7月18日 | 7月17日 | 7月16日 | 7月15日 | 7月14日 | 7月13日 | 7月12日 | 7月11日 | 7月10日 | 7月9日 | 7月8日 | 7月7日 | 7月6日 | 7月5日 | 7月4日 | 7月3日 | 7月2日 | 7月1日 | 6月30日 | 6月29日 | 6月28日 | 6月27日 | 6月26日 | 6月25日 | 6月24日 | 6月23日 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Mac | 2 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 2 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
Linux | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
README
GoGuru
GoGuru是SublimeText 3的一个Golang插件,它集成了Go guru工具。
请在此处报告任何问题或改进 https://github.com/alvarolm/GoGuru/issues
基于来自waigani的前期工作。
guru工具仍在开发中,如果您想保持同步,请查看计划、官方git仓库和代码审查:* https://docs.google.com/document/d/1UErU12vR7jTedYvKHVNRzGPmXqdMASZ6PfE7B-p6sIg/edit# * https://go.googlesource.com/tools/+log/master/cmd/guru * https://go-review.googlesource.com/#/q/guru
使用方法
选择或将光标放在符号(函数、变量、常量等)上,然后按ctrl+shift+g
。您可以选择以下分析模式之一
callees show possible targets of selected function call
callers show possible callers of selected function
callstack show path from callgraph root to selected function
definition show declaration of selected identifier
describe describe selected syntax: definition, methods, etc
freevars show free variables of selection
implements show 'implements' relation for selected type or method
peers show send/receive corresponding to selected channel op
pointsto show variables the selected pointer may point to
referrers show all refs to entity denoted by selected identifier
what show basic information about the selected syntax node
whicherrs show possible values of the selected error variable
选择其中一种模式,输出将在新的标签页中显示。请双击结果中的文件名以直接跳转至文件。
您还可以按住ctrl
键并在符号上右击以直接跳转到定义。
安装
从http://wbond.net/sublime_packages/package_control安装Sublime Package Control(如果您尚未安装)。请确保重启ST以完成安装。
调用命令面板(默认为ctrl+shift+p或cmd+shift+p),并开始键入Package Control: Install Package,然后按回车键或点击该选项以激活它。您将看到一个新的快速面板,其中包含可用的套件列表。键入GoGuru然后按回车键或选择该项来安装GoGuru。如果没有GoGuru条目,您可能已经安装了它。
GoGuru为了正常运行需要设置多个变量。这些变量的解释可以在默认设置的注释中找到:首选项 > 包设置 > GoGuru > 设置-默认
{
// use golangconfig, if false then shellenv will be used to get golang environment variables
"goguru_use_golangconfig": false,
// adds to the guru_scope the current package of the the working file
"goguru_use_current_package" : true,
// besides showing the result, jump directly to the definition
"goguru_jumpto_definition": false,
// The output can either be one of: 'buffer', 'output_panel'
// Buffers can hold results from more than one invocation
// Output panels sit underneath the editor area and are easily dismissed
"goguru_output": "output_panel",
// print debug info to the terminal
"goguru_debug": false,
// Set guru's output to json
"goguru_json": false,
// an array of scopes of analysis for guru.
// e.g (for github.com/juju/juju) "guru_scope": ["github.com/juju/juju/cmd/juju", "github.com/juju/juju/cmd/jujud"]
"goguru_scope": [],
// an array of build tags of analyzed source files
"goguru_tags": [],
// env overwrites the default shell environment vars
// e.g "env": { "GOPATH": "$HOME/go/bin:$PATH" }
// not used when goguru_use_golangconfig is set to true
"goguru_env": {},
}
您可以在 首选项 > 包设置 > GoGuru > 设置-用户
中设置自己的变量。
您还可以为特定项目设置项目特定设置。首先将当前工作区保存为项目 项目 >另存为项目...
,然后编辑您的项目 项目 >编辑项目
。下面是一个示例,它将GoGuru设置为用于github.com/juju/juju代码库。
{
"folders":
[
{
"follow_symlinks": true,
"path": "/home/user/go/src/github.com/juju/juju"
}
],
"settings":
{
"GoGuru": {
"goguru_scope": ["github.com/juju/juju/cmd/juju", "github.com/juju/juju/cmd/jujud"],
"goguru_output": "output_panel"
}
},
}
默认键绑定
[
{ "keys": ["ctrl+shift+g"], "command": "go_guru"},
{ "keys": ["ctrl+alt+shift+g"], "command": "go_guru_show_results"},
{ "keys": ["ctrl+.+ctrl+g"], "command": "go_guru_goto_definition", "context": [{ "key": "selector", "operator": "equal", "operand": "source.go" }] },
]
您可以通过将以下内容复制到 首选项 > 快捷键 - 用户
并将 ctrl+shift+g 替换为您希望使用的键来设置自己的键绑定。
您还可以通过添加“模式”参数来为特定模式设置键绑定,例如。
...
{ "keys": ["ctrl+super+c"], "command": "go_guru", "args": {"mode": "callers"} },
{ "keys": ["ctrl+super+i"], "command": "go_guru", "args": {"mode": "implements"} },
{ "keys": ["ctrl+super+r"], "command": "go_guru", "args": {"mode": "referrers"} },
{ "keys": ["ctrl+.+ctrl+g"], "command": "go_guru", "args": {"mode": "definition", output=false}},
...
默认鼠标绑定
[
{
"button": "button2",
"modifiers": ["ctrl"],
"press_command": "drag_select",
"command": "go_guru",
"args": {
"mode": "definition",
"output": false
},
},
]
依赖关系
GoGuru依赖于guru工具。您必须安装它才能使GoGuru正常工作。请在您的命令行中运行以下命令
Go 1.16+
go install golang.org/x/tools/cmd/guru@latest
Go版本 < 1.16
go get -u golang.org/x/tools/cmd/guru
版权、许可和贡献者
GoGuru在MIT许可下发布。请参阅LICENSE.md
GoGuru是 GoGuru 作者 的版权作品,即我(alvarolm)和 所有 贡献者的作品。如果您提交更改,无论是文档还是代码,只要它被提交到GoGuru的历史中,我就会认为您是贡献者。请参阅AUTHORS.md以获取所有GoGuru作者/贡献者的列表。