首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用coc.nvim:如何重命名包?

使用coc.nvim:如何重命名包?
EN

Stack Overflow用户
提问于 2021-08-04 21:46:14
回答 2查看 781关注 0票数 1

我在vim-go中打开了一个文件vim-go。它在oldpackagename包里。

我想重构并重命名为newpackagename。有什么工具吗?原因是,oldpackagename的最初假设不再适用。

我知道我可以搜索和替换东西,但通常

  • GoRename resp.
  • nmap <leader>rn <Plug>(coc-rename)

在自动重命名所有事件时可以很好地工作。

但是关于包裹的名字,我得到:

vim-go:重命名成功,vim-go:无法在GoRename请求的位置重命名标识符,并且: coc.nvim重命名错误:不能重命名元素。为了coc.nvim

包重命名不同吗?我是否必须使用搜索/替换,还是我的信任可能被破坏了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-08-04 23:27:11

在引擎盖下,vim使用gorenamegopls来运行:GoRename;现在默认的是gopls

这两种方法都不支持重命名包:

对于coc.nvim,我不确定,但它似乎是与gopls集成的,因此同样缺乏支持也适用。

票数 1
EN

Stack Overflow用户

发布于 2022-10-19 05:40:00

gopls应该很快支持包重命名(2022年10月)。

一旦特性发布,它与维姆-去的集成就应该利用这一点。

第41567期提到CL 420958

gopls/internal/lsp:添加对包重命名的支持 用户现在可以通过在包声明中对包名执行重命名来重命名包。 编辑器将提示用户使用对话文本字段更改包名。 此重命名功能然后执行以下操作:

  • 重命名重命名包的所有外部导入。如果文件中存在重命名冲突,则该功能会重复尝试新名称,该名称是通过附加新包名和尝试次数来构造的,直到成功为止。
  • 从其文件中重命名重命名包的所有内部引用。
  • 重命名重命名包的目录,并更新嵌套在重命名目录下的任何包的导入路径。
  • 用新的包名重命名测试包,以"_test“结尾的当前测试包名称的后缀"_test”,否则只重命名新的包名。

然而:

Todo:

  • 当重命名包的路径包含"internal“作为段时,添加一个测试。
  • 允许编辑整个包路径,而不仅仅是包路径的最后一部分。
  • 如果重命名的子包与重命名包不属于同一个模块,则拒绝重命名
  • 检查工作区中的go.mod文件,看看是否需要修复任何替换指令,如果重命名影响到任何go.mod文件的位置
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68658351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档