自动完成(go-plus)在Atom中可以正常用于标准库导入,但每当我尝试导入自己的包时,它根本不起作用。
我的包结构如下:
.
├── bin
├── pkg
└── src
└── Test
├── MyPackage
│ └── hello.go
└── main.go
main.go
package main
import (
"Test/MyPackage"
)
func main() {
hello.SayHello("World")
}
hello.go
package hello
import "fmt"
const Msg = "Hello "
func SayHello(name string) {
fmt.Printf("%v%v!\n", Msg, name)
}
文件编译正常,但在main.go
hello
包中没有调用Atom中的任何自动完成,那么可能是什么问题?
答案 0 :(得分:3)
问题在go-plus包的README.md中解决:
首先,确保 autocomplete-plus是 出现在您的设置上。 Go-plus提供自动完成功能 gocode工具,所以你应该确保 它在PATH中可用。
如果您无法为用户定义的软件包启用自动完成功能, 虽然它来自标准库的包装,但它可能是一个 琐碎的gocode相关问题。尝试运行
gocode set
。有人预料到 输出' d:propose-builtins false lib-path "" autobuild false force-debug-output "" package-lookup-mode "go"
你要做的是通过运行
gocode set autobuild true
将autobuild切换为true。现在检查自动完成,它必须正常工作 右。
答案 1 :(得分:0)
另一个可能的原因是gocode
守护程序无法正常工作(或者是由于Go或多个gocode
守护程序的更新)。关闭守护进程可能有所帮助。
gocode close