branch: externals/pyim commit 74c93ae01f312120ad5cd83465ccd3f5e21bd8e7 Author: Feng Shu <tuma...@163.com> Commit: Feng Shu <tuma...@163.com>
rename pyim-process-async-ui-refresh to pyim-process-run-async. * pyim-process.el (pyim-process-run-async): rename from pyim-process-async-ui-refresh. (pyim-process-run-1): Use pyim-process-run-async. --- pyim-process.el | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/pyim-process.el b/pyim-process.el index 07edfef..db90b33 100644 --- a/pyim-process.el +++ b/pyim-process.el @@ -245,10 +245,14 @@ (or (delete-dups (pyim-candidates-create pyim-imobjs scheme-name)) (list entered-to-translate))) (pyim-process-run-async-timer-reset) - ;; 延迟1秒异步处理 entered, pyim 内置的输入法目前不使用异步获取 - ;; 词条的方式,主要用于 pyim-liberime 支持。 + ;; 当用户选择词条时,如果停顿超过1秒,就激活异步流程,不同的输入法异步流程定 + ;; 义也可能不同,比如:全拼输入法目前的异步流程是搜索当前 buffer 获取词条。 + ;; 而 rime 的异步流程是获取所有的词条。 + ;; + ;; 注意事项:异步流程对 page tooltip 有要求, 有些 page tooltip 是无法支持异 + ;; 步流程的。 (setq pyim-process-run-async-timer - (run-with-timer 1 nil #'pyim-process-async-ui-refresh)) + (run-with-timer 1 nil #'pyim-process-run-async)) ;; 自动上屏功能 (let ((autoselector-results (mapcar (lambda (x) @@ -309,16 +313,16 @@ "测试 CMD 是否是一个 pyim self insert command." (member cmd pyim-process-self-insert-commands)) -(defun pyim-process-async-ui-refresh () +(defun pyim-process-run-async () "Function used by `pyim-process-run-async-timer'" - (let* ((scheme-name (pyim-scheme-name)) - (words (delete-dups (pyim-candidates-create pyim-imobjs scheme-name t)))) - (when words - (setq pyim-candidates words) - (pyim-preview-refresh) - ;; NEED HELP: 目前只有 posframe 和 minibufer 可以正确处理异步刷新 page - (when (and (member pyim-page-tooltip '(posframe minibuffer)) - (not (eq (selected-window) (minibuffer-window)))) + ;; NEED HELP: 目前只有 posframe 和 minibufer 两种 page 可以用于异步处理。 + (when (and (member pyim-page-tooltip '(posframe minibuffer)) + (not (eq (selected-window) (minibuffer-window)))) + (let* ((scheme-name (pyim-scheme-name)) + (words (delete-dups (pyim-candidates-create pyim-imobjs scheme-name t)))) + (when words + (setq pyim-candidates words) + (pyim-preview-refresh) (pyim-page-refresh))))) (defun pyim-process-run-async-timer-reset ()