branch: externals/pyim commit 5ef0f64edcea90d9ee662d70155f9e984101a359 Author: Feng Shu <tuma...@163.com> Commit: Feng Shu <tuma...@163.com>
让 pyim-preview 依赖 pyim-process. * pyim-process.el (pyim-preview): Do not require. (pyim-process-init-ui): Do not call pyim-preview-setup-overlay. (pyim-process-preview-refresh): New function. (pyim-process-run-1, pyim-process-run-async): Use above function. (pyim-process-preview-hide): New function. (pyim-process-terminate): Use above function. * pyim-preview.el (pyim-process): Require. (pyim-process-init-ui): Add pyim-preview-setup-overlay advice. (pyim-process-preview-refresh): Add pyim-preview-refresh advice. (pyim-process-preview-hide): Add pyim-preview-delete-string advice. --- pyim-preview.el | 7 +++++++ pyim-process.el | 16 ++++++++++------ pyim.el | 2 ++ 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/pyim-preview.el b/pyim-preview.el index a702fe9f25..f645dc9d12 100644 --- a/pyim-preview.el +++ b/pyim-preview.el @@ -30,6 +30,7 @@ (require 'cl-lib) (require 'pyim-common) (require 'pyim-outcome) +(require 'pyim-process) (defgroup pyim-preview nil "Preview libs for pyim." @@ -57,6 +58,8 @@ (if input-method-highlight-flag (overlay-put pyim-preview-overlay 'face 'pyim-preview-face))))) +(advice-add 'pyim-process-init-ui :after #'pyim-preview-setup-overlay) + (defun pyim-preview-delete-overlay () "删除 pyim 光标处实时预览功能所需要的 overlay. @@ -95,12 +98,16 @@ pyim 会使用 Emacs overlay 机制在 *待输入buffer* 光标处高亮显示 (move-overlay pyim-preview-overlay (overlay-start pyim-preview-overlay) (point)))) +(advice-add 'pyim-process-preview-refresh :after #'pyim-preview-refresh) + (defun pyim-preview-delete-string () "删除已经插入 buffer 的 preview 预览字符串。" (when (overlay-start pyim-preview-overlay) (delete-region (overlay-start pyim-preview-overlay) (overlay-end pyim-preview-overlay)))) +(advice-add 'pyim-process-preview-hide :after #'pyim-preview-delete-string) + (defun pyim-preview-start-point () "Preview 字符串的开始位置。" (overlay-start pyim-preview-overlay)) diff --git a/pyim-process.el b/pyim-process.el index d72968c5ba..2f6a80929f 100644 --- a/pyim-process.el +++ b/pyim-process.el @@ -35,7 +35,6 @@ (require 'pyim-imobjs) (require 'pyim-codes) (require 'pyim-candidates) -(require 'pyim-preview) (require 'pyim-indicator) (require 'pyim-outcome) (require 'pyim-punctuation) @@ -115,8 +114,7 @@ (pyim-dcache-call-api 'update-personal-words t)) (defun pyim-process-init-ui () - "PYIM 流程,用户界面相关的初始化工作。" - (pyim-preview-setup-overlay)) + "PYIM 流程,用户界面相关的初始化工作。") (defun pyim-process-start-daemon () "启动 pyim 流程需要的相关 daemon." @@ -308,9 +306,12 @@ (pyim-entered-get 'point-after)) (pyim-process-terminate)) (t (setq pyim-candidate-position 1) - (pyim-preview-refresh) + (pyim-process-preview-refresh) (pyim-process-page-refresh)))))) +(defun pyim-process-preview-refresh () + "Preview refresh 接口函数。") + (defun pyim-process-page-refresh () "Page refresh 接口函数。") @@ -324,7 +325,7 @@ (words (delete-dups (pyim-candidates-create pyim-imobjs scheme-name t)))) (when words (setq pyim-candidates words) - (pyim-preview-refresh) + (pyim-process-preview-refresh) (pyim-process-page-refresh)))) (defun pyim-process-run-async-timer-reset () @@ -612,7 +613,7 @@ BUG:拼音无法有效地处理多音字。" (setq pyim-process-force-input-chinese nil) (setq pyim-candidates nil) (setq pyim-candidates-last nil) - (pyim-preview-delete-string) + (pyim-process-preview-hide) (pyim-process-page-hide) (setq pyim-cstring-to-code-criteria nil) (pyim-process-run-async-timer-reset) @@ -621,6 +622,9 @@ BUG:拼音无法有效地处理多音字。" (when (and class (functionp func)) (funcall func)))) +(defun pyim-process-preview-hide () + "Preview hide 接口函数.") + (defun pyim-process-page-hide () "Page hide 接口函数.") diff --git a/pyim.el b/pyim.el index 8783181aa1..e314339763 100644 --- a/pyim.el +++ b/pyim.el @@ -38,6 +38,8 @@ (require 'pyim-common) (require 'pyim-scheme) (require 'pyim-page) +(require 'pyim-preview) +(require 'pyim-indicator) (require 'pyim-process) (require 'pyim-cstring)