refactor: change highlights.context config to table structure
Problem: highlights.context was a plain integer, inconsistent with the
table structure used by treesitter, vim, and intra sub-configs.
Solution: change to { enabled = true, lines = 25 } with full
vim.validate() coverage matching the existing pattern.
This commit is contained in:
parent
2e1ebdee03
commit
9e32384f18
5 changed files with 76 additions and 29 deletions
|
|
@ -289,7 +289,8 @@ function M.highlight_hunk(bufnr, ns, hunk, opts)
|
|||
---@type table<integer, true>
|
||||
local covered_lines = {}
|
||||
|
||||
local context = opts.highlights.context or 0
|
||||
local ctx_cfg = opts.highlights.context
|
||||
local context = (ctx_cfg and ctx_cfg.enabled) and ctx_cfg.lines or 0
|
||||
local leading = {}
|
||||
local trailing = {}
|
||||
if (use_ts or use_vim) and context > 0 and hunk.file_new_start and hunk.repo_root then
|
||||
|
|
|
|||
|
|
@ -11,10 +11,14 @@
|
|||
---@field algorithm string
|
||||
---@field max_lines integer
|
||||
|
||||
---@class diffs.ContextConfig
|
||||
---@field enabled boolean
|
||||
---@field lines integer
|
||||
|
||||
---@class diffs.Highlights
|
||||
---@field background boolean
|
||||
---@field gutter boolean
|
||||
---@field context integer
|
||||
---@field context diffs.ContextConfig
|
||||
---@field treesitter diffs.TreesitterConfig
|
||||
---@field vim diffs.VimConfig
|
||||
---@field intra diffs.IntraConfig
|
||||
|
|
@ -81,7 +85,10 @@ local default_config = {
|
|||
highlights = {
|
||||
background = true,
|
||||
gutter = true,
|
||||
context = 25,
|
||||
context = {
|
||||
enabled = true,
|
||||
lines = 25,
|
||||
},
|
||||
treesitter = {
|
||||
enabled = true,
|
||||
max_lines = 500,
|
||||
|
|
@ -233,12 +240,19 @@ local function init()
|
|||
vim.validate({
|
||||
['highlights.background'] = { opts.highlights.background, 'boolean', true },
|
||||
['highlights.gutter'] = { opts.highlights.gutter, 'boolean', true },
|
||||
['highlights.context'] = { opts.highlights.context, 'number', true },
|
||||
['highlights.context'] = { opts.highlights.context, 'table', true },
|
||||
['highlights.treesitter'] = { opts.highlights.treesitter, 'table', true },
|
||||
['highlights.vim'] = { opts.highlights.vim, 'table', true },
|
||||
['highlights.intra'] = { opts.highlights.intra, 'table', true },
|
||||
})
|
||||
|
||||
if opts.highlights.context then
|
||||
vim.validate({
|
||||
['highlights.context.enabled'] = { opts.highlights.context.enabled, 'boolean', true },
|
||||
['highlights.context.lines'] = { opts.highlights.context.lines, 'number', true },
|
||||
})
|
||||
end
|
||||
|
||||
if opts.highlights.treesitter then
|
||||
vim.validate({
|
||||
['highlights.treesitter.enabled'] = { opts.highlights.treesitter.enabled, 'boolean', true },
|
||||
|
|
@ -294,8 +308,13 @@ local function init()
|
|||
if opts.debounce_ms and opts.debounce_ms < 0 then
|
||||
error('diffs: debounce_ms must be >= 0')
|
||||
end
|
||||
if opts.highlights and opts.highlights.context and opts.highlights.context < 0 then
|
||||
error('diffs: highlights.context must be >= 0')
|
||||
if
|
||||
opts.highlights
|
||||
and opts.highlights.context
|
||||
and opts.highlights.context.lines
|
||||
and opts.highlights.context.lines < 0
|
||||
then
|
||||
error('diffs: highlights.context.lines must be >= 0')
|
||||
end
|
||||
if
|
||||
opts.highlights
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue