O GOGURU é um plug -in do Golang para o sublimetext 3 que integra a ferramenta Go Guru.
Por favor, relate quaisquer problemas ou melhorias aqui https://github.com/alvarolm/goguru/issues
Com base em trabalhos anteriores de Waigani.
A ferramenta Guru ainda está no desenvolvimento, confira o plano, o repositório oficial do GIT e a revisão do código, se você quiser acompanhar:
Selecione ou coloque seu cursor, um símbolo (função, variável, constante etc.) e pressione ctrl+shift+g . Você receberá os seguintes modos de análise para escolher:
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
Selecione um dos modos e a saída será exibida em uma nova guia. Clique duas vezes no nome do arquivo nos resultados para pular diretamente para ele.
Você também pode segurar a tecla ctrl e right-click em um símbolo para pular direto para a definição.
Instale o controle do pacote sublime (se você ainda não o fez) em http://wbond.net/sublime_packages/package_control. Certifique -se de reiniciar o ST para concluir a instalação.
Traga a paleta de comando (padrão Ctrl+Shift+P ou CMD+Shift+P) e comece a digitar o controle do pacote: Instale o pacote e pressione Return ou clique nessa opção para ativá -lo. Você receberá um novo painel rápido com a lista de pacotes disponíveis. Digite GOGURU e pressione Return ou em sua entrada para instalar o GOGURU. Se não houver entrada para o GOGURU, você provavelmente já o instalou.
O GOGURU tem várias variáveis a serem definidas para funcionar. Estes são explicados nos comentários das 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" : { } ,
} Você define suas próprias variáveis em Preferences > Package Settings > GoGuru > Settings-User .
Você também pode fazer configurações específicas do projeto. Primeiro, salve seu espaço de trabalho atual como um Project > Save as project ... e depois edite seu Project > Edit Project . Abaixo está um exemplo que configura o GOGURU a ser usado no github.com/juju/juju codebase:
{
"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"
}
} ,
}Chave de chave padrão:
[
{ "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" } ] } ,
] Você pode definir sua própria ligação de chaves copiando as Preferences > Keybindings - User e substituindo Ctrl+Shift+G pela (s) chave (s) preferida (s).
Você também pode definir uma ligação de chave para um modo específico, adicionando um "modo" arg, por exemplo:
...
{ "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 } } ,
...Ligações padrão do mouse:
[
{
"button" : "button2" ,
"modifiers" : [ "ctrl" ] ,
"press_command" : "drag_select" ,
"command" : "go_guru" ,
"args" : {
"mode" : "definition" ,
"output" : false
} ,
} ,
] O GOGURU conta com a ferramenta Guru. Você deve instalá -lo para que o GOGURU funcione. Execute o seguinte na sua linha de comando:
go install golang.org/x/tools/cmd/guru@latest
go get -u golang.org/x/tools/cmd/guru
O GOGURU é liberado sob a licença do MIT. Veja License.md
GOGURU é o trabalho protegido por direitos autorais dos autores de Goguru, ou seja, eu (Alvarolm) e de todos os colaboradores. Se você enviar uma alteração, seja documentação ou código, desde que esteja comprometido com a história do GOGURU, considero você um colaborador. Consulte Authors.MD para obter uma lista de todos os autores/colaboradores do GOGURU.