簡體   English   中英

在 vscode-go 中,有沒有辦法為 go:generate statements 運行本地版本的工具?

[英]In vscode-go, is there a way to run the local version of a tool for go:generate statements?

在許多項目中,我有一個tools/tools.go文件,它允許我擁有我使用的工具的本地版本( 參考)。

我的代碼中還有go:generate語句,以使用https://github.com/golang/mock/mockgen自動生成模擬文件。 我的項目的bin文件夾下有一個本地版本的mockgen ,我可以通過運行類似PATH=./bin:${PATH} go generate./...的東西來生成我項目的所有模擬。

vscode-go 識別代碼中的go:generate statements 並可以為我們生成代碼。

vscode-go 生成助手

我想知道是否有辦法讓 vscode-go 使用我在bin目錄下的本地版本運行mockgen (通過gopls.generate )。

通過設置go.alternateTools ,vscode-go 讓我們為擴展使用的工具(即dlv )指定備用路徑。 我試圖為mockgen配置該選項,但它沒有改變任何東西。 我的猜測是它不起作用,因為 vscode-go 通過gopls.generate mockgen 它不直接運行mockgen 但這只是一個猜測。

如果我的$PATH中沒有mockgen二進制文件,以下是我得到的錯誤:

[Info  - 5:44:18 PM] 2021/08/08 17:44:18 xxxxxxx.go:19: running "mockgen": exec: "mockgen": executable file not found in $PATH

    operation="generate"

有人有什么主意嗎?

編輯:請參閱@Zyl的評論以獲得一個非常好的選擇。

我今天遇到了同樣的問題。 找到了這個解決方案,如果將來有人需要這個解決方案,它對我有用:

export GOPATH="$HOME/go" 
export PATH="$GOPATH/bin:$PATH"

然后運行(在帶有“go:generate”注釋的文件所在的目錄中)

go generate

go 安裝 github.com/golang/mock/mockgen@v1.6.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM