patch 9.1.1933: completion: complete_match() is not useful

Problem:  completion: complete_match() Vim script function and
          'isexpand' option are not that useful and confusing
          (after v9.1.1341)
Solution: Remove function and option and clean up code and documentation
          (Girish Palya).

complete_match() and 'isexpand' add no real functionality to Vim. They
duplicate what `strridx()` already does, yet pretend to be part of the
completion system. They have nothing to do with the completion mechanism.

* `f_complete_match()` in `insexpand.c` does not call any completion code.
   It’s just a `STRNCMP()` wrapper with fluff logic.
* `'isexpand'` exists only as a proxy argument to that function.
   It does nothing on its own and amounts to misuse of a new option.

The following Vim script function can be used to implement the same
functionality:

```vim
  func CompleteMatch(triggers, sep=',')
    let line = getline('.')->strpart(0, col('.') - 1)
    let result = []
    for trig in split(a:triggers, a:sep)
      let idx = strridx(line, trig)
      if l:idx >= 0
        call add(result, [idx + 1, trig])
      endif
    endfor
    return result
  endfunc
```

related: #16716
fixes: #18563
closes: #18790

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Girish Palya
2025-11-27 21:19:54 +00:00
committed by Christian Brabandt
parent c531501748
commit cbcbff8712
22 changed files with 29 additions and 415 deletions

View File

@ -275,7 +275,7 @@ Vim would never have become what it is now, without the help of these people!
improvements
Doug Kearns Runtime file maintainer
Foxe Chen Wayland support, new features
glepnir completion feature
glepnir work on improving completion feature, fixes
Girish Palya autocompletion (ins/cmdline), omnifunc
composing, search/subst completion, and more.
Hirohito Higashi lots of patches and fixes