I'm a vim user for years and start to play emacs recently, after having tried Spacemacs and Prelude, Doom Emacs is my final choose. I'm configuring golang development those days with (go +lsp) and (lsp) module, and all the out-of-box features of Doom are impressive, thanks for your outstanding job hlissner.
Now I'm happy with the basic features like:
Auto completion
- flycheck
- snippets
- other go-mode features
But to be more productive, I want more IDE-like features such as:
- Navigation: Until now I only found counsel-imenu by which I can select symbols in current buffer(candidates not grouped by method/function/var/const/interface and so on), but how could I do things like:
- Find symbols in a project
- Find Interfaces in a project
- Find Structs in a project
- Find methods in a project
- Find exported functions, maybe in a specified package
- Switch back and force between source code and related test file/method
- And so on...
- More sophisticated actions to generate/operate code: snippets and go-gen-test are a great help, but is it possible to do the following this:
- Code actions to generate undeclared method/field/function/package in different scope, now it seems it can only generate variable. (Is this based on the lsp backend support? I found a video for java but not able to find one for go)
- Auto-generate methods template if I specify an Interface to implement for a Struct
- Remove methods from a struct
- Auto-remove relative test/bench functions if I remove a function/method
Could anybody help me on this? And any experiences/tips are appreciated.