odef not found at C:\go\bin\bin\godef.exe
[Godef]WARN: godef not found at D:\development\go\go-example\bin\godef.exe
Traceback (most recent call last):
File "C:\Program Files\Sublime Text 3\sublime_plugin.py", line 535, in run_
return self.run()
File "C:\Users\yinfeng\AppData\Roaming\Sublime Text 3\Packages\Godef\Godef.py", line 42, in run
if not found:
UnboundLocalError: local variable 'found' referenced before assignment
有两种解决方法,修改 godef 插件的 gopath 目录为 C:\go。 即修改 Package setting 中 godef 的配置文件。
{
// Copy this file to Settings - User
// Set your real GOPATH in user's Godef.sublime-settings
// For example:
// "goroot": "/Users/zippo/Go",
// "gopath": "/Users/zippo/develop/GO"
// or if you use windows
//"goroot": "C:\\Go",
//"gopath": "C:\\gopath"
}
但上面这种方法怪怪的。放弃。调整 gopath 目录,会好些。
- 为此我创建了一个新的 C:\gopath 目录。把 之前的 C:\go\bin 目录下的 src pkg 移动到新的 gopath 目录下。修改 GOPATH 环境变量为 C:\gopath;D:\development\go\go-example 。重新编译安装 godef.exe ,我发现 godef.exe 是在 GOROOT/bin 即C:\go\bin 生成。但 GoDef.py 的代码是通过 GOPATH 来查找的,所以我把 godef.exe 移动到 GOPATH /bin 目录下。
大功告成!看下跳转的输出日志,通过 godef.exe 输出要跳转的文件和行列信息,原来如此!
=================[Godef]Begin=================
[Godef]INFO: using godef: C:\gopath\bin\godef.exe
[Godef]INFO: selcet_begin: 1600 offset: 1660
[Godef]INFO: spawning: C:\gopath\bin\godef.exe -f D:\development\go\go-example\src\example\test\net\httpserver\photoweb\photoweb.go -o 1660
[Godef]INFO: godef output: b'C:\\Go\\src\\net\\http\\request.go:970:19\n'
[Godef]INFO: opening definition at C:\Go\src\net\http\request.go:970:19
=================[Godef] End =================