In the previous Vim Adventures, I wrote about switching to Neovim as my go to code editor. Since then I tried several Neovim IDE setups — lunarvim, astronvim, and nvchad. I even tried setting up my own Neovim config from scratch.
But none of them ever felt at home and they came with a bunch of issues. tsserver which is the TypeScript Language Server often crashed, I couldn't get monorepoes to play well (which caused prettier to screw up my formatting everytime).
Like I said in part 1, the power of Neovim comes from its rich ecosystem of plugins. There's been plenty of great work done here recently, like kickstart.nvim, lazy.nvim, mason.nvim to name a few. While I initially enjoyed configuring this stuff, I started growing weary of it when the problems came. The IDE layers worked great at first, but when it came to debugging issues, they were blackboxes.
I could have spent the time going through their code to figure things out. And I'm confident I could have done it even though my lua skills are sketchy at best. But it's time that I'm spending not working on my projects.
So after some thought, I've made the decision to go back to WebStorm. And just as a I made this decision, Jetbrains announced their Rust IDE, RustRover. So I downloaded both, renewed my license (which had just expired) and set it up.
But all the time I'd spent in Neovim, I'd gotten good at vim motions. I wasn't about to give it all up. So I ported over some of my vim settings to .ideavimrc, changed a few hotkeys to match my neovim setup, and I was ready to go. This barely took time and worked like a charm.
Since switching to WebStorm (and RustRover), I've had:
- Zero crashes
- No struggles with the LSP
- Prettier format my code correctly everytime, even in monorepos
Most of all the little setup time I spend switching to Jetbrains IDEs was the only time I spend fiddling with the settings. I open my IDE and start working on my projects right away. Nothing getting in my way. And it feels like home because I've been using WebStorm for far longer than Neovim.
So something good came out of it. I can move around my code way faster now with vim motions, I can still use the hotkeys that I'd gotten so used to in Neovim and my IDE doesn't slow me down or crash on me.
That sort of concludes this adventure. There are more vim motions that I haven't learned yet. So while this is the final part of the quest with Neovim, I'm not done with vim quite yet.