我是 vim 用户多年,最近开始玩 emacs,在尝试了 Spacemacs 和 Prelude 之后,Doom Emacs 是我的最终选择。那些日子我正在使用 (go +lsp) 和 (lsp) 模块配置 golang 开发,Doom 的所有开箱即用功能都令人印象深刻,感谢您出色的工作 hlissner。

现在我对以下基本功能感到满意:

自动完成

  • 飞检

  • 片段

  • 其他 go-mode 功能

但为了提高效率,我想要更多类似 IDE 的功能,例如:

  • 导航:到目前为止,我只找到了可以在当前缓冲区中选择符号的顾问-imenu(候选者未按方法/函数/var/const/接口等分组),但我该怎么做:

    • 在项目中查找符号

    • 在项目中查找接口

    • 在项目中查找结构

    • 在项目中查找方法

    • 查找导出的函数,可能在指定的包中

    • 在源代码和相关测试文件/方法之间切换并强制

    • 等等...

  • 生成/操作代码的更复杂的操作:snippets 和 go-gen-test 有很大的帮助,但是否可以执行以下操作:

    • 在不同范围内生成未声明的方法/字段/函数/包的代码操作,现在它似乎只能生成变量。(这是基于 lsp 后端支持吗?我找到了一个 java 的视频,但找不到一个 go)

    • 如果我指定要为结构实现的接口,则自动生成方法模板

    • 从结构中删除方法

    • 如果我删除一个函数/方法,自动删除相关的测试/基准函数

有人可以帮我吗?并且感谢任何经验/提示。