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

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

[elpa] externals/pyim 3405968a1a 1/3: Simplify pyim-convert-string-at-po


From: ELPA Syncer
Subject: [elpa] externals/pyim 3405968a1a 1/3: Simplify pyim-convert-string-at-point
Date: Thu, 30 Jun 2022 00:58:14 -0400 (EDT)

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

    Simplify pyim-convert-string-at-point
---
 pyim-process.el     | 11 +++++++----
 pyim.el             | 17 ++++++++---------
 tests/pyim-tests.el |  6 +++---
 3 files changed, 18 insertions(+), 16 deletions(-)

diff --git a/pyim-process.el b/pyim-process.el
index cd37b9c397..66641d0cb0 100644
--- a/pyim-process.el
+++ b/pyim-process.el
@@ -390,13 +390,16 @@ imobj 组合构成在一起,构成了 imobjs 这个概念。比如:
     (buffer-substring (point) (line-beginning-position))))
 
 (defun pyim-process-feed-entered-at-point-into-pyim ()
-  (let* ((entered-info (pyim-process-find-entered-at-point))
+  (let* ((entered-info (pyim-process--find-entered-at-point))
          (entered (nth 0 entered-info))
          (char-num-need-delete (nth 1 entered-info)))
-    (pyim-process--delete-region-or-chars char-num-need-delete)
-    (pyim-process--feed-entered-into-pyim entered)))
+    (when entered-info
+      (pyim-process--delete-region-or-chars char-num-need-delete)
+      (pyim-process--feed-entered-into-pyim entered)
+      ;; NOTE: 这里必须返回 t, 因为这个函数的返回结果会被作为判断条件使用。
+      t)))
 
-(defun pyim-process-find-entered-at-point ()
+(defun pyim-process--find-entered-at-point ()
   "从光标处提取一个有效的 entered 字符串."
   (let* ((case-fold-search nil)
          (scheme (pyim-scheme-current))
diff --git a/pyim.el b/pyim.el
index 631b0e4fb3..c7e4b3dbf1 100644
--- a/pyim.el
+++ b/pyim.el
@@ -292,8 +292,10 @@ REFRESH-COMMON-DCACHE 已经废弃,不要再使用了。"
         (if (not (string-match-p "^\\cc+\\'" string))
             (error "不是纯中文字符串")
           (setq output (pyim-process-create-word string))
-          (message "将词条: %S 插入 personal file。" output))))
-    (deactivate-mark)))
+          (message "将词条: %S 插入 personal file。" output)))
+      (deactivate-mark)
+      ;; NOTE: 这里必须返回 t, 因为这个函数的返回结果会被用来做为判断条件。
+      t)))
 
 ;; ** 导入词条功能
 (defun pyim-import-words-and-counts (file &optional merge-method silent)
@@ -579,13 +581,10 @@ FILE 的格式与 `pyim-dcache-export' 生成的文件格式相同,
   (interactive "P")
   (unless (equal input-method-function 'pyim-input-method)
     (activate-input-method 'pyim))
-  (cond
-   ((region-active-p) (pyim-create-word-from-selection))
-   ;; `pyim-process-trigger-feature-run-p' 函数本身就会做相应的操作。
-   ((pyim-process-trigger-feature-run-p) nil)
-   ((pyim-process-find-entered-at-point)
-    (pyim-process-feed-entered-at-point-into-pyim))
-   (t (message "PYIM: `pyim-convert-string-at-point' did nothing."))))
+  (or (pyim-create-word-from-selection)
+      (pyim-process-trigger-feature-run-p)
+      (pyim-process-feed-entered-at-point-into-pyim)
+      (message "PYIM: `pyim-convert-string-at-point' did nothing.")))
 
 ;; ** 编码反查功能
 (defun pyim-search-word-code ()
diff --git a/tests/pyim-tests.el b/tests/pyim-tests.el
index a59d22d1f9..7c6176914c 100644
--- a/tests/pyim-tests.el
+++ b/tests/pyim-tests.el
@@ -2230,14 +2230,14 @@ abc 这是")))
       (insert ",")
       (should (pyim-process--trigger-punctuation-to-half-width-p)))))
 
-(ert-deftest pyim-tests-pyim-process-find-entered-at-point ()
+(ert-deftest pyim-tests-pyim-process--find-entered-at-point ()
   (with-temp-buffer
     (insert "123abc'd   ")
-    (should (equal (pyim-process-find-entered-at-point) '("abc'd" 8))))
+    (should (equal (pyim-process--find-entered-at-point) '("abc'd" 8))))
 
   (with-temp-buffer
     (insert "123'abcd   ")
-    (should (equal (pyim-process-find-entered-at-point) '("abcd" 7)))))
+    (should (equal (pyim-process--find-entered-at-point) '("abcd" 7)))))
 
 
 (ert-run-tests-batch-and-exit)



reply via email to

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