Skip to content

[audit] Neovim 0.12 breaking changes — plugin compatibility checklist #283

Description

@stanfish06

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.diffrenamed 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions