Here’s what I want, a keyboard only code editor, (ideally with all the vim keybindings and features) that also has in built lsp for popular languages like C, C++, Go and just works out of the box (even better if it has good code completion with copilot or something similar). I can’t seem to get this anywhere. I’m still sticking with neovim for now but it’s code complete doesn’t work well that I’ve turned it off and I have to maintain its config every few months.
My experience is that C and C++ can't be done well, unless you have the world's most trivial code base.
There are dozens of possible build tools for C and C++, all with complex syntax and most with mandatory user provided input to configure the build. For anything beyond simple syntax highlighting, you need to be able to context parse all the multi-file cross references and inputs that can only come from building the entire project with preprocessing and then parsing the LLM (the intermediate syntax, not the AI thing). For most projects that are nontrivial, a compilation cycle can be 10 minutes to 4+ hours, and requires the specific settings you want to build with. Breaking them down to per-file also doesn't work because you'd have to do a complete dry run execution of the build system just to get the specific toolchain build settings for each file. And remember there are dozens of possible build tools that your tool has to emulate a dry run of now.
Most tools I've seen can only make a half attempt at C/C++ as a result, and usually the solutions scale incredibly poorly. The basic CTags for example, that just indexes symbols in your project source code, easily generates a >4 GB database file on something like a Yocto build. Which is why they invented Exuberant CTags that uses a binary database to try and speed it up. But even still, you're getting almost no useful context from results, and it has a very long lag in response when you do ask something.
The AI LLM support for C and C++ seems able to make guesses with the partial info that's available to them, whether its only the one file of context or the whole project (very uncommon), but it has the lowest successful output rate of any context helper I've ever used.