Micron Document
in pursuit of neovim nirvanna

I've been increasingly more frustrated with Neovim lately. Not because there's anything wrong with it, but because of my lack of understanding. I started to try to articulate my issues in another note, but I didn't get very far.

I toyed a bit with NVF and decided I should instead focus on creating a new configuration for Neovim 0.11 where I just try to make it do one thing really well. So I started a Compulsive Notes configuration. Forget the why for now, and focus on the method.

It should eliminate any friction in writing Markdown notes by staying out of the way with too much fanciness, but also reduce or simplify repetitive aspects of making notes while being aesthetically pleasing -- to me.

Most of these things are not quantifiable, but here's a hit list of features:

• easier link creation
• easier insertion of calculated values
• easy access to color schemes
• more complete toggling of visual elements
• fully baking some of the half-baked toys I've made

For links and inserting things like dates I investigated snippets. That's well under way. It's aiding with inserting calculated values, as well, but I haven't developed that very far. It's a little bit in my way though, but more on that later.

For browsing notes and inserting links to the browsed notes I can rely a bit on what I have started with Telescope, but I also want to find a way to turn on file previews for file-name completion. When blink-cmp provides files, it does display a preview, much like how snippets have a preview, so that works well.

For visual elements I started configuring a set of sane defaults and making key bindings for toggling them. And then stuff just kind of started to grow.

As far as staying out of the way -- some of this is accomplished by toggling options, such as visual elements, but I also configured snippets to not jump up in my face and instead they have to be triggered. It's similar to the NvChad fix from when I was using that.

I put the following in the opts for blink.cmp,

T282828
Te6edf3completion Tff7b72= Tb4b4b4{
Te6edf3trigger Tff7b72= Tb4b4b4{
Te6edf3show_on_keyword Tff7b72= Tff7b72falseTb4b4b4,
Te6edf3show_on_trigger_character Tff7b72= Tff7b72trueTb4b4b4,
Tb4b4b4}
Tb4b4b4}


This is pretty subtle, if the T383838show_on_trigger_character is T383838true, it will cause suggestions to pop up after a period is typed with no space after it. I don't like that, but if I turn it off completely then I get no file name suggestions when trying to autocomplete with T383838:new or T383838:e or ... Not a lot of words have periods embedded in them, so this is a fair compromise, for now.

Maybe I'll add a keybinding to toggle it. That could look something like this:

T282828
Tff7b72function Td2a8ffTOGGLE_COMPLETIONTb4b4b4()
Tff7b72local Te6edf3blink Tff7b72= Tffa657requireTb4b4b4(Ta5d6ff"Ta5d6ffblink.cmp.configTa5d6ff"Tb4b4b4)
Tff7b72if Te6edf3blink Tff7b72== Tff7b72nil Tff7b72then
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffBlink is not loaded, cannot toggleTa5d6ff"Tb4b4b4)
Tff7b72return
Tff7b72end
Te6edf3blinkTb4b4b4.Te6edf3completionTb4b4b4.Te6edf3triggerTb4b4b4.Te6edf3show_on_keyword Tff7b72= Tff7b72not Te6edf3blinkTb4b4b4.Te6edf3completionTb4b4b4.Te6edf3triggerTb4b4b4.Te6edf3show_on_keyword
Te6edf3blinkTb4b4b4.Te6edf3completionTb4b4b4.Te6edf3triggerTb4b4b4.Te6edf3show_on_trigger_character Tff7b72= Tff7b72not Te6edf3blinkTb4b4b4.Te6edf3completionTb4b4b4.Te6edf3triggerTb4b4b4.Te6edf3show_on_trigger_character
Tff7b72end


Anyway, the config I'm using now began by adding Lazy and then borrowing from kickstart-nvim in order to get lsp stuff to load, then I converted it to a format that Neovim 0.11 didn't mind so much, and then the resulting init.lua is here.

Tags: index, nvim, journal

Tags
Navigation





created: 2025-10-18

updated: 2025-10-19 09:59:30

(re)generated: 2026-07-17