Мой 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.
Да, я вставил go.goroot
в свое приложение. Судя по всему, у меня на компьютере две конфликтующие установки go. После перекомпиляции инструментов vscode смог обнаружить ошибки. Спасибо! Пожалуйста, отправьте свое предложение в качестве ответа, чтобы я мог закрыть эту проблему.
Я продолжаю видеть «go: install/update tools» в документации. Эта опция была удалена недавно? Я предполагаю, что это был старый параметр меню «Переход»> «Установить/обновить инструменты»?
Как указал @pwaterz, решение моей проблемы состояло в том, чтобы добавить "go.goroot: /some/other/path"
.
Причина, по которой vscode не смог обнаружить ошибки, заключалась в том, что на моем компьютере были разные версии go. Добавление goroot и запуск go: install/update Tools
решили проблему.
---- Редактировать: несколько версий для перехода ----
На моем Mac было несколько конфликтующих версий go, загруженных через brew. Решил проблему с переустановкой.
brew uninstall go
.bash_profile
или подобном. Сравните здесь.source .bash_profile
settings.json
наборе "go.goroot": "/usr/local/go"
go: Toggle workspace trust space
, чтобы убедиться, что изменения в settings.json
применены (для этого вы должны доверять своему рабочему пространству)go: Install/update tools
и выберите все---- Обновлено: неправильная корневая папка ----
Убедитесь, что вы открываете корневую папку вашего проекта, а не подпапку вашего проекта. В противном случае это может привести к недопустимым путям импорта
---- Редактировать: Сломанный языковой сервер ----
go: restart language server
go mod tidy
и попробуй еще разУ меня снова возникла эта проблема. Имейте в виду, что вам может понадобиться Go: Toggle Workspace Trust Flag
перед запуском go: install/update Tools
. В противном случае изменение на go.goroot
будет проигнорировано.
Установлен ли ваш путь GOROOT? Также есть ли какие-либо другие файлы go в том же проекте, где может возникнуть ошибка?