Goguru - это плагин Golang для sublimetext 3, который интегрирует инструмент Go Guru.
Пожалуйста, сообщите о любых вопросах или улучшениях здесь https://github.com/alvarolm/goguru/issues
на основе предыдущей работы от Вайгани.
Инструмент Гуру по -прежнему находится на разработке, ознакомьтесь с планом, официальным GIT Repo и обзором кода, если вы хотите не отставать:
Выберите или разместите свой курсор, символ (функция, переменная, постоянная и т. Д.) И нажмите 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 и right-click на символ, чтобы прыгнуть прямо к определению.
Установите управление пакетом Sublime (если вы еще этого не сделали) с http://wbond.net/sublime_packages/package_control. Обязательно перезапустите ST, чтобы завершить установку.
Позвоните палитре команд (по умолчанию Ctrl+Shift+P или CMD+Shift+P) и начните набирать элемент управления пакетом: Установите пакет, затем нажмите «Возврат» или нажмите на эту опцию, чтобы активировать его. Вам будет представлена новая быстрая панель со списком доступных пакетов. Введите Goguru и нажмите возврат или на его запись, чтобы установить Goguru. Если для Goguru нет записи, вы, скорее всего, уже установили его.
У Гогуру есть несколько переменных, которые будут установлены для работы. Они объяснены в комментариях о Preferences > Package Settings > GoGuru > Settings-Default по умолчанию
{
// 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" : { } ,
} Вы устанавливаете свои собственные переменные в Preferences > Package Settings > GoGuru > Settings-User .
Вы также можете сделать настройки конкретных проектов. Сначала сохраните свое текущее рабочее пространство в качестве Project > Save as project ... , затем отредактируйте свой проект Project > Edit Project . Ниже приведен пример, который устанавливает 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" } ] } ,
] Вы можете установить собственную привязку ключей, копируя вышеупомянутое в Preferences > Keybindings - User и заменив Ctrl+Shift+G на ваши предпочтительные ключи (ы).
Вы также можете установить привязку ключа для определенного режима, добавив «режим» Arg, например:
...
{ "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 работал. Запустите следующее в вашей командной строке:
go install golang.org/x/tools/cmd/guru@latest
go get -u golang.org/x/tools/cmd/guru
Гогуру освобождается по лицензии MIT. Смотрите лицензию.md
Гогуру является защищенной авторским правом работы авторов Гогуру, то есть я (Альварольм) и всех участников. Если вы отправите изменение, будь то документация или код, если она привержена истории Гогуру, я считаю вас участником. См. Authors.md для списка всех авторов/участников Гогуру.