Primeagen2. He's a Rust / Type Script developer and a NeoVim preacher, I don't know him that much, however I highly recommend his videos and I find a lot his values resonating with mine. He thinks it's important to know your editor so that you can leverage its power to do exactly what you want to do, without being held back by a tool. This has been my philosophy of programming that dates before knowing The Primeagen: I need to make my tools work for me, not the other way around3.
I started with a "roadwarrior" init.lua
configuration file to guide me through. I thought I could just read the inin.lua
to understand the setup and hence do a better, more personalized config for myself.
I thought doing so would make the learning process slightly painful, but it wasn't exactly the case.
I find the scripting experience for NeoVim hard to comprehend in the beginning. Maybe it's because I have never customized an editor to this extent, I couldn't wrap my head around its internal logic. I have never used the Lua scripting lanugage before either. There was so much to learn, so much thing that we take for granted in today's modern editor like VS Cod(e|ium).
I gave up for an entire month after installing the roadwarrior setup, because I couldn't figure out what's the job of mason and lsp, and for that, snippets and other powerful IDE-like functionalities were missing.
I went back to use VS Codium for a while. Because I have a Vim plugin in VS Code, it was quite awkward to use and I start to feel that I have to bite the bullet to actually drop the need to use a mouse constantly.
Git
My home folder is a git repository. I have all my configuration files backed up and all the rest ignored.
When I made the decision to start using NeoVim for good, I switched to another branch and started building little by little. Frustration played a big part in my last failure, and that is because I have a wrong goal: thinking that I can finish all this in a day.
Using a separate branch allowed me to switch back and forth between the roadwarrior script and my own, not yet mature setup. It was only yesterday when the day finally came, I find my own setup usable and I merged my branch into the master branch of my dot files.
Debugging and improvisation
A weird problem occured when I was trying to set up snippets auto-completetion in NeoVim yesterday. I'm pretty sure that I spent more than two hours debugging.
In the end, I found out a GitHub issue describing the same issue, enabled logging for the plugin and went checking what went wrong. I improvised using my little to non existent Lua skills to call the function that gives out dynamically the path to the log folder depending on the OS, and printed it to NeoVim, the rest is normal debugging. Turned out that you're not supposed to have trailing commas in a json dictionary, at least for that specific plugin.
VS Codium is the true open source version of VS Code. Get it? Chrome, Chromium; Code, Codium...
Primeagen uses Dvorak too. I couldn't help but laugh out loud when his keysmash looked like "aoeuaoeuaoeu".
That's also why I dislike piano manufactures. It's absurd that people with different sized hands play on exactly the same sized piano. Sure, it's for compatibility, but isn't that going too far? DS Foundation.
Zola, the beloved program (written in rust) I use to generate this website has a bug and wouldn't do its job properly, I had to downgrade it. I'm glad that I didn't spent too much time debugging because it wasn't my fault.