[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master 395f846 159/173: Revert "Remove completions without annota
From: |
Dmitry Gutov |
Subject: |
[elpa] master 395f846 159/173: Revert "Remove completions without annotations when considering duplicates" |
Date: |
Thu, 23 Jun 2016 00:28:47 +0000 (UTC) |
branch: master
commit 395f846b05fa37be4d00247941a370e6e0b7790e
Author: Dmitry Gutov <address@hidden>
Commit: Dmitry Gutov <address@hidden>
Revert "Remove completions without annotations when considering duplicates"
This reverts commit 777982049314af306a020b7de2ca6cb00b428822.
Closes #509.
---
NEWS.md | 3 ---
company.el | 54 +++++++++++++++++++++-------------------------------
test/core-tests.el | 14 ++++++--------
3 files changed, 28 insertions(+), 43 deletions(-)
diff --git a/NEWS.md b/NEWS.md
index 6612ca2..96e72e8 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -14,9 +14,6 @@
the selected tooltip line.
* `company-clang-objc-templatify` has been renamed to
`company-template-objc-templatify`.
-* When duplicates are removed, completions without annotations are also removed
- in favor of completions with equal names that have annotations (experimental
- change) ([#432](https://github.com/company-mode/company-mode/issues/432)).
* New user option `company-etags-everywhere`.
* `company-yasnippet` supports `yas-key-syntaxes` better. But we use them in
the
reverse order, preferring the longest key prefix that matches anything. And
we
diff --git a/company.el b/company.el
index 23ed09a..e35d7e5 100644
--- a/company.el
+++ b/company.el
@@ -1205,7 +1205,7 @@ can retrieve meta-data for them."
(unless (company-call-backend 'sorted)
(setq candidates (sort candidates 'string<)))
(when (company-call-backend 'duplicates)
- (setq candidates (company--strip-duplicates candidates)))
+ (company--strip-duplicates candidates))
candidates)
(defun company--postprocess-candidates (candidates)
@@ -1216,37 +1216,27 @@ can retrieve meta-data for them."
(company--transform-candidates candidates))
(defun company--strip-duplicates (candidates)
- (let* ((annos 'unk)
- (str (car candidates))
- (ref (cdr candidates))
- res str2 anno2)
- (while ref
- (setq str2 (pop ref))
- (if (not (equal str str2))
- (progn
- (push str res)
- (setq str str2)
- (setq annos 'unk))
- (setq anno2 (company-call-backend
- 'annotation str2))
- (cond
- ((null anno2)) ; Skip it.
- ((when (eq annos 'unk)
- (let ((ann1 (company-call-backend 'annotation str)))
- (if (null ann1)
- ;; No annotation on the earlier element, drop it.
- t
- (setq annos (list ann1))
- nil)))
- (setq annos (list anno2))
- (setq str str2))
- ((member anno2 annos)) ; Also skip.
- (t
- (push anno2 annos)
- (push str res) ; Maintain ordering.
- (setq str str2)))))
- (when str (push str res))
- (nreverse res)))
+ (let ((c2 candidates)
+ (annos 'unk))
+ (while c2
+ (setcdr c2
+ (let ((str (pop c2)))
+ (while (let ((str2 (car c2)))
+ (if (not (equal str str2))
+ (progn
+ (setq annos 'unk)
+ nil)
+ (when (eq annos 'unk)
+ (setq annos (list (company-call-backend
+ 'annotation str))))
+ (let ((anno2 (company-call-backend
+ 'annotation str2)))
+ (if (member anno2 annos)
+ t
+ (push anno2 annos)
+ nil))))
+ (pop c2))
+ c2)))))
(defun company--transform-candidates (candidates)
(let ((c candidates))
diff --git a/test/core-tests.el b/test/core-tests.el
index 46d1709..666ed80 100644
--- a/test/core-tests.el
+++ b/test/core-tests.el
@@ -408,11 +408,9 @@
("a" . "b")
("a" . "c")
("a" . "b")
- ("b" . nil)
("b" . "c")
- ("a" . "b")
- ("c" . nil)
- ("c" . nil)))
+ ("b" . nil)
+ ("a" . "b")))
(fn (lambda (kvs)
(mapcar (lambda (kv) (propertize (car kv) 'ann (cdr kv)))
kvs)))
@@ -424,18 +422,18 @@
(`duplicates t)
(`annotation (get-text-property 0 'ann arg)))))
(reference '(("a" . "b")
+ ("a" . nil)
("a" . "c")
("b" . "c")
- ("a" . "b")
- ("c" . nil))))
+ ("b" . nil)
+ ("a" . "b"))))
(let ((ct-sorted t))
(should (ct-equal-including-properties
(company--preprocess-candidates (funcall fn kvs))
(funcall fn reference))))
(should (ct-equal-including-properties
(company--preprocess-candidates (funcall fn kvs))
- (funcall fn (append (butlast reference 2)
- (last reference)))))))
+ (funcall fn (butlast reference))))))
;;; Row and column
- [elpa] master 6bf2491 102/173: Rename company-clang-obc-templatify to company-template-objc-templatify, (continued)
- [elpa] master 6bf2491 102/173: Rename company-clang-obc-templatify to company-template-objc-templatify, Dmitry Gutov, 2016/06/22
- [elpa] master a95d7f1 081/173: Respect yas-key-syntaxes (#422), Dmitry Gutov, 2016/06/22
- [elpa] master 5d0a9bb 118/173: company-semantic: Retain function overloads, Dmitry Gutov, 2016/06/22
- [elpa] master ca447ec 129/173: [#464] Optimisation and fixes in `company-files`, Dmitry Gutov, 2016/06/22
- [elpa] master b526978 133/173: Fix typo in dependency name, Dmitry Gutov, 2016/06/22
- [elpa] master 39eb115 113/173: company--posn-col-row: Fall back to posn-col-row, Dmitry Gutov, 2016/06/22
- [elpa] master ae0a406 139/173: Add some C++11 keywords, fixes #478, Dmitry Gutov, 2016/06/22
- [elpa] master 9b89556 149/173: company-capf: Look up `face', not `font-lock-face', Dmitry Gutov, 2016/06/22
- [elpa] master d587bd0 156/173: Fix an old typo, Dmitry Gutov, 2016/06/22
- [elpa] master 2d9bf1e 160/173: company--preprocess-candidates: Check that all CANDIDATES are strings, Dmitry Gutov, 2016/06/22
- [elpa] master 395f846 159/173: Revert "Remove completions without annotations when considering duplicates",
Dmitry Gutov <=
- [elpa] master 69228c7 168/173: Tag company-dabbrev-ignore-buffers with package-version, Dmitry Gutov, 2016/06/22
- [elpa] master be2f586 100/173: Add workaround for bug#18067, Dmitry Gutov, 2016/06/22
- [elpa] master df14727 110/173: Fix bbdb completion for multi-recipient messages, Dmitry Gutov, 2016/06/22
- [elpa] master 18a77b9 121/173: Improve the example in the Commentary, Dmitry Gutov, 2016/06/22
- [elpa] master c97828c 142/173: Clarify where callback must be called from, Dmitry Gutov, 2016/06/22
- [elpa] master 4cd4c3a 123/173: Turn :company-prefix-length property into a value, Dmitry Gutov, 2016/06/22
- [elpa] master 18b0414 103/173: Declare python-shell-get-process, Dmitry Gutov, 2016/06/22
- [elpa] master 23c6f85 109/173: Merge pull request #450 from fbergroth/capf-prefix-function, Dmitry Gutov, 2016/06/22
- [elpa] master 5bfbb05 098/173: Add the pre-render backend command, Dmitry Gutov, 2016/06/22
- [elpa] master 3ec9d5d 145/173: Add Julia keywords, Dmitry Gutov, 2016/06/22