Dan Varela's profile picture

Switching to Neovim v0.12 Nightly and Overhauling My Config

March 15, 2026

I recently updated my Neovim version to v0.12 (nightly build) and migrated my entire configuration. My goal was to remove plugins I no longer use and lean on built-in Neovim features as much as possible.

Here are the notable changes:

Plugin manager

I decided to try out the now built-in vim.pack API for plugin management and drop lazy.nvim. I haven’t run into any problems so far, and honestly, I don’t even miss the lazy-loading that lazy.nvim offers. vim.pack is simple and straightforward:

vim.pack.add({
    "<repository-url-of-the-plugin>",
    -- or, specify source and version
    {
        src = "<repository-url-of-the-plugin>",
        version = vim.version.range("^v0.1.0")
    }
})

require("plugin").setup()

Plus it’s one less external plugin to maintain.

nvim-treesitter

I’m now using the main branch of nvim-treesitter. No issues so far — I’m only using the syntax highlighting, folds, and indentation features. You can view it in my dotfiles.

Working with AI

I tried avante.nvim before but eventually ditched it after running into a persistent issue where it would hang whenever it called a tool.

After some searching, I found codecompanion.nvim, and I much prefer it. It opens a plain markdown buffer where I can freely prompt the AI and attach various context — the current buffer, diagnostics, :messages output, and more.

Ditched snacks.nvim

I dropped snacks.nvim and replaced it with mini.nvim alternatives. No strong reason in particular — I just wanted to try them out. The main advantage I’ve found is that mini.nvim has very few dependencies, and I can use individual modules as separate plugins rather than installing one large plugin and disabling the parts I don’t need.

Completion plugin

As much as I wanted to go all-in on built-in Neovim features, the default completion behavior was hard to get used to. After trying it out for a couple of days, I brought back blink.cmp. The specific issue is that switching to normal mode and then typing again doesn’t reopen the completion menu. There might be a way to configure this, but I haven’t figured it out yet.

Overall, I’m pretty satisfied with where things landed, and everything is working smoothly.

References