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

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

[elpa] externals/pyim b12d621924 20/20: Add pyim-page-get-candidate-posi


From: ELPA Syncer
Subject: [elpa] externals/pyim b12d621924 20/20: Add pyim-page-get-candidate-position-by-numeric-key.
Date: Fri, 24 Jun 2022 03:57:56 -0400 (EDT)

branch: externals/pyim
commit b12d6219248b8c6b684103f9f6c7635ec88a3f1b
Author: Feng Shu <tumashu@163.com>
Commit: Feng Shu <tumashu@163.com>

    Add pyim-page-get-candidate-position-by-numeric-key.
    
            * pyim.el (pyim-select-word-by-number): Use 
pyim-page-get-candidate-position-by-numeric-key.
    
            * pyim-page.el (pyim-page-get-candidate-position-by-numeric-key): 
New function.
            (pyim-page-numeric-key-valid-p): Removed.
---
 pyim-page.el | 25 ++++++++++++-------------
 pyim.el      | 10 ++++++----
 2 files changed, 18 insertions(+), 17 deletions(-)

diff --git a/pyim-page.el b/pyim-page.el
index 610527574a..027ac73cb0 100644
--- a/pyim-page.el
+++ b/pyim-page.el
@@ -562,6 +562,18 @@ pyim-page 的核心的功能,为此增加代码的复杂度和测试的难度
          result)))
     (string-join (nreverse result) (or separator ""))))
 
+(defun pyim-page-get-candidate-position-by-numeric-key (num-key)
+  "根据 NUM-KEY 获取一个有效的 candidate position.
+
+如果获取不到,返回 nil."
+  (let ((index (if (numberp num-key)
+                   (- num-key 1)
+                 0))
+        (end (pyim-page--end)))
+    (when (= index -1) (setq index 9))
+    (when (<= (+ index (pyim-page--start)) end)
+      (+ (pyim-page--start) index))))
+
 (defun pyim-page-next-page (arg)
   "Pyim page 翻页命令."
   (interactive "p")
@@ -579,19 +591,6 @@ pyim-page 的核心的功能,为此增加代码的复杂度和测试的难度
           maxpos)))
       (pyim-process-ui-refresh))))
 
-(defun pyim-page-numeric-key-valid-p (num-key)
-  "判断 NUM-KEY 是否是一个有效的数字选择键。"
-  (let ((index (if (numberp num-key)
-                   (- num-key 1)
-                 0))
-        (end (pyim-page--end)))
-    (when (= index -1) (setq index 9))
-    (if (> (+ index (pyim-page--start)) end)
-        (progn (pyim-page--refresh) nil)
-      (pyim-process-set-candidate-position
-       (+ (pyim-page--start) index))
-      t)))
-
 (defun pyim-page-previous-page (arg)
   (interactive "p")
   (pyim-page-next-page (- arg)))
diff --git a/pyim.el b/pyim.el
index 732b9e3da5..8b3d2670ae 100644
--- a/pyim.el
+++ b/pyim.el
@@ -623,16 +623,18 @@ FILE 的格式与 `pyim-dcache-export' 生成的文件格式相同,
     ;; pyim 使用这个 hook 来处理联想词。
     (run-hooks 'pyim-select-finish-hook)))
 
-(defun pyim-select-word-by-number (&optional n)
+(defun pyim-select-word-by-number (&optional num)
   "使用数字编号来选择对应的词条。"
   (interactive)
-  (if (or pyim-select-word-by-number n)
+  (if (or pyim-select-word-by-number num)
       (if (null (pyim-process-get-candidates))
           (progn
             (pyim-process-outcome-handle 'last-char)
             (pyim-process-terminate))
-        (when (pyim-page-numeric-key-valid-p n)
-          (pyim-select-word)))
+        (let ((position (pyim-page-get-candidate-position-by-numeric-key num)))
+          (when position
+            (pyim-process-set-candidate-position position)
+            (pyim-select-word))))
     ;; 有些输入法使用数字键编码,这种情况下,数字键就
     ;; 不能用来选词了。
     (call-interactively #'pyim-self-insert-command)))



reply via email to

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