被gopls給坑了...
最近更新vscode的GO插件,引用新的tools,導致專案一直顯示引用錯誤。像是https://github.com/golang/go/issues/33107。
搞了很久終於發現是gopls這支tool需要一些特別的設定才能正常在vscode使用。
1.go版本
我測試使用的是 go version go1.12.7 windows/amd64
2. vscode 設定
快捷鍵 Ctrl+Shift+P叫出命令視窗輸入Settings.json
將設定檔修改如下,設定的詳細請參考gopls的github說明。
{
"git.ignoreMissingGitWarning": true,
"window.zoomLevel": 0,
"editor.minimap.enabled": false,
"terminal.external.windowsExec": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
"explorer.confirmDelete": false,
"files.autoSave": "off",
"terminal.explorerKind": "external",
"go.goroot": "C:\\Go",
"go.gopath": "D:\\gopath",
"go.useLanguageServer": true,
"[go]": {
"editor.snippetSuggestions": "none",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true,
}
},
"gopls": {
"usePlaceholders": true, // add parameter placeholders when completing a function
},
"files.eol": "\n", // formatting only supports LF line endings
"[json]": {
"editor.defaultFormatter": "HookyQR.beautify"
}
}
3.mod init
gopls會參考 go.mod的資訊
go mod init "專案名稱"
4.如果引用的module是在同層的資料夾內引用時需要帶入此專案名稱
原本 import "./module"
修改 import "project/module"