diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 51c3c64e59..54b046b7d2 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -1,4 +1,4 @@ -*options.txt* For Vim version 9.1. Last change: 2025 Sep 08 +*options.txt* For Vim version 9.1. Last change: 2025 Sep 10 VIM REFERENCE MANUAL by Bram Moolenaar @@ -2303,13 +2303,13 @@ A jump table for the options with a short description can be found at |Q_op|. preinsert When autocompletion is not enabled, inserts the part of the first candidate word beyond the current completion leader, - highlighted with |hl-ComplMatchIns|. The cursor does not + highlighted with |hl-PreInsert|. The cursor does not move. Requires 'fuzzy' unset and 'menuone' in 'completeopt'. When 'autocomplete' is enabled, inserts the longest common - prefix of matches (from all shown items or buffer-specific - matches), highlighted with |hl-PreInsert|. This occurs only - when no menu item is selected. Press CTRL-Y to accept. + prefix of matches (from all shown items or from the + current buffer items). This occurs only when no menu item + is selected. Press CTRL-Y to accept. preview Show extra information about the currently selected completion in the preview window. Only works in @@ -4725,7 +4725,7 @@ A jump table for the options with a short description can be found at |Q_op|. |hl-PmenuThumb| X popup menu scrollbar thumb |hl-PmenuMatch| k popup menu matched text |hl-PmenuMatchSel| < popup menu matched text in selected line - |hl-PreInsert| I text inserted when "preinsert" and 'autocomplete' + |hl-PreInsert| I text inserted when "preinsert" is in 'completeopt' The display modes are: r reverse (termcap entry "mr" and "me") diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt index 949bf1759f..39a64da63d 100644 --- a/runtime/doc/syntax.txt +++ b/runtime/doc/syntax.txt @@ -1,4 +1,4 @@ -*syntax.txt* For Vim version 9.1. Last change: 2025 Sep 08 +*syntax.txt* For Vim version 9.1. Last change: 2025 Sep 10 VIM REFERENCE MANUAL by Bram Moolenaar @@ -5999,7 +5999,7 @@ PmenuMatchSel Popup menu: Matched text in selected item. Applied in *hl-ComplMatchIns* ComplMatchIns Matched text of the currently inserted completion. *hl-PreInsert* -PreInsert Text inserted during autocompletion when "preinsert". +PreInsert Text inserted when "preinsert" is in 'completeopt'. *hl-PopupSelected* PopupSelected Popup window created with |popup_menu()|. Linked to |hl-PmenuSel| by default. diff --git a/src/insexpand.c b/src/insexpand.c index d797bc5d94..dac3698cf7 100644 --- a/src/insexpand.c +++ b/src/insexpand.c @@ -1067,10 +1067,13 @@ ins_compl_col_range_attr(linenr_T lnum, int col) { int start_col; int attr; + int has_preinsert = ins_compl_has_preinsert(); if ((get_cot_flags() & COT_FUZZY) - || (!compl_autocomplete + || (!has_preinsert && (attr = syn_name2attr((char_u *)"ComplMatchIns")) == 0) + || (!compl_autocomplete && has_preinsert + && (attr = syn_name2attr((char_u *)"PreInsert")) == 0) || (compl_autocomplete && (!compl_autocomplete_preinsert || (attr = syn_name2attr((char_u *)"PreInsert")) == 0))) @@ -2531,9 +2534,7 @@ ins_compl_new_leader(void) if (compl_started && compl_autocomplete && !ins_compl_preinsert_effect()) { - if (ins_compl_insert(TRUE, TRUE) != OK) - (void)ins_compl_insert(FALSE, FALSE); - else + if (ins_compl_insert(TRUE, TRUE) == OK) compl_autocomplete_preinsert = TRUE; } else diff --git a/src/testdir/dumps/Test_autocompletedelay_7.dump b/src/testdir/dumps/Test_autocompletedelay_7.dump index 954b785d87..6c43fa46e9 100644 --- a/src/testdir/dumps/Test_autocompletedelay_7.dump +++ b/src/testdir/dumps/Test_autocompletedelay_7.dump @@ -1,7 +1,7 @@ |f+0&#ffffff0|o@1| @71 |f|o@1|b|a|r| @68 |f|o@1|b|a|r|b|a|z| @65 -|f>o@1| @71 +|f>o+0#00e0003&@1| +0#0000000&@71 |f+0#0000001#e0e0e08|o@1| @11| +0#4040ff13#ffffff0@59 |f+0#0000001#ffd7ff255|o@1|b|a|r| @8| +0#4040ff13#ffffff0@59 |f+0#0000001#ffd7ff255|o@1|b|a|r|b|a|z| @5| +0#4040ff13#ffffff0@59 diff --git a/src/version.c b/src/version.c index 10958a5091..c741108d90 100644 --- a/src/version.c +++ b/src/version.c @@ -724,6 +724,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1750, /**/ 1749, /**/