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

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

[elpa] externals/pyim 25ffc90: Add pyim-indicators


From: ELPA Syncer
Subject: [elpa] externals/pyim 25ffc90: Add pyim-indicators
Date: Tue, 6 Jul 2021 21:57:13 -0400 (EDT)

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

    Add pyim-indicators
    
        * pyim-indicator.el (pyim-indicator-list): New variable.
        (pyim-indicator-daemon-function): Use pyim-indicators.
        (pyim-indicator-with-cursor-color): New function.
        (pyim-indicator-with-modeline): New function.
        (pyim-indicator-default): Removed.
---
 pyim-indicator.el | 36 +++++++++++++++++++++---------------
 1 file changed, 21 insertions(+), 15 deletions(-)

diff --git a/pyim-indicator.el b/pyim-indicator.el
index 43834d8..12eceea 100644
--- a/pyim-indicator.el
+++ b/pyim-indicator.el
@@ -34,10 +34,11 @@
   "Indicator for pyim."
   :group 'pyim)
 
-(defcustom pyim-indicator #'pyim-indicator-default
-  "PYIM 当前使用的 indicator.
+(defcustom pyim-indicator-list (list #'pyim-indicator-with-cursor-color 
#'pyim-indicator-with-modeline)
+  "PYIM 当前使用的 indicators.
 Indicator 用于显示输入法当前输入状态(英文还是中文)。"
-  :type 'function)
+  :type '(choice (const :tag "Off" nil)
+                 (repeat :tag "Indicator functions" function)))
 
 (defvar pyim-indicator-cursor-color (list "green")
   "`pyim-indicator-default' 使用的 cursor 颜色。
@@ -88,7 +89,9 @@ Indicator 用于显示输入法当前输入状态(英文还是中文)。"
     (let ((chinese-input-p
            (and (functionp func)
                 (funcall func))))
-      (funcall pyim-indicator current-input-method chinese-input-p))))
+      (dolist (indicator pyim-indicator-list)
+        (when (functionp indicator)
+          (funcall indicator current-input-method chinese-input-p))))))
 
 (defun pyim-indicator-revert-cursor-color ()
   "将 cursor 颜色重置到 pyim 启动之前的状态。"
@@ -103,21 +106,24 @@ Indicator 用于显示输入法当前输入状态(英文还是中文)。"
     (setq pyim-indicator-last-input-method-title
           current-input-method-title)))
 
-(defun pyim-indicator-default (current-input-method chinese-input-p)
-  "Pyim 默认使用的 indicator, 主要通过光标颜色和 mode-line 来显示输入状态。"
+(defun pyim-indicator-with-cursor-color (current-input-method chinese-input-p)
+  "Pyim 自带的 indicator, 通过光标颜色来显示输入状态。"
   (if (not (equal current-input-method "pyim"))
-      (progn
-        ;; 大多数情况是因为用户切换 buffer, 新 buffer 中
-        ;; pyim 没有启动,重置 cursor 颜色。
-        (set-cursor-color pyim-indicator-original-cursor-color))
+      ;; 大多数情况是因为用户切换 buffer, 新 buffer 中
+      ;; pyim 没有启动,重置 cursor 颜色。
+      (set-cursor-color pyim-indicator-original-cursor-color)
     (if chinese-input-p
-        (progn
-          (setq current-input-method-title (nth 0 
pyim-indicator-modeline-string))
-          (set-cursor-color (nth 0 pyim-indicator-cursor-color)))
-      (setq current-input-method-title (nth 1 pyim-indicator-modeline-string))
+        (set-cursor-color (nth 0 pyim-indicator-cursor-color))
       (set-cursor-color
        (or (nth 1 pyim-indicator-cursor-color)
-           pyim-indicator-original-cursor-color))))
+           pyim-indicator-original-cursor-color)))))
+
+(defun pyim-indicator-with-modeline (current-input-method chinese-input-p)
+  "Pyim 自带的 indicator, 使用 mode-line 来显示输入状态。"
+  (when (equal current-input-method "pyim")
+    (if chinese-input-p
+        (setq current-input-method-title (nth 0 
pyim-indicator-modeline-string))
+      (setq current-input-method-title (nth 1 
pyim-indicator-modeline-string))))
   (pyim-indicator-update-mode-line))
 
 ;; * Footer



reply via email to

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