Vscode не обнаруживает ошибки golang

Мой vscode не обнаруживает ошибок в golang.

Пример:

package somepackage

import "fmt"

func f(name string) string {
    name = 1
    return name
}

Это должно вызвать ошибку типа, но это не так. Я никогда не получаю никаких ошибок.

Мой settings.json содержит

"go.gopath": "some/path", 
"go.vetOnSave": "package",
"go.lintOnSave": "package",
"go.testOnSave": true,
"go.buildOnSave": "package",
"go.coverOnSave": true 

Я смог бежать go: install/update Tools. Все инструменты успешно установлены.

Я также могу запустить отладку файла .go в vscode.

Установлен ли ваш путь GOROOT? Также есть ли какие-либо другие файлы go в том же проекте, где может возникнуть ошибка?

pwaterz 09.04.2019 02:52

Да, я вставил go.goroot в свое приложение. Судя по всему, у меня на компьютере две конфликтующие установки go. После перекомпиляции инструментов vscode смог обнаружить ошибки. Спасибо! Пожалуйста, отправьте свое предложение в качестве ответа, чтобы я мог закрыть эту проблему.

User12547645 09.04.2019 08:49

Я продолжаю видеть «go: install/update tools» в документации. Эта опция была удалена недавно? Я предполагаю, что это был старый параметр меню «Переход»> «Установить/обновить инструменты»?

Duncan Jones 29.05.2020 19:00
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
API ввода вопросов - это полезный инструмент для интеграции моделей машинного обучения, таких как ChatGPT, в приложения, требующие обработки...
1
3
3 220
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как указал @pwaterz, решение моей проблемы состояло в том, чтобы добавить "go.goroot: /some/other/path".

Причина, по которой vscode не смог обнаружить ошибки, заключалась в том, что на моем компьютере были разные версии go. Добавление goroot и запуск go: install/update Tools решили проблему.

---- Редактировать: несколько версий для перехода ----

На моем Mac было несколько конфликтующих версий go, загруженных через brew. Решил проблему с переустановкой.

  • Удалить и тоже беги brew uninstall go
  • Переустановить
  • Установите переменные среды в вашем .bash_profile или подобном. Сравните здесь.
  • Примените изменения к своему профилю, запустив, например. source .bash_profile
  • Перезапустите VSCode
  • В settings.json наборе "go.goroot": "/usr/local/go"
  • Запустите go: Toggle workspace trust space, чтобы убедиться, что изменения в settings.json применены (для этого вы должны доверять своему рабочему пространству)
  • go: Install/update tools и выберите все

---- Обновлено: неправильная корневая папка ----

Убедитесь, что вы открываете корневую папку вашего проекта, а не подпапку вашего проекта. В противном случае это может привести к недопустимым путям импорта

---- Редактировать: Сломанный языковой сервер ----

У меня снова возникла эта проблема. Имейте в виду, что вам может понадобиться Go: Toggle Workspace Trust Flag перед запуском go: install/update Tools. В противном случае изменение на go.goroot будет проигнорировано.

User12547645 14.06.2021 11:44

Другие вопросы по теме