我正在我的 Go 項目中設置 linting golangci-lint。我有一個由go-bindataVSCode 生成的文件,在“問題”選項卡下列出以下內容:assets/assets.go:來自數組、切片或映射復合文字的冗余類型(simplifycompositelit)我似乎無法擺脫它。這不是編譯器錯誤,我會不時重新運行go-bindata,所以我不想養成修改生成代碼的習慣?,F在,通過下面的配置,我無法讓 VSCode 停止報告這個錯誤。如果我golangci-lint run ./...在工作區的根目錄中運行,我不會得到任何輸出。如果需要,我可以提供我的 linting 配置,但 VSCode 似乎正在運行其他東西。如何確定報告此錯誤的內容以及如何使其停止報告assets/assets.go此工作區中的文件的任何內容?這是 Go 相關的 vscode 設置:{ "go.formatTool": "gofmt", "go.lintTool": "golangci-lint", "go.liveErrors": { "enabled": true, "delay": 500 }, "go.lintOnSave": "workspace", "editor.codeActionsOnSave": { "source.organizeImports": true }, "go.useLanguageServer": true, "go.languageServerExperimentalFeatures": { "diagnostics": true, "documentLink": true },}這是有問題的行,即使有一個 nolint 評論表明它的行為不像預期的那樣。如果是 golangci-lint 輸出這個,則 nolint 會阻止顯示警告。我重新加載了窗口并關閉/重新打開了 vscode 以確保注意到更改。
1 回答

侃侃爾雅
TA貢獻1801條經驗 獲得超16個贊
在本地復制后,似乎此消息來自gopls
,因為禁用gopls
會使消息靜音。Go 問題跟蹤器上有幾個相關的投訴/問題:
兩者都沒有提供實際的解決方案。
但是, repo上的這個問題vscode-go
提供了一種解決方法。在您的 VSCode 配置中,添加gopls.analyses.simplifycompositelit
鍵,其值為false
:
"gopls": { "analyses": { "simplifycompositelit": false }, }
當然,這會為所有項目禁用它,不僅是生成的文件,而且如果你也在使用golangci-lint
,它可以配置為捕獲相同類型的錯誤,并且可以更精細地配置,這樣你就不會了不會錯過非生成代碼中的同一類錯誤。
- 1 回答
- 0 關注
- 162 瀏覽
添加回答
舉報
0/150
提交
取消