mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-16 05:00:51 -08:00
Extract common suffix for * in partial-completion.
* minibuffer.el (completion--sreverse, completion--common-suffix): New functions. (completion-pcm--merge-completions): Extract common suffix when safe.
This commit is contained in:
parent
0c495c215a
commit
1493963bb1
2 changed files with 26 additions and 1 deletions
|
|
@ -1,5 +1,9 @@
|
|||
2010-05-06 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* minibuffer.el (completion--sreverse, completion--common-suffix):
|
||||
New functions.
|
||||
(completion-pcm--merge-completions): Extract common suffix when safe.
|
||||
|
||||
* emacs-lisp/easy-mmode.el (define-minor-mode):
|
||||
Make :variable more flexible.
|
||||
* files.el (auto-save-mode): Use it to define using define-minor-mode.
|
||||
|
|
|
|||
|
|
@ -1983,6 +1983,17 @@ filter out additional entries (because TABLE migth not obey PRED)."
|
|||
(nconc (completion-pcm--hilit-commonality pattern all)
|
||||
(length prefix)))))
|
||||
|
||||
(defun completion--sreverse (str)
|
||||
"Like `reverse' but for a string STR rather than a list."
|
||||
(apply 'string (nreverse (mapcar 'identity str))))
|
||||
|
||||
(defun completion--common-suffix (strs)
|
||||
"Return the common suffix of the strings STRS."
|
||||
(completion--sreverse
|
||||
(try-completion
|
||||
""
|
||||
(mapcar 'completion--sreverse comps))))
|
||||
|
||||
(defun completion-pcm--merge-completions (strs pattern)
|
||||
"Extract the commonality in STRS, with the help of PATTERN."
|
||||
;; When completing while ignoring case, we want to try and avoid
|
||||
|
|
@ -2044,7 +2055,17 @@ filter out additional entries (because TABLE migth not obey PRED)."
|
|||
;; `any' into a `star' because the surrounding context has
|
||||
;; changed such that string->pattern wouldn't add an `any'
|
||||
;; here any more.
|
||||
(unless unique (push elem res))
|
||||
(unless unique
|
||||
(push elem res)
|
||||
(when (memq elem '(star point))
|
||||
;; Extract common suffix additionally to common prefix.
|
||||
;; Only do it for `point' and `star' since for
|
||||
;; `any' it could lead to a merged completion that
|
||||
;; doesn't itself match the candidates.
|
||||
(let ((suffix (completion--common-suffix comps)))
|
||||
(assert (stringp suffix))
|
||||
(unless (equal suffix "")
|
||||
(push suffix res)))))
|
||||
(setq fixed "")))))
|
||||
;; We return it in reverse order.
|
||||
res)))))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue