2015-02-23 54 views
0

我有点新去的,所以这可能是一个围棋的问题,而不是一个一个的IntelliJ:我刚刚建立了https://github.com/go-lang-plugin-org/go-lang-idea-plugin/从压缩文件中的IntelliJ 14Go-Lang IntelliJ插件为什么与Go的语法不一致?

我发现,编译器不一致与语法高亮。

world, err := redis.String(c.Do("GET", "message1")) 
if err != nil { 
    fmt.Println("key not found") 
} 

产生以下错误信息。

*调用Redis.String时没有足够的参数。

仔细看看对Redis.String的调用,它似乎需要一个接口+参数。

func String(reply interface{}, err error) (string, error) { 
    .... 
    return "", fmt.Errorf("redigo: unexpected type for String, got type %T", reply) 
} 

就这样,我能够在IDE诱骗取出RROR消息,通过简单地增加一个“犯错” ARG到通话结束后,像这样:

world, err := redis.String(c.Do("GET", "message1"), err) 

!这个“修复”会让编译器不高兴......并且它会报告此消息(即使IntelliJ插件不会将其解释为错误)。

./t1.go:19:多值c.Do()的单值上下文

上为什么的IntelliJ转到插件希望有两个参数,有什么想法wheresas只GoLang想要一个参数,因为这个功能会有很大的帮助。

回答

1

这不是你犯的一个错误,它只是一个问题,我们现在有一个问题,那个插件的特定部分负责照顾那样的事情。

按照my answer,请看问题13431222

谢谢。

+1

有道理,谢谢。其实这个插件对于大多数其他任务来说工作得很好。 – jayunit100 2015-02-24 16:35:37

相关问题