emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/cape 845f3483f1 019/146: company-merge-capfs: Add suppo


From: ELPA Syncer
Subject: [elpa] externals/cape 845f3483f1 019/146: company-merge-capfs: Add support for :company-prefix-length
Date: Sun, 9 Jan 2022 20:57:39 -0500 (EST)

branch: externals/cape
commit 845f3483f1bb4b07fea584190145493d01a973e7
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>

    company-merge-capfs: Add support for :company-prefix-length
---
 cape.el | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/cape.el b/cape.el
index 612f4351dc..b83b217e0e 100644
--- a/cape.el
+++ b/cape.el
@@ -478,6 +478,7 @@
     (when-let (results (delq nil (mapcar #'funcall capfs)))
       (pcase-let ((`((,beg ,end . ,_)) results)
                   (candidates nil)
+                  (prefix-len nil)
                   (ht (make-hash-table :test #'equal)))
         (cl-loop for (beg2 end2 table . plist) in results do
                  (when (and (= beg beg2) (= end end2))
@@ -485,7 +486,15 @@
                           (metadata (completion-metadata "" table pred))
                           (sort (or (completion-metadata-get metadata 
'display-sort-function)
                                     #'identity))
-                          (cands (funcall sort (all-completions "" table 
pred))))
+                          (cands (funcall sort (all-completions "" table 
pred)))
+                          (plen (plist-get plist :company-prefix-length)))
+                     (cond
+                      ((eq plen t)
+                       (setq prefix-len t))
+                      ((and (not prefix-len) (integerp plen))
+                       (setq prefix-len plen))
+                      ((and (integerp prefix-len) (integerp plen))
+                       (setq prefix-len (max prefix-len plen))))
                      (setq candidates (nconc candidates cands))
                      (cl-loop for cand in cands do (puthash cand plist ht)))))
         (list beg end
@@ -497,6 +506,7 @@
                       (cycle-sort-function . identity))
                   (complete-with-action action candidates str pred)))
               :exclusive 'no
+              :company-prefix-length prefix-len
               :company-doc-buffer (cape--merged-function ht 
:company-doc-buffer)
               :company-location (cape--merged-function ht :company-location)
               :company-docsig (cape--merged-function ht :company-docsig)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]