Skip to content

Commit de96ca5

Browse files
authored
split diagnostic lines on \n character in floating window (#1438)
1 parent 8084e84 commit de96ca5

File tree

1 file changed

+21
-3
lines changed

1 file changed

+21
-3
lines changed

lua/lspsaga/diagnostic/show.lua

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ function sd:show(opt)
293293
curnode.expand = true
294294
for i, entry in ipairs(curnode.diags) do
295295
local virt_start = i == #curnode.diags and ui.lines[1] or ui.lines[2]
296-
local mes = msg_fmt(entry)
296+
297297
if i == 1 then
298298
---@diagnostic disable-next-line: param-type-mismatch
299299
local fname = fn.fnamemodify(api.nvim_buf_get_name(tonumber(entry.bufnr)), ':t')
@@ -309,8 +309,26 @@ function sd:show(opt)
309309
count = count + 1
310310
curnode.lnum = count
311311
end
312-
self:write_line(mes, entry.severity, virt_start, count)
313-
count = count + 1
312+
313+
local messages = vim.split(entry.message, '\n')
314+
for j, message in ipairs(messages) do
315+
local mes = ''
316+
if j == 1 then
317+
mes = msg_fmt({
318+
message = message,
319+
lnum = entry.lnum,
320+
col = entry.col,
321+
bufnr = entry.bufnr,
322+
source = entry.source,
323+
code = entry.code,
324+
})
325+
else
326+
mes = ' ' .. message
327+
end
328+
329+
self:write_line(mes, entry.severity, virt_start, count)
330+
count = count + 1
331+
end
314332
end
315333
curnode = curnode.next
316334
end

0 commit comments

Comments
 (0)