为什么不能在Atom编辑器中自动完成本地软件包?

时间:2016-06-24 11:27:01

标签: go atom-editor

自动完成(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中的任何自动完成,那么可能是什么问题?

2 个答案:

答案 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