Skip to content

Commit ecce93f

Browse files
committed
fix(test): update helpers for config normalization changes
1 parent 291360f commit ecce93f

4 files changed

Lines changed: 74 additions & 40 deletions

File tree

lua/tiny-inline-diagnostic/diagnostic.lua

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,12 @@ end
121121
function M.get_diagnostic_under_cursor()
122122
local buf = vim.api.nvim_get_current_buf()
123123
local diagnostics = vim.diagnostic.get(buf)
124-
return M.filter_diags_under_cursor({ options = {} }, buf, diagnostics)
124+
local minimal_opts = {
125+
options = {
126+
show_related = { enabled = true, max_count = 3 },
127+
},
128+
}
129+
return M.filter_diags_under_cursor(minimal_opts, buf, diagnostics)
125130
end
126131

127132
return M

lua/tiny-inline-diagnostic/filter.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ end
9090
---@param diagnostics table
9191
---@return table
9292
local function add_related_diagnostics(opts, diagnostics)
93-
if not opts.options.show_related.enabled then
93+
if not opts.options.show_related or not opts.options.show_related.enabled then
9494
return diagnostics
9595
end
9696

lua/tiny-inline-diagnostic/init.lua

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,21 @@ local function setup_colorscheme_handler(config)
9393
})
9494
end
9595

96+
---Normalize a single option field that can be boolean or table
97+
---@param value any User-provided value
98+
---@param default_value table Default table value
99+
---@param boolean_key string Key to set when value is boolean (e.g., "enabled" or "messages")
100+
---@return table Normalized table value
101+
local function normalize_option(value, default_value, boolean_key)
102+
if type(value) == "boolean" then
103+
return vim.tbl_deep_extend("force", default_value, { [boolean_key] = value })
104+
elseif type(value) == "table" then
105+
return vim.tbl_deep_extend("force", default_value, value)
106+
else
107+
return vim.deepcopy(default_value)
108+
end
109+
end
110+
96111
---Normalize configuration values
97112
local function normalize_config(config)
98113
if config.options.overflow and config.options.overflow.mode then
@@ -107,44 +122,29 @@ local function normalize_config(config)
107122
config = vim.tbl_deep_extend("force", config, preset)
108123
end
109124

110-
if type(config.options.multilines) == "boolean" then
111-
config.options.multilines = vim.tbl_deep_extend("force", default_config.options.multilines, {
112-
enabled = config.options.multilines,
113-
})
114-
elseif type(config.options.multilines) == "table" then
115-
config.options.multilines =
116-
vim.tbl_deep_extend("force", default_config.options.multilines, config.options.multilines)
117-
end
118-
119-
if type(config.options.add_messages) == "boolean" then
120-
config.options.add_messages =
121-
vim.tbl_deep_extend("force", default_config.options.add_messages, {
122-
messages = config.options.add_messages,
123-
})
124-
elseif type(config.options.add_messages) == "table" then
125-
config.options.add_messages =
126-
vim.tbl_deep_extend("force", default_config.options.add_messages, config.options.add_messages)
127-
end
128-
129-
if type(config.options.show_source) == "boolean" then
130-
config.options.show_source =
131-
vim.tbl_deep_extend("force", default_config.options.show_source, {
132-
enabled = config.options.show_source,
133-
})
134-
elseif type(config.options.show_source) == "table" then
135-
config.options.show_source =
136-
vim.tbl_deep_extend("force", default_config.options.show_source, config.options.show_source)
137-
end
138-
139-
if type(config.options.show_related) == "boolean" then
140-
config.options.show_related =
141-
vim.tbl_deep_extend("force", default_config.options.show_related, {
142-
enabled = config.options.show_related,
143-
})
144-
elseif type(config.options.show_related) == "table" then
145-
config.options.show_related =
146-
vim.tbl_deep_extend("force", default_config.options.show_related, config.options.show_related)
147-
end
125+
config.options.multilines = normalize_option(
126+
config.options.multilines,
127+
default_config.options.multilines,
128+
"enabled"
129+
)
130+
131+
config.options.add_messages = normalize_option(
132+
config.options.add_messages,
133+
default_config.options.add_messages,
134+
"messages"
135+
)
136+
137+
config.options.show_source = normalize_option(
138+
config.options.show_source,
139+
default_config.options.show_source,
140+
"enabled"
141+
)
142+
143+
config.options.show_related = normalize_option(
144+
config.options.show_related,
145+
default_config.options.show_related,
146+
"enabled"
147+
)
148148

149149
return config
150150
end

tests/helpers.lua

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,11 @@ function H.make_opts(overrides)
8888
enabled = false,
8989
if_many = false,
9090
},
91+
show_code = true,
92+
show_related = {
93+
enabled = true,
94+
max_count = 3,
95+
},
9196
add_messages = {
9297
messages = true,
9398
display_count = false,
@@ -103,8 +108,10 @@ function H.make_opts(overrides)
103108
always_show = false,
104109
trim_whitespaces = false,
105110
tabstop = 4,
111+
severity = nil,
106112
},
107113
show_all_diags_on_cursorline = false,
114+
show_diags_only_under_cursor = false,
108115
enable_on_insert = false,
109116
enable_on_select = false,
110117
format = nil,
@@ -127,12 +134,34 @@ function H.make_opts(overrides)
127134
override_open_float = false,
128135
overwrite_events = nil,
129136
multiple_diag_under_cursor = false,
137+
experimental = {
138+
use_window_local_extmarks = false,
139+
},
130140
},
131141
disabled_ft = {},
132142
}
143+
144+
local defaults = vim.deepcopy(base.options)
145+
133146
if overrides then
134147
base = vim.tbl_deep_extend("force", base, overrides)
135148
end
149+
150+
local function normalize_option(value, default_value, boolean_key)
151+
if type(value) == "boolean" then
152+
return vim.tbl_deep_extend("force", default_value, { [boolean_key] = value })
153+
elseif type(value) == "table" then
154+
return vim.tbl_deep_extend("force", default_value, value)
155+
else
156+
return vim.deepcopy(default_value)
157+
end
158+
end
159+
160+
base.options.multilines = normalize_option(base.options.multilines, defaults.multilines, "enabled")
161+
base.options.add_messages = normalize_option(base.options.add_messages, defaults.add_messages, "messages")
162+
base.options.show_source = normalize_option(base.options.show_source, defaults.show_source, "enabled")
163+
base.options.show_related = normalize_option(base.options.show_related, defaults.show_related, "enabled")
164+
136165
return base
137166
end
138167

0 commit comments

Comments
 (0)