ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

Go​Guru

alvarolm ST3

GoGuru是SublimeText 3的一个Golang插件,它集成了Go guru工具。

标签 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

源码
raw.​githubusercontent.​com

donate

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作者/贡献者的列表。