Goguru ist ein Golang -Plugin für Sublimetext 3, das das Go -Guru -Tool integriert.
Bitte melden Sie hier Probleme oder Verbesserungen hier https://github.com/alvarolm/goguru/issues
Basierend auf früheren Arbeiten von Waigani.
Das Guru -Tool befindet sich weiterhin auf der Entwicklung. Schauen Sie sich den Plan, das offizielle Git -Repo und die Code -Überprüfung an, wenn Sie mithalten möchten:
Wählen Sie Ihren Cursor, ein Symbol (Funktion, Variable, Konstante usw.) und drücken Sie ctrl+shift+g . Sie erhalten die folgenden Analysemodi zur Auswahl:
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
Wählen Sie einen der Modi aus und die Ausgabe wird in einer neuen Registerkarte angezeigt. Doppelklicken Sie in den Ergebnissen auf den Dateinamen, um direkt darauf zu springen.
Sie können auch die ctrl -Taste halten und right-click , um direkt zur Definition zu springen.
Installieren Sie Sublime Package Control (wenn Sie dies noch nicht getan haben) von http://wbond.net/sublime_packages/package_control. Stellen Sie sicher, dass Sie ST neu starten, um die Installation abzuschließen.
Rufen Sie die Befehlspalette (Standard -Strg+Shift+P oder CMD+Shift+P) auf und starten Sie das Paketsteuerung: Installieren Sie das Paket, drücken Sie die Rückgabe oder klicken Sie auf diese Option, um sie zu aktivieren. Sie erhalten ein neues Schnellpanel mit der Liste der verfügbaren Pakete. Geben Sie Goguru ein und drücken Sie die Rückgabe oder in den Eintrag, um Goguru zu installieren. Wenn es keinen Eintrag für Goguru gibt, haben Sie es höchstwahrscheinlich bereits installiert.
Goguru muss mehrere Variablen eingestellt werden, um zu arbeiten. Diese werden in den Kommentaren der Preferences > Package Settings > GoGuru > Settings-Default erläutert:
{
// 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" : { } ,
} Sie setzen Ihre eigenen Variablen in Preferences > Package Settings > GoGuru > Settings-User .
Sie können auch projektspezifische Einstellungen vornehmen. Speichern Sie zuerst Ihren aktuellen Arbeitsbereich als Project > Save as project ... und bearbeiten Sie Ihr Project > Edit Project . Im Folgenden finden Sie ein Beispiel, das Goguru auf der Codebase github.com/juju/juju verwendet wird:
{
"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"
}
} ,
}Standardschlüsselbindung:
[
{ "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" } ] } ,
] Sie können Ihre eigene Schlüsselbindung einstellen, indem Sie die oben genannten in Preferences > Keybindings - User ersetzen und Strg+Shift+G durch Ihre bevorzugten Taste (en).
Sie können auch eine Schlüsselbindung für einen bestimmten Modus festlegen, indem Sie einen "Modus" Arg, z.
...
{ "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 } } ,
...Standard -Mausbindungen:
[
{
"button" : "button2" ,
"modifiers" : [ "ctrl" ] ,
"press_command" : "drag_select" ,
"command" : "go_guru" ,
"args" : {
"mode" : "definition" ,
"output" : false
} ,
} ,
] Goguru verlässt sich auf das Guru -Werkzeug. Sie müssen es installieren, damit Goguru funktioniert. Führen Sie Folgendes in Ihrer Befehlszeile aus:
go install golang.org/x/tools/cmd/guru@latest
go get -u golang.org/x/tools/cmd/guru
Goguru wird unter der MIT -Lizenz freigelassen. Siehe Lizenz.MD
Goguru ist die urheberrechtlich geschützte Arbeit der Goguru -Autoren , dh mich (Alvarolm) und aller Mitwirkenden. Wenn Sie eine Änderung einreichen, sei es Dokumentation oder Code, solange sie sich für die Geschichte von Gogurus verpflichtet, betrachte ich Sie als Mitwirkender. Eine Liste aller Goguru -Autoren/Mitwirkenden finden Sie unter Authors.md.