commit c9e8394d3e7cba0364fd4d0cc6019b50fd6c975e
parent 4cc4fc34e76ce67d4deb9cc25820ea1c321f0034
Author: Tomas Nemec <owl@gtms.dev>
Date: Thu, 1 Feb 2024 06:48:50 +0100
update
Diffstat:
1 file changed, 26 insertions(+), 9 deletions(-)
diff --git a/plugin/diagflow.lua b/plugin/diagflow.lua
@@ -99,22 +99,39 @@ local function render(diagnostics, bufnr)
return
end
+ local cursor_lnum = vim.fn.getcurpos(winnr)[2] - vim.fn.getwininfo(winnr)[1].topline
local padding = get_padding(bufnr, winnr)
local line_offset = vim.fn.getwininfo(winnr)[1].topline - 1 + padding
+ local skipped_some = false
for _, diagnostic in ipairs(diagnostics) do
- local message_lines = create_boxed_text(vim.split(diagnostic.message, '\n'))
+ local message_lines = vim.split(diagnostic.message, '\n')
+ -- local message_lines = create_boxed_text(vim.split(diagnostic.message, '\n'))
for _, message in ipairs(message_lines) do
local hl_group = severity_hl_map[diagnostic.severity]
- vim.api.nvim_buf_set_extmark(bufnr, ns, 0 + line_offset, 0, {
- virt_text = { { message, hl_group } },
- virt_text_pos = 'right_align',
- virt_text_hide = true,
- strict = false,
- priority = vim.highlight.priorities.user,
- })
- line_offset = line_offset + 1
+ if line_offset < cursor_lnum then
+ vim.api.nvim_buf_set_extmark(bufnr, ns, line_offset, 0, {
+ virt_text = { { message, hl_group } },
+ virt_text_pos = 'right_align',
+ virt_text_hide = true,
+ strict = false,
+ priority = vim.highlight.priorities.user,
+ })
+ line_offset = line_offset + 1
+ else
+ skipped_some = true
+ end
end
end
+
+ if skipped_some then
+ vim.api.nvim_buf_set_extmark(bufnr, ns, line_offset, 0, {
+ virt_text = { { '...', 'DiagnosticWarn' } },
+ virt_text_pos = 'right_align',
+ virt_text_hide = true,
+ strict = false,
+ priority = vim.highlight.priorities.user,
+ })
+ end
end
local function reload()