branch: externals/pyim commit 1283ee65994e117ebe95615cb3db2869e50e89d1 Author: Feng Shu <tuma...@163.com> Commit: Feng Shu <tuma...@163.com>
Add pyim-entered-in-the-middle-of-entered-p --- pyim-entered.el | 6 ++++++ pyim-process.el | 4 +--- tests/pyim-tests.el | 22 ++++++++++++++++++++++ 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/pyim-entered.el b/pyim-entered.el index 2978268858..fa0a6789ad 100644 --- a/pyim-entered.el +++ b/pyim-entered.el @@ -79,6 +79,12 @@ TYPE 取值为 point-after, 返回 entered buffer 中 point 之后的字符 (pyim-entered-with-entered-buffer (erase-buffer))) +(defun pyim-entered-in-the-middle-of-entered-p () + "判断 entered buffer 中,光标是否在 entered 字符串中间。" + (pyim-entered-with-entered-buffer + (and (> (point) 1) + (< (point) (point-max))))) + ;; * Footer (provide 'pyim-entered) diff --git a/pyim-process.el b/pyim-process.el index fdd4bafc6c..894db7b8e1 100644 --- a/pyim-process.el +++ b/pyim-process.el @@ -829,9 +829,7 @@ BUG:拼音无法有效地处理多音字。" (cl-defmethod pyim-process-select-word ((_scheme pyim-scheme-xingma)) "按照形码规则,对预选词条进行选词操作。" (pyim-process-select-word-without-save 'do-not-terminate) - (if (pyim-process-with-entered-buffer - (and (> (point) 1) - (< (point) (point-max)))) + (if (pyim-entered-in-the-middle-of-entered-p) (progn (pyim-process-with-entered-buffer ;; 把本次已经选择的词条对应的子 entered, 从 entered diff --git a/tests/pyim-tests.el b/tests/pyim-tests.el index ce2fb94abd..41124ad7f5 100644 --- a/tests/pyim-tests.el +++ b/tests/pyim-tests.el @@ -427,6 +427,28 @@ (pyim-entered-erase-buffer) (should (equal (pyim-entered-get) ""))) +(ert-deftest pyim-tests-pyim-entered-in-the-middle-of-entered-p () + (pyim-entered-with-entered-buffer + (erase-buffer) + (insert "nihao") + (goto-char (point-min))) + (should-not (pyim-entered-in-the-middle-of-entered-p)) + + (pyim-entered-with-entered-buffer + (forward-char 1)) + (should (pyim-entered-in-the-middle-of-entered-p)) + + (pyim-entered-with-entered-buffer + (goto-char (point-max))) + (should-not (pyim-entered-in-the-middle-of-entered-p)) + + (pyim-entered-with-entered-buffer + (backward-char 1)) + (should (pyim-entered-in-the-middle-of-entered-p)) + + ;; Do not delete. + (pyim-entered-erase-buffer)) + ;; ** pyim-impobjs 相关单元测试 (ert-deftest pyim-tests-pyim-imobjs () (let ((pyim-pinyin-fuzzy-alist '(("en" "eng")