[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/pyim 5ef0f64edc 2/4: 让 pyim-preview 依赖 pyim-process.
From: |
ELPA Syncer |
Subject: |
[elpa] externals/pyim 5ef0f64edc 2/4: 让 pyim-preview 依赖 pyim-process. |
Date: |
Sun, 17 Apr 2022 09:57:48 -0400 (EDT) |
branch: externals/pyim
commit 5ef0f64edcea90d9ee662d70155f9e984101a359
Author: Feng Shu <tumashu@163.com>
Commit: Feng Shu <tumashu@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)