diff options
| -rw-r--r-- | cape.el | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -903,11 +903,13 @@ The functions `cape-wrap-super' and `cape-capf-super' are experimental." #'identity)) (cands (funcall sort (all-completions str table pr)))) (cl-loop - for cand in-ref cands do - (if (eq (gethash cand ht t) t) - (puthash cand plist ht) + for cand in-ref cands + for other = (gethash cand ht t) do + (cond + ((eq other t) (puthash cand plist ht)) + ((not (equal other plist)) (setf cand (propertize cand 'cape-capf-super - (cons cand plist))))) + (cons cand plist)))))) (push cands candidates))) (setq cand-ht ht) (apply #'nconc (nreverse candidates)))) |
