diff options
author | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2019-09-10 20:53:13 -0400 |
---|---|---|
committer | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2019-12-29 18:34:04 -0500 |
commit | 51c9e3c4d19f26af11a86a8f736a74a5cb6f2fa2 (patch) | |
tree | ee2c9466294f3b8a2f2b6a65d56a6402461c555d | |
parent | d56f36f46c400ead225caaef8ac2717ff1e4bfec (diff) | |
download | rneovim-51c9e3c4d19f26af11a86a8f736a74a5cb6f2fa2.tar.gz rneovim-51c9e3c4d19f26af11a86a8f736a74a5cb6f2fa2.tar.bz2 rneovim-51c9e3c4d19f26af11a86a8f736a74a5cb6f2fa2.zip |
vim-patch:8.0.1538: popupmenu is too far left when completion is long
Problem: Popupmenu is too far left when completion is long. (Linwei)
Solution: Adjust column computations. (Hirohito Higashi, closes vim/vim#2661)
https://github.com/vim/vim/commit/bb008dd3239c5fe3ac04501e38e4c950fa9426c8
-rw-r--r-- | src/nvim/popupmnu.c | 4 | ||||
-rw-r--r-- | test/functional/ui/popupmenu_spec.lua | 24 |
2 files changed, 14 insertions, 14 deletions
diff --git a/src/nvim/popupmnu.c b/src/nvim/popupmnu.c index a715129f8a..d53f2c2c7b 100644 --- a/src/nvim/popupmnu.c +++ b/src/nvim/popupmnu.c @@ -306,13 +306,13 @@ void pum_display(pumitem_T *array, int size, int selected, bool array_changed, || col < Columns - max_width))) { // align right pum edge with "col" if (curwin->w_p_rl - && col < max_width + pum_scrollbar + 1) { + && W_ENDCOL(curwin) < max_width + pum_scrollbar + 1) { pum_col = col + max_width + pum_scrollbar + 1; if (pum_col >= Columns) { pum_col = Columns - 1; } } else if (!curwin->w_p_rl) { - if (col > Columns - max_width - pum_scrollbar) { + if (curwin->w_wincol > Columns - max_width - pum_scrollbar) { pum_col = col - max_width - pum_scrollbar; if (pum_col < 0) { pum_col = 0; diff --git a/test/functional/ui/popupmenu_spec.lua b/test/functional/ui/popupmenu_spec.lua index ae84145934..13affac571 100644 --- a/test/functional/ui/popupmenu_spec.lua +++ b/test/functional/ui/popupmenu_spec.lua @@ -1156,10 +1156,10 @@ describe('builtin popupmenu', function() funcs.complete(29, {'word', 'choice', 'text', 'thing'}) screen:expect([[ some long prefix before the ^ | - {1:~ }{n: word }| - {1:~ }{n: choice }| - {1:~ }{n: text }| - {1:~ }{n: thing }| + {n:word }{1: }| + {n:choice }{1: }| + {n:text }{1: }| + {n:thing }{1: }| {1:~ }| {1:~ }| {1:~ }| @@ -1204,10 +1204,10 @@ describe('builtin popupmenu', function() feed('<c-p>') screen:expect([[ some long prefix before the text| - {1:^~ }{n: word }| - {1:~ }{n: choice }| - {1:~ }{s: text }| - {1:~ }{n: thing }| + {n:^word }{1: }| + {n:choice }{1: }| + {s:text }{1: }| + {n:thing }{1: }| {1:~ }| {1:~ }| {1:~ }| @@ -1301,10 +1301,10 @@ describe('builtin popupmenu', function() funcs.complete(29, {'word', 'choice', 'text', 'thing'}) screen:expect([[ some long prefix before the ^ | - {1:~ }{n: word }| - {1:~ }{n: choice }| - {1:~ }{n: text }| - {1:~ }{n: thing }| + {n:word }{1: }| + {n:choice }{1: }| + {n:text }{1: }| + {n:thing }{1: }| {1:~ }| {1:~ }| {1:~ }| |