这个问题源于gorename不支持模块这一事实。有一个名为gopls的替换工具,但是这个例子并不详尽,所以我想知道是否有办法在整个项目中重命名一个变量(否则我就无法理解重命名部分的用处)
gopls改名--help说:
用法:重命名标志
示例: gopls重命名助手/helper.go:8:6 gopls重命名助手/helper.go:#53
有没有一种方法可以像gorename所能做的那样重命名整个项目中的变量?
发布于 2020-04-04 16:36:47
我建议您使用gopls作为LSP服务器与编辑器集成。编辑器应该提供一个lsp-重命名命令,以方便地调用重命名功能。
至于在命令行上使用gopls重命名,如果您有以下模块:
--- go.mod ---
module foo
--- foo.go ---
package foo
var Foo = 123在模块的目录中,运行gopls rename -d foo.go:3:5 Hello预览diff (" 3 :5“表示第3行第5列):
% gopls rename -d foo.go:3:5 Hello
--- /Users/muir/scratch/foo/foo.go.orig
+++ /Users/muir/scratch/foo/foo.go
@@ -1,3 +1,3 @@
package foo
-var Foo = 123
+var Hello = 123然后运行gopls rename -w foo.go:3:5 Hello来写出更改。假设您使用的是最近版本的gopls,这将在整个模块中重命名。
https://stackoverflow.com/questions/60933580
复制相似问题