如何在 GoClipse 中交叉引用?
How to cross-reference in GoClipse?
我昨天在我的 Macbook 上安装了带有 Goclipse 插件的 Eclipse (Mars)。他们最初工作得很好。但是今天我发现我不能做交叉引用(也就是说cmd+点击关键字不能跳转定义)。控制台显示:
Running: oracle -pos=/Users/myname/coreos/naas/server/src/mycompany.com/hh/naas-server/main.go:#389,#389
-format=json describe mycompany.com/hh/naas-server
FAILED: Could not start process:
Reason: Cannot run program "oracle": error=2, No such file or directory
正如 Voker 所说,GoClipse 只是一个 Eclipse 插件。要编译、构建、运行 您的 Go 包和应用程序,它需要 Go 工具。
您可以在设置页面设置标准Go工具:
Window -> Preferences -> Go
您可以在页面上设置一些非标准的、不同的Go工具:
Window -> Preferences -> Go -> Tools
在这里您可以告诉 GoClipse 您的 oracle 和 gocode 程序所在的位置。
您必须自己下载oracle,但是上面的设置页面为您提供了一个按钮:
下载 Go oracle (运行: `go get -u golang.org/x/tools/cmd/oracle`)
因此您必须 go get
手动或通过上述按钮。使用 go install
安装它,因此您将获得可执行二进制文件 oracle
。您必须在 Go -> Tools
设置页面上设置 oracle
的完整路径,它才会起作用。
同时:我还建议您安装 gocode (https://github.com/nsf/gocode),它将为您提供自动完成功能 (CTRL+SPACE 或 CMD+SPACE 获取包中导出的标识符列表、方法列表等)。也只需使用同一设置页面上的按钮:
下载 gocode (运行: `go get -u github.com/nsf/gocode`)
安装它并设置生成的可执行二进制文件的完整路径gocode
。
我昨天在我的 Macbook 上安装了带有 Goclipse 插件的 Eclipse (Mars)。他们最初工作得很好。但是今天我发现我不能做交叉引用(也就是说cmd+点击关键字不能跳转定义)。控制台显示:
Running: oracle -pos=/Users/myname/coreos/naas/server/src/mycompany.com/hh/naas-server/main.go:#389,#389 -format=json describe mycompany.com/hh/naas-server FAILED: Could not start process: Reason: Cannot run program "oracle": error=2, No such file or directory
正如 Voker 所说,GoClipse 只是一个 Eclipse 插件。要编译、构建、运行 您的 Go 包和应用程序,它需要 Go 工具。
您可以在设置页面设置标准Go工具:
Window -> Preferences -> Go
您可以在页面上设置一些非标准的、不同的Go工具:
Window -> Preferences -> Go -> Tools
在这里您可以告诉 GoClipse 您的 oracle 和 gocode 程序所在的位置。
您必须自己下载oracle,但是上面的设置页面为您提供了一个按钮:
下载 Go oracle (运行: `go get -u golang.org/x/tools/cmd/oracle`)
因此您必须 go get
手动或通过上述按钮。使用 go install
安装它,因此您将获得可执行二进制文件 oracle
。您必须在 Go -> Tools
设置页面上设置 oracle
的完整路径,它才会起作用。
同时:我还建议您安装 gocode (https://github.com/nsf/gocode),它将为您提供自动完成功能 (CTRL+SPACE 或 CMD+SPACE 获取包中导出的标识符列表、方法列表等)。也只需使用同一设置页面上的按钮:
下载 gocode (运行: `go get -u github.com/nsf/gocode`)
安装它并设置生成的可执行二进制文件的完整路径gocode
。