在VSCode中,我尝试使用F2重命名一个变量。这似乎可以运行gorename工具,但每次都会失败,并且没有显式错误。它只是简单地显示:
/home/oops/dev/mtg-tracker/mtg-tracker-server/handlers>Finished running tool: /home/oops/dev/go/bin/golint
/home/oops/dev/mtg-tracker/mtg-tracker-server/handlers>Finished running tool: /usr/local/go/bin/go build -i -o /tmp/vscode-goVw9yJs/go-code-check .
/home/oops/dev/mtg-tracker/mtg-tracker-server/handlers>Finished running tool: /usr/local/go/bin/go vet ./...
Rename failed我调查过类似的问题,似乎通常会出现诸如无效的GOROOT或不正确的包命名等错误,但我在这里没有看到这样的错误,我也找不到任何进一步的信息。
我还看到有人通过更新gorename修复了这个问题,我试着查看了一下,但还不知道该怎么做。
预期的结果: VSCode实际上重命名了我的变量。
实际结果:重命名失败并保持不变。
发布于 2019-09-11 00:14:34
请注意,对于命令行或VSCode使用,有一个专门用于跟踪工具及其更新的issue 24661。
那个问题just included
gorename将不再受支持,因为gopls已经实现了重命名功能。
参见issue 27571,它指的是issue 32875。
同时,在完全支持gorename之前,我使用的是saibing/tools,它确实生成了gopls的“扩展”版本,并支持重命名。
它在VSCode中运行得很好。
更新Q4 2019 (11月):issue 32875现在已关闭,gopls has released a 0.2.0和这些错误应该得到修复。
完整的重命名支持仍然存在:CL 194878
保留CL 207579:此更改添加了对prepare_rename的命令行支持。
更新9月2020年:
在As commented和CL 255053 (针对go bundle)中,此列表中的许多工具也已被gopls取代。
https://stackoverflow.com/questions/55506267
复制相似问题