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

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

[elpa] externals/pyim f10e097: Add pyim-entered-longest and use it.


From: ELPA Syncer
Subject: [elpa] externals/pyim f10e097: Add pyim-entered-longest and use it.
Date: Fri, 7 May 2021 01:57:13 -0400 (EDT)

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

    Add pyim-entered-longest and use it.
    
        * pyim.el (pyim-terminate-translation, pyim-create-pyim-word)
        (pyim-select-word): Deal with pyim-entered-longest.
    
        * pyim-entered.el (pyim-entered-longest): New variable.
---
 pyim-entered.el |  3 +++
 pyim.el         | 11 +++++++++--
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/pyim-entered.el b/pyim-entered.el
index 3f5d7d9..c30c949 100644
--- a/pyim-entered.el
+++ b/pyim-entered.el
@@ -64,6 +64,9 @@ pyim 使用一个 buffer 来处理 entered, 以实现 “用户输入字符串
    继续处理后面的输入,这种方式方便长词的输入;
 3. 如果光标在行首,则处理整行。")
 
+(defvar pyim-entered-longest nil
+  "记录用户在连续选词之前的最长输入,用于全拼输入法多音字矫正。")
+
 (defmacro pyim-with-entered-buffer (&rest forms)
   (declare (indent 0) (debug t))
   `(with-current-buffer (get-buffer-create pyim-entered-buffer)
diff --git a/pyim.el b/pyim.el
index e700df2..ae7c29a 100644
--- a/pyim.el
+++ b/pyim.el
@@ -434,6 +434,7 @@ REFRESH-COMMON-DCACHE 已经废弃,不要再使用了。"
   (setq pyim-force-input-chinese nil)
   (pyim-page-hide)
   (pyim-entered-erase-buffer)
+  (setq pyim-entered-longest nil)
   (pyim-entered-refresh-timer-reset)
   (let* ((class (pyim-scheme-get-option (pyim-scheme-name) :class))
          (func (intern (format "pyim-terminate-translation:%S" class))))
@@ -465,9 +466,8 @@ BUG:拼音无法有效地处理多音字。"
     (setq pyim-last-created-word word)
     (let* ((scheme-name (pyim-scheme-name))
            (class (pyim-scheme-get-option scheme-name :class))
-           (entered (pyim-entered-get 'point-before))
            (code-prefix (pyim-scheme-get-option scheme-name :code-prefix))
-           (codes (pyim-cstring-to-codes word scheme-name entered)))
+           (codes (pyim-cstring-to-codes word scheme-name 
pyim-entered-longest)))
       ;; 保存对应词条的词频
       (when (> (length word) 0)
         (pyim-dcache-update-iword2count word prepend wordcount-handler))
@@ -590,6 +590,13 @@ FILE 的格式与 `pyim-dcache-export' 生成的文件格式相同,
 (defun pyim-select-word ()
   "从选词框中选择当前词条,然后删除该词条对应拼音。"
   (interactive)
+  ;; 记录用户在没有多次选词前的输入,用于多音字矫正。
+  (setq pyim-entered-longest
+        (let ((entered (pyim-entered-get 'point-before)))
+          (if (> (length pyim-entered-longest)
+                 (length entered))
+              pyim-entered-longest
+            entered)))
   (if (null pyim-candidates)  ; 如果没有选项,输入空格
       (progn
         (pyim-outcome-handle 'last-char)



reply via email to

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