0
0
mirror of https://github.com/vim/vim.git synced 2025-11-10 10:47:23 -05:00

patch 9.1.1594: completion: search completion throws errors

Problem:  completion: search completion throws errors, wrong placement
          of pum menu with 'imi'=1 (berggeist)
Solution: Fix those errors (Girish Palya)

fixes: #17858
closes: #17870

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Girish Palya
2025-08-06 17:12:14 +02:00
committed by Christian Brabandt
parent bb0860abc9
commit 66467cf5d8
5 changed files with 69 additions and 8 deletions

View File

@@ -109,7 +109,7 @@ pum_display(
#endif
#ifdef FEAT_RIGHTLEFT
pum_rl = State != MODE_CMDLINE && curwin->w_p_rl;
pum_rl = (State & MODE_CMDLINE) == 0 && curwin->w_p_rl;
#endif
do
@@ -129,7 +129,7 @@ pum_display(
// Remember the essential parts of the window position and size, so we
// can decide when to reposition the popup menu.
pum_window = curwin;
if (State == MODE_CMDLINE)
if (State & MODE_CMDLINE)
// cmdline completion popup menu
pum_win_row = cmdline_row;
else
@@ -165,7 +165,7 @@ pum_display(
&& pum_win_row - above_row > (below_row - above_row) / 2)
{
// pum above "pum_win_row"
if (State == MODE_CMDLINE)
if (State & MODE_CMDLINE)
// for cmdline pum, no need for context lines
context_lines = 0;
else
@@ -191,7 +191,7 @@ pum_display(
else
{
// pum below "pum_win_row"
if (State == MODE_CMDLINE)
if (State & MODE_CMDLINE)
// for cmdline pum, no need for context lines
context_lines = 0;
else
@@ -230,7 +230,7 @@ pum_display(
max_width = p_pmw;
// Calculate column
if (State == MODE_CMDLINE)
if (State & MODE_CMDLINE)
// cmdline completion popup menu
cursor_col = cmdline_compl_startcol();
else
@@ -440,7 +440,7 @@ pum_compute_text_attrs(char_u *text, hlf_T hlf, int user_hlattr)
return NULL;
is_select = hlf == HLF_PSI;
leader = State == MODE_CMDLINE ? cmdline_compl_pattern()
leader = (State & MODE_CMDLINE) ? cmdline_compl_pattern()
: ins_compl_leader();
if (leader == NULL || *leader == NUL)
return NULL;
@@ -449,7 +449,7 @@ pum_compute_text_attrs(char_u *text, hlf_T hlf, int user_hlattr)
if (attrs == NULL)
return NULL;
in_fuzzy = State == MODE_CMDLINE ? cmdline_compl_is_fuzzy()
in_fuzzy = (State & MODE_CMDLINE) ? cmdline_compl_is_fuzzy()
: (get_cot_flags() & COT_FUZZY) != 0;
leader_len = STRLEN(leader);