fix(api): only flush nvim__redraw when necessary #31250

Problem:  Not possible to only set a "redraw later" type with
          nvim__redraw, which seems to be desired for the
          treesitter highlighter.
Solution: Do not update the screen when "flush" is explicitly set to
          false and only redraw later types are present. In that case,
          do not call ui_flush() either.
This commit is contained in:
luukvbaal
2024-11-18 15:35:21 +01:00
committed by GitHub
parent 1763eddede
commit 40347f6e27
3 changed files with 18 additions and 6 deletions

View File

@@ -65,7 +65,7 @@ function M.on_inlayhint(err, result, ctx)
if num_unprocessed == 0 then
client_hints[client_id] = {}
bufstate.version = ctx.version
api.nvim__redraw({ buf = bufnr, valid = true })
api.nvim__redraw({ buf = bufnr, valid = true, flush = false })
return
end
@@ -81,7 +81,7 @@ function M.on_inlayhint(err, result, ctx)
client_hints[client_id] = new_lnum_hints
bufstate.version = ctx.version
api.nvim__redraw({ buf = bufnr, valid = true })
api.nvim__redraw({ buf = bufnr, valid = true, flush = false })
end
--- |lsp-handler| for the method `workspace/inlayHint/refresh`
@@ -215,7 +215,7 @@ local function clear(bufnr)
end
end
api.nvim_buf_clear_namespace(bufnr, namespace, 0, -1)
api.nvim__redraw({ buf = bufnr, valid = true })
api.nvim__redraw({ buf = bufnr, valid = true, flush = false })
end
--- Disable inlay hints for a buffer