My Emacs setup typically involves:
- An LSP: https://emacs-lsp.github.io/lsp-mode/tutorials/CPP-guide/ - Neotree to browse the file system: https://github.com/jaypei/emacs-neotree - Awesome-tab for tabs: https://github.com/manateelazycat/awesome-tab
If you want more, look at the extensions section of the LSP page and then go down the rabbit hole.
I likewise do not use Doom or any of the bundled variants because I want full control and understanding of my config. But those variants are still useful to learn what's out there and selectively add things to your mix.
Using tabs requires so much discipline imo. I just end up having 2000 tabs open, and so I chose to not have tabs at all.