Neovim 0.12 stable (v0.12.4, July 2026) removes several APIs that plugins in this config may be calling internally. The config's own Lua files don't call these directly, but bundled plugins do. Before upgrading or if you're already on 0.12, verify each item below.
Breaking changes that may affect installed plugins
vim.diagnostic.disable() / vim.diagnostic.is_disabled() — removed
- Risk:
tiny-inline-diagnostic.nvim may call vim.diagnostic.disable() to suppress native virtual text while it renders its own. If so it will error on 0.12.
- Migration:
vim.diagnostic.enable(false, { bufnr = 0 }) (new unified signature).
- Where to check:
pack/plugins/start/tiny-inline-diagnostic.nvim/lua/
vim.diagnostic.enable() legacy signature — removed
- Old:
vim.diagnostic.enable(bufnr, namespace) positional args
- New:
vim.diagnostic.enable(enable, { bufnr = ..., ns_id = ... })
- Risk: any plugin calling the old positional form silently misbehaved on 0.11, errors on 0.12.
vim.lsp.semantic_tokens.start() / .stop() — renamed to .enable()
vim.lsp.semantic_tokens.start(bufnr, client_id) → vim.lsp.semantic_tokens.enable(true, bufnr, client_id)
- Risk: nvim-lspconfig and language-specific plugins may use the old names.
Query:iter_matches() "all" option — removed
vim.diff — renamed to vim.text.diff
- Risk: diffview.nvim or gitsigns.nvim may call
vim.diff directly.
Recommended action
Run :checkhealth on 0.12 and grep plugin dirs:
grep -r "vim\.diagnostic\.disable\|vim\.diagnostic\.is_disabled\|semantic_tokens\.start\|semantic_tokens\.stop\|iter_matches.*all\b\|vim\.diff(" \
~/.config/nvim/pack/plugins/start/
Pin Neovim to 0.11.x until confirmed-compatible or until each affected plugin releases a patch.
Neovim 0.12 stable (v0.12.4, July 2026) removes several APIs that plugins in this config may be calling internally. The config's own Lua files don't call these directly, but bundled plugins do. Before upgrading or if you're already on 0.12, verify each item below.
Breaking changes that may affect installed plugins
vim.diagnostic.disable()/vim.diagnostic.is_disabled()— removedtiny-inline-diagnostic.nvimmay callvim.diagnostic.disable()to suppress native virtual text while it renders its own. If so it will error on 0.12.vim.diagnostic.enable(false, { bufnr = 0 })(new unified signature).pack/plugins/start/tiny-inline-diagnostic.nvim/lua/vim.diagnostic.enable()legacy signature — removedvim.diagnostic.enable(bufnr, namespace)positional argsvim.diagnostic.enable(enable, { bufnr = ..., ns_id = ... })vim.lsp.semantic_tokens.start()/.stop()— renamed to.enable()vim.lsp.semantic_tokens.start(bufnr, client_id)→vim.lsp.semantic_tokens.enable(true, bufnr, client_id)Query:iter_matches()"all"option — removediter_matches(..., { all = true })was the old way to get all captures per match.iter_matches()now always returns all captures; remove theall = trueoption.vim.diff— renamed tovim.text.diffvim.diffdirectly.Recommended action
Run
:checkhealthon 0.12 and grep plugin dirs:Pin Neovim to 0.11.x until confirmed-compatible or until each affected plugin releases a patch.