2015-02-23 5 views
0

Я несколько новых Пойти, так что это может быть проблемой Go, а не IntelliJ один: я просто настроить https://github.com/go-lang-plugin-org/go-lang-idea-plugin/ из ZipFile, в IntelliJ 14.Почему этот плагин Go-Lang IntelliJ несовместим с синтаксисом Go?

Я обнаружил, что компилятор не соответствует с подсветкой синтаксиса.

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

Уступает следующее сообщение об ошибке.

* Недостаточно аргументов при вызове Redis.String.

Приближаясь к вызову Redis.String, он принимает интерфейс + args.

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

И таким образом, я могу обмануть IDE в удаление сообщения rror, просто добавив «ERR» ARG в конце вызова, например, так:

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

Но Увы,! Это «исправление» делает компилятор go недовольным ... и он сообщает это сообщение (хотя плагин IntelliJ не интерпретирует это как ошибку).

./t1.go:19: множественное значение c.Do() в контексте одного значения

Любых мысли о том, почему IntelliJ Go плагин хочет два аргумента, wheresas только GoLang хочет один аргумент, поскольку эта функция будет очень полезной.

ответ

1

Это не ошибка, которую вы делаете, это просто проблема, которую мы имеем в настоящее время с той частью плагина, которая заботится о таких вещах.

Согласно my answer, просмотрите выпуски 1343 и 1222.

спасибо.

+1

Имеет смысл, спасибо. На самом деле плагин хорошо работает для большинства других задач. – jayunit100

Смежные вопросы