]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.1.1452: completion: redundant check for completion flags v9.1.1452
authorglepnir <glephunter@gmail.com>
Tue, 10 Jun 2025 18:52:41 +0000 (20:52 +0200)
committerChristian Brabandt <cb@256bit.org>
Tue, 10 Jun 2025 18:52:41 +0000 (20:52 +0200)
Problem:  completion: redundant check for completion flags
Solution: refactor code slightly (glepnir)

refactor: nest fuzzy completion logic to avoid duplicate flag checks

- Combine COT_FUZZY checks into single nested condition
- Reduce redundant bitwise operations in ins_compl_new_leader()

closes: #17494

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
src/insexpand.c
src/version.c

index 9ee73e15e5cc0d68d84f4cdcd6eb6b72c7a0c3e7..2d398877b7bafd3b89ca8b64eb6d210271026348 100644 (file)
@@ -2316,6 +2316,7 @@ ins_compl_need_restart(void)
     static void
 ins_compl_new_leader(void)
 {
+    int            cur_cot_flags = get_cot_flags();
     ins_compl_del_pum();
     ins_compl_delete();
     ins_compl_insert_bytes(compl_leader.string + get_compl_len(), -1);
@@ -2350,20 +2351,21 @@ ins_compl_new_leader(void)
        compl_restarting = FALSE;
     }
 
-    // When 'cot' contains "fuzzy" set the cp_score
-    if (get_cot_flags() & COT_FUZZY)
-       set_fuzzy_score();
-    // Sort the matches linked list based on fuzzy score
-    int        cur_cot_flags = get_cot_flags();
-    if ((cur_cot_flags & COT_FUZZY) && !(cur_cot_flags & COT_NOSORT))
+    // When 'cot' contains "fuzzy" set the cp_score and maybe sort
+    if (cur_cot_flags & COT_FUZZY)
     {
-       sort_compl_match_list(cp_compare_fuzzy);
-       if ((cur_cot_flags & COT_NOINSERT) && !(cur_cot_flags & COT_NOSELECT)
-               && compl_first_match)
+       set_fuzzy_score();
+       // Sort the matches linked list based on fuzzy score
+       if (!(cur_cot_flags & COT_NOSORT))
        {
-           compl_shown_match = compl_first_match;
-           if (compl_shows_dir_forward())
-               compl_shown_match = compl_first_match->cp_next;
+           sort_compl_match_list(cp_compare_fuzzy);
+           if ((cur_cot_flags & (COT_NOINSERT | COT_NOSELECT)) == COT_NOINSERT
+                   && compl_first_match)
+           {
+               compl_shown_match = compl_first_match;
+               if (compl_shows_dir_forward())
+                   compl_shown_match = compl_first_match->cp_next;
+           }
        }
     }
 
index da96e54a03005dd2b35dbb70f0501ee524d27520..9e37c250bc7a5fd94158f4064dfbd31d81cc3173 100644 (file)
@@ -709,6 +709,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1452,
 /**/
     1451,
 /**/