Goguru เป็นปลั๊กอิน Golang สำหรับ Sublimetext 3 ที่รวมเครื่องมือ GO Guru
โปรดรายงานปัญหาหรือการปรับปรุงใด ๆ ที่นี่ https://github.com/alvarolm/goguru/issues
ขึ้นอยู่กับงานก่อนหน้าจาก Waigani
เครื่องมือกูรูยังคงอยู่ในการพัฒนาตรวจสอบแผนการ repo git อย่างเป็นทางการและการตรวจสอบรหัสหากคุณต้องการติดตาม:
เลือกหรือวางเคอร์เซอร์ของคุณเป็นสัญลักษณ์ (ฟังก์ชั่นตัวแปรคงที่ ฯลฯ ) และกด 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 และกด Return หรือในรายการเพื่อติดตั้ง 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 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"
}
} ,
}การเชื่อมต่อคีย์เริ่มต้น:
[
{ "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 อาศัยเครื่องมือกูรู คุณต้องติดตั้งเพื่อให้ Goguru ทำงาน รันต่อไปนี้ในบรรทัดคำสั่งของคุณ:
go install golang.org/x/tools/cmd/guru@latest
go get -u golang.org/x/tools/cmd/guru
Goguru ได้รับการปล่อยตัวภายใต้ใบอนุญาต MIT ดู license.md
Goguru เป็นผลงานที่มีลิขสิทธิ์ของ ผู้เขียน Goguru เช่นฉัน (Alvarolm) และผู้มีส่วนร่วม ทั้งหมด หากคุณส่งการเปลี่ยนแปลงไม่ว่าจะเป็นเอกสารหรือรหัสตราบใดที่มันมุ่งมั่นที่จะมีประวัติของ Goguru ฉันจะพิจารณาคุณเป็นผู้สนับสนุน ดูผู้เขียน MD สำหรับรายชื่อผู้เขียน/ผู้สนับสนุน Goguru ทั้งหมด