diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-06-04 10:49:02 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-04 10:49:02 +0800 |
commit | fdc8e966a9183c08f2afec0817d03b7417a883b3 (patch) | |
tree | 20c9be6adc18ba5d6a5717b0236ee56256dbc577 | |
parent | 700cab00680fa25e0dbdf6f91f638f4da5a09909 (diff) | |
download | rneovim-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.c | 2 | ||||
-rw-r--r-- | test/functional/ui/screen.lua | 1 | ||||
-rw-r--r-- | test/functional/ui/screen_basic_spec.lua | 15 |
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) |