Goguru est un plugin Golang pour SublimeText 3 qui intègre l'outil Go Guru.
Veuillez signaler tous les problèmes ou améliorations ici https://github.com/alvarolm/goguru/issues
Basé sur des travaux antérieurs de Waigani.
L'outil Guru est toujours en cours de développement, consultez le plan, le Repo Git officiel et l'examen du code si vous souhaitez suivre:
Sélectionnez ou placez votre curseur, un symbole (fonction, variable, constante, etc.) et appuyez sur ctrl+shift+g Vous serez présenté avec les modes d'analyse suivants pour choisir:
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
Sélectionnez l'un des modes et la sortie sera affichée dans un nouvel onglet. Double-cliquez sur le nom du fichier dans les résultats pour y sauter directement.
Vous pouvez également maintenir la touche ctrl et right-click sur un symbole pour sauter directement à la définition.
Installez le contrôle du package sublime (si vous ne l'avez pas déjà fait) à partir de http://wbond.net/sublime_packages/package_control. Assurez-vous de redémarrer ST pour terminer l'installation.
Appartez la palette de commande (par défaut CTRL + Shift + P ou CMD + Shift + P) et commencez à taper Contrôle du package: Installez le package puis appuyez sur Return ou cliquez sur cette option pour l'activer. Vous serez présenté avec un nouveau panneau rapide avec la liste des packages disponibles. Tapez Goguru et appuyez sur Retour ou sur son entrée pour installer Goguru. S'il n'y a pas d'entrée pour Goguru, vous l'avez probablement déjà installé.
Goguru a plusieurs variables à définir pour travailler. Ceux-ci sont expliqués dans les commentaires des 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" : { } ,
} Vous définissez vos propres variables dans Preferences > Package Settings > GoGuru > Settings-User .
Vous pouvez également créer des paramètres spécifiques au projet. Enregistrez d'abord votre espace de travail actuel en tant que Project > Save as project ... , puis modifiez votre projet Project > Edit Project . Vous trouverez ci-dessous un exemple qui configure Goguru à utiliser sur la base de code 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"
}
} ,
}Liaison de clé par défaut:
[
{ "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" } ] } ,
] Vous pouvez définir votre propre liaison de clé en copiant ce qui précède dans Preferences > Keybindings - User et en remplacement de Ctrl + Shift + G par vos touches préférées.
Vous pouvez également définir une liaison clé pour un mode spécifique en ajoutant un "mode" ARG, par exemple:
...
{ "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 } } ,
...CONNAISSANCES DE MONISSEMENT par défaut:
[
{
"button" : "button2" ,
"modifiers" : [ "ctrl" ] ,
"press_command" : "drag_select" ,
"command" : "go_guru" ,
"args" : {
"mode" : "definition" ,
"output" : false
} ,
} ,
] Goguru s'appuie sur l'outil Guru. Vous devez l'installer pour que Goguru fonctionne. Exécutez ce qui suit sur votre ligne de commande:
go install golang.org/x/tools/cmd/guru@latest
go get -u golang.org/x/tools/cmd/guru
Goguru est libéré sous la licence du MIT. Voir Licence.md
Goguru est le travail protégé par les droits d'auteur des auteurs de Goguru, c'est-à-dire moi (Alvarolm) et tous les contributeurs. Si vous soumettez un changement, que ce soit la documentation ou le code, tant qu'elle est engagée dans l'histoire de Goguru, je vous considère comme un contributeur. Voir les auteurs.md pour une liste de tous les auteurs / contributeurs de Goguru.