aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-06-04 10:49:02 +0800
committerGitHub <noreply@github.com>2023-06-04 10:49:02 +0800
commitfdc8e966a9183c08f2afec0817d03b7417a883b3 (patch)
tree20c9be6adc18ba5d6a5717b0236ee56256dbc577
parent700cab00680fa25e0dbdf6f91f638f4da5a09909 (diff)
downloadrneovim-fdc8e966a9183c08f2afec0817d03b7417a883b3.tar.gz
rneovim-fdc8e966a9183c08f2afec0817d03b7417a883b3.tar.bz2
rneovim-fdc8e966a9183c08f2afec0817d03b7417a883b3.zip
fix(ui): don't send empty grid_line with redrawdebug=compositor (#23899)
-rw-r--r--src/nvim/ui_compositor.c2
-rw-r--r--test/functional/ui/screen.lua1
-rw-r--r--test/functional/ui/screen_basic_spec.lua15
3 files changed, 17 insertions, 1 deletions
diff --git a/src/nvim/ui_compositor.c b/src/nvim/ui_compositor.c
index e38c1437dc..59e9f71a69 100644
--- a/src/nvim/ui_compositor.c
+++ b/src/nvim/ui_compositor.c
@@ -439,7 +439,7 @@ static void compose_line(Integer row, Integer startcol, Integer endcol, LineFlag
static void compose_debug(Integer startrow, Integer endrow, Integer startcol, Integer endcol,
int syn_id, bool delay)
{
- if (!(rdb_flags & RDB_COMPOSITOR)) {
+ if (!(rdb_flags & RDB_COMPOSITOR) || startcol >= endcol) {
return;
}
diff --git a/test/functional/ui/screen.lua b/test/functional/ui/screen.lua
index 83424d3bea..2307fd106b 100644
--- a/test/functional/ui/screen.lua
+++ b/test/functional/ui/screen.lua
@@ -947,6 +947,7 @@ end
function Screen:_handle_grid_line(grid, row, col, items)
assert(self._options.ext_linegrid)
+ assert(#items > 0)
local line = self._grids[grid].rows[row+1]
local colpos = col+1
local hl_id = 0
diff --git a/test/functional/ui/screen_basic_spec.lua b/test/functional/ui/screen_basic_spec.lua
index 67e3b774b4..5d5be2e807 100644
--- a/test/functional/ui/screen_basic_spec.lua
+++ b/test/functional/ui/screen_basic_spec.lua
@@ -1096,3 +1096,18 @@ it('CTRL-F or CTRL-B scrolls a page after UI attach/resize #20605', function()
feed('<C-F>')
eq(953, funcs.line('w0'))
end)
+
+it("showcmd doesn't cause empty grid_line with redrawdebug=compositor #22593", function()
+ clear()
+ local screen = Screen.new(30, 2)
+ screen:set_default_attr_ids({
+ [0] = {bold = true, foreground = Screen.colors.Blue},
+ })
+ screen:attach()
+ command('set showcmd redrawdebug=compositor')
+ feed('d')
+ screen:expect{grid=[[
+ ^ |
+ d |
+ ]]}
+end)