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

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

[elpa] master a5289c5 03/12: Fix backspacing into a "bad" prefix


From: Dmitry Gutov
Subject: [elpa] master a5289c5 03/12: Fix backspacing into a "bad" prefix
Date: Sat, 15 Jul 2017 13:36:44 -0400 (EDT)

branch: master
commit a5289c533c7a5445b2add25b7bf784cfa0f1f23c
Author: Dmitry Gutov <address@hidden>
Commit: Dmitry Gutov <address@hidden>

    Fix backspacing into a "bad" prefix
    
    Fixes #667.
---
 company.el         |  5 +++--
 test/core-tests.el | 23 ++++++++++++++++++++---
 2 files changed, 23 insertions(+), 5 deletions(-)

diff --git a/company.el b/company.el
index 153b1f5..fbf0315 100644
--- a/company.el
+++ b/company.el
@@ -1509,8 +1509,9 @@ prefix match (same case) will be prioritized."
       (setq company-prefix new-prefix)
       (company-update-candidates c)
       c)
-     ((company-auto-complete-p (buffer-substring-no-properties
-                                (point) company-point))
+     ((and (> (point) company-point)
+           (company-auto-complete-p (buffer-substring-no-properties
+                                     (point) company-point)))
       ;; auto-complete
       (save-excursion
         (goto-char company-point)
diff --git a/test/core-tests.el b/test/core-tests.el
index 977f1cf..6c846d2 100644
--- a/test/core-tests.el
+++ b/test/core-tests.el
@@ -157,16 +157,16 @@
   (let ((one (lambda (command &optional _)
                (cl-case command
                  (prefix "a")
-                 (candidates '("aa" "ca" "ba")))))
+                 (candidates (list "aa" "ca" "ba")))))
         (two (lambda (command &optional _)
                (cl-case command
                  (prefix "a")
-                 (candidates '("bb" "ab")))))
+                 (candidates (list "bb" "ab")))))
         (tri (lambda (command &optional _)
                (cl-case command
                  (prefix "a")
                  (sorted t)
-                 (candidates '("cc" "bc" "ac"))))))
+                 (candidates (list "cc" "bc" "ac"))))))
     (let ((company-backend (list one two tri :separate)))
       (should (company-call-backend 'sorted))
       (should-not (company-call-backend 'duplicates))
@@ -315,6 +315,23 @@
         (company-call 'backward-delete-char 1)
         (should (eq 2 company-candidates-length))))))
 
+(ert-deftest company-backspace-into-bad-prefix ()
+  (with-temp-buffer
+    (insert "ab")
+    (company-mode)
+    (let (company-frontends
+          (company-minimum-prefix-length 2)
+          (company-backends
+           (list (lambda (command &optional _)
+                   (cl-case command
+                     (prefix (buffer-substring (point-min) (point)))
+                     (candidates '("abcd" "abef")))))))
+      (let ((company-idle-delay 'now))
+        (company-auto-begin))
+      (company-call 'backward-delete-char-untabify 1)
+      (should (string= "a" (buffer-string)))
+      (should (null company-candidates)))))
+
 (ert-deftest company-auto-complete-explicit ()
   (with-temp-buffer
     (insert "ab")



reply via email to

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