From ffab0b66ae72af5dd52b2454725a018e29e5d768 Mon Sep 17 00:00:00 2001
From: Barrett Ruth
Date: Sun, 8 Nov 2026 13:09:00 -0600
Subject: [PATCH 1/2] refactor: deprecate highlight overrides
---
doc/diffs.nvim.txt | 25 ++++---------------------
lua/diffs/runtime/init.lua | 8 ++++++++
2 files changed, 12 insertions(+), 21 deletions(-)
diff --git a/doc/diffs.nvim.txt b/doc/diffs.nvim.txt
index 9a5a27f7..baf04845 100644
--- a/doc/diffs.nvim.txt
+++ b/doc/diffs.nvim.txt
@@ -96,7 +96,6 @@ Configuration is done via `vim.g.diffs`. Set options before the plugin loads:
treesitter = true,
vim = true,
intra = true,
- overrides = {},
},
conflict = {
disable_diagnostics = true,
@@ -209,11 +208,7 @@ Configuration is done via `vim.g.diffs`. Set options before the plugin loads:
See |diffs.nvim.IntraConfig| for fields.
{overrides} (table, default: {})
- Map of highlight group names to highlight
- definitions (see `nvim_set_hl()`). Applied
- after all computed groups without `default`,
- so overrides always win over both computed
- defaults and colorscheme definitions.
+ Deprecated. See |diffs.nvim-highlights|.
*diffs.nvim.TreesitterConfig*
Treesitter config fields: ~
@@ -1431,11 +1426,6 @@ mis-identified, which can degrade its syntax highlighting or hunk navigation.
==============================================================================
HIGHLIGHT GROUPS *diffs.nvim-highlights*
-diffs.nvim defines custom highlight groups with `default = true`. Colorschemes
-can override them before diffs.nvim loads, or users can override them with
-`highlights.overrides`.
-
-
Diff and generated rail highlights: ~
*DiffsClear*
DiffsClear Clears underlying diff foreground colors while preserving
@@ -1528,20 +1518,13 @@ Diff mode window highlights: ~ These are used for 'winhighlight' remapping in
*DiffsDiffText*
DiffsDiffText Background-only replacement for `DiffText`.
-To customize these in your colorscheme: >lua
+Customize with |nvim_set_hl()|: >lua
vim.api.nvim_set_hl(0, 'DiffsAdd', { bg = '#2e4a3a' })
vim.api.nvim_set_hl(0, 'DiffsDiffDelete', { link = 'DiffDelete' })
-< Or via `highlights.overrides` in config: >lua
- vim.g.diffs = {
- highlights = {
- overrides = {
- DiffsAdd = { bg = '#2e4a3a' },
- DiffsDiffDelete = { link = 'DiffDelete' },
- },
- },
- }
<
+diffs.nvim recomputes these groups on |ColorScheme|.
+
==============================================================================
HEALTH CHECK *diffs.nvim-health*
diff --git a/lua/diffs/runtime/init.lua b/lua/diffs/runtime/init.lua
index 8b4b01d3..f108bd12 100644
--- a/lua/diffs/runtime/init.lua
+++ b/lua/diffs/runtime/init.lua
@@ -64,6 +64,14 @@ local function init()
end
log.set_enabled(config.debug)
+ if config.highlights.overrides and next(config.highlights.overrides) then
+ log.notify(
+ 'highlights.overrides is deprecated. Support ends on November 30, 2026. '
+ .. 'Use vim.api.nvim_set_hl(). See :help diffs.nvim-highlights.',
+ vim.log.levels.WARN
+ )
+ end
+
if config.highlights.intra and config.highlights.intra.algorithm == 'vscode' then
log.notify(
'libvscodediff support will be removed on 30 November 2026. '
From 994104ca6a8c28bfb9202330f5f6134cf90df084 Mon Sep 17 00:00:00 2001
From: Barrett Ruth
Date: Sun, 8 Nov 2026 13:09:40 -0600
Subject: [PATCH 2/2] refactor!: remove highlight overrides
---
doc/diffs.nvim.txt | 3 ---
lua/diffs/config.lua | 2 --
lua/diffs/runtime/highlight_groups.lua | 6 ------
lua/diffs/runtime/init.lua | 8 --------
4 files changed, 19 deletions(-)
diff --git a/doc/diffs.nvim.txt b/doc/diffs.nvim.txt
index baf04845..06832993 100644
--- a/doc/diffs.nvim.txt
+++ b/doc/diffs.nvim.txt
@@ -207,9 +207,6 @@ Configuration is done via `vim.g.diffs`. Set options before the plugin loads:
Character-level (intra-line) diff highlighting.
See |diffs.nvim.IntraConfig| for fields.
- {overrides} (table, default: {})
- Deprecated. See |diffs.nvim-highlights|.
-
*diffs.nvim.TreesitterConfig*
Treesitter config fields: ~
{max_lines} (integer, default: 500)
diff --git a/lua/diffs/config.lua b/lua/diffs/config.lua
index 5b87c7ad..6cc150fe 100644
--- a/lua/diffs/config.lua
+++ b/lua/diffs/config.lua
@@ -19,7 +19,6 @@ local integration_metadata = require('diffs.integrations')
---@class diffs.Highlights
---@field background boolean
---@field blend_alpha? number
----@field overrides? table
---@field warn_max_lines boolean
---@field treesitter diffs.TreesitterConfig|false
---@field vim diffs.VimConfig|false
@@ -128,7 +127,6 @@ function M.validate(opts)
if opts.highlights then
vim.validate('highlights.background', opts.highlights.background, 'boolean', true)
vim.validate('highlights.blend_alpha', opts.highlights.blend_alpha, 'number', true)
- vim.validate('highlights.overrides', opts.highlights.overrides, 'table', true)
vim.validate('highlights.warn_max_lines', opts.highlights.warn_max_lines, 'boolean', true)
for _, key in ipairs({ 'treesitter', 'vim', 'intra' }) do
diff --git a/lua/diffs/runtime/highlight_groups.lua b/lua/diffs/runtime/highlight_groups.lua
index c8a3fb15..8d3407da 100644
--- a/lua/diffs/runtime/highlight_groups.lua
+++ b/lua/diffs/runtime/highlight_groups.lua
@@ -163,12 +163,6 @@ function M.apply(config, is_default)
vim.api.nvim_set_hl(0, 'NeogitDiffDeleteInline', {})
end
- if config.highlights.overrides then
- for group, hl in pairs(config.highlights.overrides) do
- vim.api.nvim_set_hl(0, group, hl)
- end
- end
-
return { transparent = transparent }
end
diff --git a/lua/diffs/runtime/init.lua b/lua/diffs/runtime/init.lua
index f108bd12..8b4b01d3 100644
--- a/lua/diffs/runtime/init.lua
+++ b/lua/diffs/runtime/init.lua
@@ -64,14 +64,6 @@ local function init()
end
log.set_enabled(config.debug)
- if config.highlights.overrides and next(config.highlights.overrides) then
- log.notify(
- 'highlights.overrides is deprecated. Support ends on November 30, 2026. '
- .. 'Use vim.api.nvim_set_hl(). See :help diffs.nvim-highlights.',
- vim.log.levels.WARN
- )
- end
-
if config.highlights.intra and config.highlights.intra.algorithm == 'vscode' then
log.notify(
'libvscodediff support will be removed on 30 November 2026. '