patch 9.1.1750: completion: preinserted text highlighed using ComplMatchIns

Commit: 
https://github.com/vim/vim/commit/2525c56e423b3ddce8de925f582b9c4d00079675
Author: Girish Palya <[email protected]>
Date:   Wed Sep 10 04:04:24 2025 -0400

    patch 9.1.1750: completion: preinserted text highlighed using ComplMatchIns
    
    Problem:  completion: preinserted text highlighed using ComplMatchIns
    Solution: Use highlighting group PreInsert and update the documentation
              (Girish Palya).
    
    When "preinsert" is included in 'completeopt', only the PreInsert
    highlight group should be applied, whether autocompletion is active or not.
    Previously, ComplMatchIns was used when autocompletion was not enabled.
    
    Related to https://github.com/vim/vim/pull/18213.
    
    closes: #18254
    
    Signed-off-by: Girish Palya <[email protected]>
    Signed-off-by: Christian Brabandt <[email protected]>

diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 51c3c64e5..54b046b7d 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 949bf1759..39a64da63 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 d797bc5d9..dac3698cf 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 954b785d8..6c43fa46e 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 10958a509..c741108d9 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,
 /**/

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/vim_dev/E1uwFyr-00FBzu-Ga%40256bit.org.

Raspunde prin e-mail lui