@@ -70,13 +70,7 @@ function M.get_header_from_chunk(
7070 vim .list_extend (virt_texts , { { icon , diag_hi } })
7171
7272 local cursor_line = vim .api .nvim_win_get_cursor (0 )[1 ] - 1
73- local add_messages_opts = type (opts .options .add_messages ) == " table" and opts .options .add_messages
74- or {
75- messages = opts .options .add_messages ,
76- display_count = false ,
77- use_max_severity = false ,
78- show_multiple_glyphs = true ,
79- }
73+ local add_messages_opts = opts .options .add_messages
8074
8175 local add_messages = add_messages_opts .messages
8276 local display_count = add_messages_opts .display_count
@@ -130,13 +124,7 @@ function M.add_severity_icons(virt_texts, opts, severities, diag_hi)
130124 return
131125 end
132126
133- local add_messages_opts = type (opts .options .add_messages ) == " table" and opts .options .add_messages
134- or {
135- messages = opts .options .add_messages ,
136- display_count = false ,
137- use_max_severity = false ,
138- show_multiple_glyphs = true ,
139- }
127+ local add_messages_opts = opts .options .add_messages
140128
141129 local show_multiple_glyphs = add_messages_opts .show_multiple_glyphs
142130 local use_max_severity = add_messages_opts .use_max_severity
@@ -217,7 +205,9 @@ function M.get_diagnostic_icon(opts, severities, index_diag, total_chunks)
217205
218206 if opts .options .use_icons_from_diagnostic then
219207 if total_chunks == 1 then
220- icon = highlights .get_diagnostic_icon (severities [# severities ])
208+ local sorted = vim .deepcopy (severities )
209+ table.sort (sorted )
210+ icon = highlights .get_diagnostic_icon (sorted [1 ])
221211 else
222212 icon = highlights .get_diagnostic_icon (severities [index_diag ])
223213 end
@@ -393,22 +383,18 @@ function M.get_chunks(opts, diags_on_line, diag_index, diag_line, cursor_line, b
393383 local diag = diags_on_line [diag_index ]
394384
395385 local show_source = false
396- if type (opts .options .show_source ) == " table" then
397- if opts .options .show_source .enabled then
398- if opts .options .show_source .if_many then
399- local sources = {}
400- for _ , d in ipairs (diags_on_line ) do
401- if d .source then
402- sources [d .source ] = true
403- end
386+ if opts .options .show_source .enabled then
387+ if opts .options .show_source .if_many then
388+ local sources = {}
389+ for _ , d in ipairs (diags_on_line ) do
390+ if d .source then
391+ sources [d .source ] = true
404392 end
405- show_source = vim .tbl_count (sources ) > 1
406- else
407- show_source = true
408393 end
394+ show_source = vim .tbl_count (sources ) > 1
395+ else
396+ show_source = true
409397 end
410- elseif opts .options .show_source then
411- show_source = true
412398 end
413399
414400 local show_code = opts .options .show_code
@@ -444,9 +430,7 @@ function M.get_chunks(opts, diags_on_line, diag_index, diag_line, cursor_line, b
444430
445431 local other_extmarks_offset = extmarks .handle_other_extmarks (buf , diag_line , line_length )
446432
447- local multilines_enabled = type (opts .options .multilines ) == " table"
448- and opts .options .multilines .enabled
449- or opts .options .multilines
433+ local multilines_enabled = opts .options .multilines .enabled
450434
451435 if
452436 (opts .options .overflow .mode ~= " none" and not multilines_enabled ) or cursor_line == diag_line
0 commit comments