aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2024-06-15 21:39:56 +0800
committerGitHub <noreply@github.com>2024-06-15 21:39:56 +0800
commitfd2ef4edf9cc1461edaf9f7ce34711d9b40a7fb8 (patch)
tree2707da71d6188bc1012eb8a70e010f2c8e8e8d47
parentbb487ea12e279bb7ab599d55eb027f1c34e4ecbe (diff)
downloadrneovim-fd2ef4edf9cc1461edaf9f7ce34711d9b40a7fb8.tar.gz
rneovim-fd2ef4edf9cc1461edaf9f7ce34711d9b40a7fb8.tar.bz2
rneovim-fd2ef4edf9cc1461edaf9f7ce34711d9b40a7fb8.zip
vim-patch:9.1.0488: Wrong padding for pum "kind" with 'rightleft' (#29352)
Problem: Wrong padding for pum "kind" with 'rightleft'. Solution: Fix off-by-one error (zeertzjq). The screen_fill() above is end-exclusive, and - With 'rightleft' it fills `pum_col - pum_base_width - n + 1` to `col`, so the next `col` should be `pum_col - pum_base_width - n`. - With 'norightleft' it fills `col` to `pum_col - pum_base_width + n - 1`, so the next `col` should be `pum_col - pum_base_width + n`. closes: vim/vim#15004 https://github.com/vim/vim/commit/a2324373eb1c3f1777bc40cb6dcd5e895a15fe10
-rw-r--r--src/nvim/popupmenu.c2
-rw-r--r--test/functional/ui/popupmenu_spec.lua16
2 files changed, 9 insertions, 9 deletions
diff --git a/src/nvim/popupmenu.c b/src/nvim/popupmenu.c
index 1ef5aac1e9..b8e7630802 100644
--- a/src/nvim/popupmenu.c
+++ b/src/nvim/popupmenu.c
@@ -713,7 +713,7 @@ void pum_redraw(void)
if (pum_rl) {
grid_line_fill(col_off - pum_base_width - n + 1, grid_col + 1, schar_from_ascii(' '), attr);
- grid_col = col_off - pum_base_width - n + 1;
+ grid_col = col_off - pum_base_width - n;
} else {
grid_line_fill(grid_col, col_off + pum_base_width + n, schar_from_ascii(' '), attr);
grid_col = col_off + pum_base_width + n;
diff --git a/test/functional/ui/popupmenu_spec.lua b/test/functional/ui/popupmenu_spec.lua
index 323be3bd4d..177b2d707a 100644
--- a/test/functional/ui/popupmenu_spec.lua
+++ b/test/functional/ui/popupmenu_spec.lua
@@ -4664,10 +4664,10 @@ describe('builtin popupmenu', function()
feed('S<C-X><C-O>')
screen:expect([[
^ |
- {1: }{s: dnikoof oof}|
- {1: }{n: dnikoof raboof}|
- {1: }{n: dnikoof zaBoof}|
- {1: }{n: dnikoof alaboof}|
+ {1: }{s: dnikoof oof}|
+ {1: }{n: dnikoof raboof}|
+ {1: }{n: dnikoof zaBoof}|
+ {1: }{n: dnikoof alaboof}|
{1: }{n: 好你}|
{1: }{n: 吗好你}|
{1: }{n: 吗好不你}|
@@ -4678,10 +4678,10 @@ describe('builtin popupmenu', function()
feed('fo')
screen:expect([[
^ of|
- {1: }{s: dnikoof o}{ms:of}|
- {1: }{n: dnikoof rabo}{mn:of}|
- {1: }{n: dnikoof zaBo}{mn:of}|
- {1: }{n: dnikoofalabo}{mn:of}|
+ {1: }{s: dnikoof o}{ms:of}|
+ {1: }{n: dnikoof rabo}{mn:of}|
+ {1: }{n: dnikoof zaBo}{mn:of}|
+ {1: }{n: dnikoof alabo}{mn:of}|
{1: ~}|*14
{2:-- }{5:match 1 of 8} |
]])