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

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

[elpa] externals/company b73c5ae 2/2: Merge pull request #1119 from yuga


From: ELPA Syncer
Subject: [elpa] externals/company b73c5ae 2/2: Merge pull request #1119 from yugaego/search-keypad
Date: Mon, 14 Jun 2021 08:57:07 -0400 (EDT)

branch: externals/company
commit b73c5ae025ce8822794820bce3adfcd37be1aa84
Merge: b712017 60b01bf
Author: Dmitry Gutov <dgutov@yandex.ru>
Commit: GitHub <noreply@github.com>

    Merge pull request #1119 from yugaego/search-keypad
    
    Refactor search-mode keypad key press workaround
---
 company.el | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/company.el b/company.el
index af61696..6d34b78 100644
--- a/company.el
+++ b/company.el
@@ -2138,16 +2138,18 @@ each one wraps a part of the input string."
         (cl-return i))
       (cl-incf i))))
 
-(defun company-search-keypad ()
-  (interactive)
-  (let* ((name (symbol-name last-command-event))
-         (last-command-event (aref name (1- (length name)))))
-    (company-search-printing-char)))
-
 (defun company-search-printing-char ()
   (interactive)
   (company--search-assert-enabled)
-  (let ((ss (concat company-search-string (string last-command-event))))
+  (let* ((event-type (event-basic-type last-command-event))
+         (event-string (if (characterp event-type)
+                           (string last-command-event)
+                         ;; Handle key press on the keypad.
+                         (let ((name (symbol-name event-type)))
+                           (if (string-match "kp-\\([0-9]\\)" name)
+                               (match-string 1 name)
+                             (error "Unexpected printing char input")))))
+         (ss (concat company-search-string event-string)))
     (when company-search-filtering
       (company--search-update-predicate ss))
     (company--search-update-string ss)))
@@ -2254,7 +2256,7 @@ each one wraps a part of the input string."
       (define-key keymap (vector i) 'company-search-printing-char)
       (cl-incf i))
     (dotimes (i 10)
-      (define-key keymap (read (format "[kp-%s]" i)) 'company-search-keypad))
+      (define-key keymap (kbd (format "<kp-%d>" i)) 
'company-search-printing-char))
     (let ((meta-map (make-sparse-keymap)))
       (define-key keymap (char-to-string meta-prefix-char) meta-map)
       (define-key keymap [escape] meta-map))



reply via email to

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