如何在 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+SPACECMD+SPACE 获取包中导出的标识符列表、方法列表等)。也只需使用同一设置页面上的按钮:

下载 gocode (运行: `go get -u github.com/nsf/gocode`)

安装它并设置生成的可执行二进制文件的完整路径gocode