[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/pyim 6cc63e8 09/36: New file: pyim-dict.el
From: |
ELPA Syncer |
Subject: |
[elpa] externals/pyim 6cc63e8 09/36: New file: pyim-dict.el |
Date: |
Thu, 22 Apr 2021 22:57:16 -0400 (EDT) |
branch: externals/pyim
commit 6cc63e88b3a3bbded0e9fd883430499cf86d179b
Author: Feng Shu <tumashu@163.com>
Commit: Feng Shu <tumashu@163.com>
New file: pyim-dict.el
---
pyim-dict.el | 259 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
pyim.el | 224 +--------------------------------------------------
2 files changed, 260 insertions(+), 223 deletions(-)
diff --git a/pyim-dict.el b/pyim-dict.el
new file mode 100644
index 0000000..3f5e779
--- /dev/null
+++ b/pyim-dict.el
@@ -0,0 +1,259 @@
+;;; pyim-dict.el --- dict tools for pyim. -*- lexical-binding: t; -*-
+
+;; * Header
+;; Copyright (C) 2021 Free Software Foundation, Inc.
+
+;; Author: Feng Shu <tumashu@163.com>
+;; Maintainer: Feng Shu <tumashu@163.com>
+;; URL: https://github.com/tumashu/pyim
+;; Keywords: convenience, Chinese, pinyin, input-method
+;; Package-Requires: ((emacs "24.4") (async "1.6") (xr "1.13"))
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;;; Code:
+;; * 代码 :code:
+(defcustom pyim-dicts nil
+ "一个列表,用于保存 `pyim' 的词库信息.
+每一个 element 都代表一条词库的信息, 用户可以使用词库管理命令
+`pyim-dicts-manager' 来添加词库信息,每一条词库信息都使用一个
+plist 来表示,比如:
+
+ (:name \"100万大词库\" :file \"/path/to/pinyin-bigdict.pyim\")
+
+其中:
+1. `:name' 代表词库名称,用户可以按照喜好来确定(可选项)。
+2. `:file' 表示词库文件,
+
+另外一个与这个变量功能类似的变量是: `pyim-extra-dicts', 专门
+用于和 elpa 格式的词库包集成。"
+ :type 'list)
+
+(defvar pyim-extra-dicts nil "与 `pyim-dicts' 类似, 用于和 elpa 格式的词库包集成。.")
+
+;; ** pyim 词库管理工具
+(defvar pyim-dm-buffer "*pyim-dict-manager*")
+
+(defun pyim-create-dicts-md5 (dict-files)
+ (let* ((version "v1") ;当需要强制更新 dict 缓存时,更改这个字符串。
+ (dicts-md5 (md5 (prin1-to-string
+ (mapcar #'(lambda (file)
+ (list version file (nth 5
(file-attributes file 'string))))
+ dict-files)))))
+ dicts-md5))
+
+(defun pyim-dm-refresh ()
+ "Refresh the contents of the *pyim-dict-manager* buffer."
+ (interactive)
+ (with-current-buffer pyim-dm-buffer
+ (let ((inhibit-read-only t)
+ (dicts-list pyim-dicts)
+ (format-string "%-4s %-4s %-60s\n")
+ (face-attr '((foreground-color . "DarkOrange2")
+ (bold . t)))
+ (i 1))
+ (erase-buffer)
+ (insert (propertize (format format-string "序号" "启用" "词库文件")
+ 'face face-attr))
+ (insert (propertize (format format-string
+ "----" "----"
+
"----------------------------------------------------------------------\n")
+ 'face face-attr))
+ (if (not pyim-dicts)
+ (insert "拼音词库是 pyim 使用顺手与否的关键。根据经验估计:
+
+1. 当词库词条超过100万时 (词库文件>20M),pyim 选词频率大大降低。
+2. 当词库词条超过100万时,pyim 中文输入体验可以达到搜狗输入法的 80%。
+
+想快速体验 pyim 输入法的用户, 可以使用 pyim-basedict:
+
+ (require 'pyim-basedict)
+ (pyim-basedict-enable)
+
+喜欢折腾的用户可以从下面几个途径获得 pyim 更详细的信息。
+1. 使用 `C-h v pyim-dicts' 了解 pyim 词库文件格式。
+2. 了解如何导入其它输入法的词库。
+ 1. 使用 package 管理器查看 pyim 包的简介
+ 2. 阅读 pyim.el 文件 Commentary
+ 3. 查看 pyim 在线 README:https://github.com/tumashu/pyim\n")
+ (dolist (dict dicts-list)
+ (let ((disable (plist-get dict :disable))
+ (file (plist-get dict :file)))
+ (insert (propertize (format format-string
+ i (if disable "NO" "YES") file)
+ 'id i 'disable disable 'file file)))
+ (setq i (1+ i))))
+ (insert (propertize "
+操作命令:[A] 添加词库 [D] 删除词库 [P] 向上移动 [N] 向下移动 [g] 刷新页面
+ [s] 保存配置 [R] 重启输入法 [C-c C-c] 禁用/启用当前词库"
+ 'face face-attr)))))
+
+(defun pyim-dm-toggle-dict (&optional _enable)
+ "启用当前行对应的词库。"
+ (interactive)
+ (when (equal (buffer-name) pyim-dm-buffer)
+ (let* ((id (get-text-property (point) 'id))
+ (dict (cl-copy-list (nth (1- id) pyim-dicts)))
+ (disable (plist-get dict :disable))
+ (line (line-number-at-pos)))
+ (setf (nth (1- id) pyim-dicts) (plist-put dict :disable (not disable)))
+ (if (not disable)
+ (message "禁用当前词库")
+ (message "启用当前词库"))
+ (pyim-dm-refresh)
+ (goto-char (point-min))
+ (forward-line (- line 1)))))
+
+(defun pyim-dm-delete-dict ()
+ "从 `pyim-dicts' 中删除当前行对应的词库信息。"
+ (interactive)
+ (when (equal (buffer-name) pyim-dm-buffer)
+ (let ((id (get-text-property (point) 'id))
+ (line (line-number-at-pos)))
+ (when (yes-or-no-p "确定要删除这条词库信息吗? ")
+ (setq pyim-dicts (delq (nth (1- id) pyim-dicts) pyim-dicts))
+ (pyim-dm-refresh)
+ (goto-char (point-min))
+ (forward-line (- line 1))))))
+
+(defun pyim-dm-dict-position-up ()
+ "向上移动词库。"
+ (interactive)
+ (when (equal (buffer-name) pyim-dm-buffer)
+ (let* ((id (get-text-property (point) 'id))
+ (dict1 (nth (- id 1) pyim-dicts))
+ (dict2 (nth (- id 2) pyim-dicts))
+ (line (line-number-at-pos)))
+ (when (> id 1)
+ (setf (nth (- id 1) pyim-dicts) dict2)
+ (setf (nth (- id 2) pyim-dicts) dict1)
+ (pyim-dm-refresh)
+ (goto-char (point-min))
+ (forward-line (- line 2))))))
+
+(defun pyim-dm-dict-position-down ()
+ "向下移动词库。"
+ (interactive)
+ (when (equal (buffer-name) pyim-dm-buffer)
+ (let* ((id (get-text-property (point) 'id))
+ (dict1 (nth (- id 1) pyim-dicts))
+ (dict2 (nth id pyim-dicts))
+ (length (length pyim-dicts))
+ (line (line-number-at-pos)))
+ (when (< id length)
+ (setf (nth (1- id) pyim-dicts) dict2)
+ (setf (nth id pyim-dicts) dict1)
+ (pyim-dm-refresh)
+ (goto-char (point-min))
+ (forward-line line)))))
+
+(defun pyim-dm-save-dict-info ()
+ "使用 `customize-save-variable' 函数将 `pyim-dicts' 保存到 '~/.emacs' 文件中。"
+ (interactive)
+ ;; 将`pyim-dict'的设置保存到emacs配置文件中。
+ (customize-save-variable 'pyim-dicts pyim-dicts)
+ (message "将 pyim 词库配置信息保存到 ~/.emacs 文件。"))
+
+(defun pyim-dm-add-dict ()
+ "为 `pyim-dicts' 添加词库信息。"
+ (interactive)
+ (when (equal (buffer-name) pyim-dm-buffer)
+ (let ((line (line-number-at-pos))
+ dict name file first-used)
+ (setq name (read-from-minibuffer "请输入词库名称: "))
+ (setq file (read-file-name "请选择词库文件: " "~/"))
+ (setq first-used (yes-or-no-p "是否让 pyim 优先使用词库? "))
+ (setq dict `(:name ,name :file ,file))
+ (if first-used
+ (add-to-list 'pyim-dicts dict)
+ (add-to-list 'pyim-dicts dict t))
+ (pyim-dm-refresh)
+ (goto-char (point-min))
+ (forward-line (- line 1)))))
+
+(define-derived-mode pyim-dm-mode special-mode "pyim-dicts-manager"
+ "Major mode for managing pyim dicts"
+ (read-only-mode)
+ (define-key pyim-dm-mode-map (kbd "D") #'pyim-dm-delete-dict)
+ (define-key pyim-dm-mode-map (kbd "g") #'pyim-dm-refresh)
+ (define-key pyim-dm-mode-map (kbd "A") #'pyim-dm-add-dict)
+ (define-key pyim-dm-mode-map (kbd "N") #'pyim-dm-dict-position-down)
+ (define-key pyim-dm-mode-map (kbd "P") #'pyim-dm-dict-position-up)
+ (define-key pyim-dm-mode-map (kbd "s") #'pyim-dm-save-dict-info)
+ (define-key pyim-dm-mode-map (kbd "C-c C-c") #'pyim-dm-toggle-dict)
+ (define-key pyim-dm-mode-map (kbd "R") #'pyim-restart))
+
+;;;###autoload
+(defun pyim-dicts-manager ()
+ "pyim 词库管理器。
+
+使用这个词库管理器可以方便的执行下列命令:
+1. 添加词库。
+2. 删除词库。
+3. 向上和向下移动词库。
+4. 保存词库设置。
+5. 重启输入法。"
+ (interactive)
+ (let ((buffer (get-buffer-create pyim-dm-buffer)))
+ (pyim-dm-refresh)
+ (switch-to-buffer buffer)
+ (pyim-dm-mode)
+ (setq truncate-lines t)))
+
+(defun pyim-extra-dicts-add-dict (new-dict)
+ "添加 `new-dict' 到 `pyim-extra-dicts'.
+
+其中 NEW-DICT 的格式为:
+
+ (:name \"XXX\" :file \"/path/to/XXX.pyim\")
+
+这个函数用于制作 elpa 格式的词库 ,不建议普通用户使用。"
+ (let (replace result)
+ (dolist (dict pyim-extra-dicts)
+ (if (equal (plist-get dict :name)
+ (plist-get new-dict :name))
+ (progn (push new-dict result)
+ (setq replace t))
+ (push dict result)))
+ (setq result (reverse result))
+ (setq pyim-extra-dicts
+ (if replace result `(,@result ,new-dict)))
+ (message "Add pyim dict %S to `pyim-extra-dicts'." (plist-get new-dict
:name))
+ t))
+
+(defun pyim-dict-name-available-p (dict-name)
+ "查询 `pyim-dicts' 中 `:name' 为 DICT-NAME 的词库信息是否存在。
+这个函数主要用于词库 package。"
+ (cl-some (lambda (x)
+ (let ((name (plist-get x :name)))
+ (equal name dict-name)))
+ pyim-dicts))
+
+(defun pyim-dict-file-available-p (dict-file)
+ "查询 `pyim-dicts' 中 `:file' 为 DICT-FILE 的词库信息是否存在。
+这个函数主要用于词库 package。"
+ (cl-some (lambda (x)
+ (let ((file (plist-get x :file)))
+ (equal (expand-file-name file)
+ (expand-file-name dict-file))))
+ pyim-dicts))
+
+;; * Footer
+(provide 'pyim-dict)
+
+;;; pyim-dict.el ends here
diff --git a/pyim.el b/pyim.el
index 280a177..e10f74d 100644
--- a/pyim.el
+++ b/pyim.el
@@ -582,27 +582,12 @@
(require 'pyim-common)
(require 'pyim-pinyin)
(require 'pyim-punctuation)
+(require 'pyim-dict)
(defgroup pyim nil
"Pyim is a Chinese input method support quanpin, shuangpin, wubi and
cangjie."
:group 'leim)
-(defcustom pyim-dicts nil
- "一个列表,用于保存 `pyim' 的词库信息.
-每一个 element 都代表一条词库的信息, 用户可以使用词库管理命令
-`pyim-dicts-manager' 来添加词库信息,每一条词库信息都使用一个
-plist 来表示,比如:
-
- (:name \"100万大词库\" :file \"/path/to/pinyin-bigdict.pyim\")
-
-其中:
-1. `:name' 代表词库名称,用户可以按照喜好来确定(可选项)。
-2. `:file' 表示词库文件,
-
-另外一个与这个变量功能类似的变量是: `pyim-extra-dicts', 专门
-用于和 elpa 格式的词库包集成。"
- :type 'list)
-
(defcustom pyim-enable-shortcode t
"启用输入联想词功能."
:type 'boolean)
@@ -794,7 +779,6 @@ Only useful when use posframe.")
;;;###autoload
(defvar pyim-titles '("PYIM " "PYIM-EN " "PYIM-AU ") "Pyim 在 mode-line
中显示的名称.")
-(defvar pyim-extra-dicts nil "与 `pyim-dicts' 类似, 用于和 elpa 格式的词库包集成。.")
(defvar pyim-schemes nil
"Pyim 支持的所有拼音方案.")
@@ -1210,14 +1194,6 @@ pyim 使用函数 `pyim-start' 启动输入法的时候,会将变量
(pyim-start "pyim" nil t
save-personal-dcache refresh-common-dcache))
-(defun pyim-create-dicts-md5 (dict-files)
- (let* ((version "v1") ;当需要强制更新 dict 缓存时,更改这个字符串。
- (dicts-md5 (md5 (prin1-to-string
- (mapcar #'(lambda (file)
- (list version file (nth 5
(file-attributes file 'string))))
- dict-files)))))
- dicts-md5))
-
(defun pyim-dcache-call-api (api-name &rest api-args)
"Get backend API named API-NAME then call it with arguments API-ARGS."
;; make sure the backend is load
@@ -3734,204 +3710,6 @@ BUG: 当 STRING 中包含其它标点符号,并且设置 SEPERATER 时,结
"简化版的 `pyim-hanzi2pinyin', 不处理多音字。"
(pyim-hanzi2pinyin string shou-zi-mu separator return-list t))
-;; ** pyim 词库管理工具
-(defvar pyim-dm-buffer "*pyim-dict-manager*")
-
-(defun pyim-dm-refresh ()
- "Refresh the contents of the *pyim-dict-manager* buffer."
- (interactive)
- (with-current-buffer pyim-dm-buffer
- (let ((inhibit-read-only t)
- (dicts-list pyim-dicts)
- (format-string "%-4s %-4s %-60s\n")
- (face-attr '((foreground-color . "DarkOrange2")
- (bold . t)))
- (i 1))
- (erase-buffer)
- (insert (propertize (format format-string "序号" "启用" "词库文件")
- 'face face-attr))
- (insert (propertize (format format-string
- "----" "----"
-
"----------------------------------------------------------------------\n")
- 'face face-attr))
- (if (not pyim-dicts)
- (insert "拼音词库是 pyim 使用顺手与否的关键。根据经验估计:
-
-1. 当词库词条超过100万时 (词库文件>20M),pyim 选词频率大大降低。
-2. 当词库词条超过100万时,pyim 中文输入体验可以达到搜狗输入法的 80%。
-
-想快速体验 pyim 输入法的用户, 可以使用 pyim-basedict:
-
- (require 'pyim-basedict)
- (pyim-basedict-enable)
-
-喜欢折腾的用户可以从下面几个途径获得 pyim 更详细的信息。
-1. 使用 `C-h v pyim-dicts' 了解 pyim 词库文件格式。
-2. 了解如何导入其它输入法的词库。
- 1. 使用 package 管理器查看 pyim 包的简介
- 2. 阅读 pyim.el 文件 Commentary
- 3. 查看 pyim 在线 README:https://github.com/tumashu/pyim\n")
- (dolist (dict dicts-list)
- (let ((disable (plist-get dict :disable))
- (file (plist-get dict :file)))
- (insert (propertize (format format-string
- i (if disable "NO" "YES") file)
- 'id i 'disable disable 'file file)))
- (setq i (1+ i))))
- (insert (propertize "
-操作命令:[A] 添加词库 [D] 删除词库 [P] 向上移动 [N] 向下移动 [g] 刷新页面
- [s] 保存配置 [R] 重启输入法 [C-c C-c] 禁用/启用当前词库"
- 'face face-attr)))))
-
-(defun pyim-dm-toggle-dict (&optional _enable)
- "启用当前行对应的词库。"
- (interactive)
- (when (equal (buffer-name) pyim-dm-buffer)
- (let* ((id (get-text-property (point) 'id))
- (dict (cl-copy-list (nth (1- id) pyim-dicts)))
- (disable (plist-get dict :disable))
- (line (line-number-at-pos)))
- (setf (nth (1- id) pyim-dicts) (plist-put dict :disable (not disable)))
- (if (not disable)
- (message "禁用当前词库")
- (message "启用当前词库"))
- (pyim-dm-refresh)
- (goto-char (point-min))
- (forward-line (- line 1)))))
-
-(defun pyim-dm-delete-dict ()
- "从 `pyim-dicts' 中删除当前行对应的词库信息。"
- (interactive)
- (when (equal (buffer-name) pyim-dm-buffer)
- (let ((id (get-text-property (point) 'id))
- (line (line-number-at-pos)))
- (when (yes-or-no-p "确定要删除这条词库信息吗? ")
- (setq pyim-dicts (delq (nth (1- id) pyim-dicts) pyim-dicts))
- (pyim-dm-refresh)
- (goto-char (point-min))
- (forward-line (- line 1))))))
-
-(defun pyim-dm-dict-position-up ()
- "向上移动词库。"
- (interactive)
- (when (equal (buffer-name) pyim-dm-buffer)
- (let* ((id (get-text-property (point) 'id))
- (dict1 (nth (- id 1) pyim-dicts))
- (dict2 (nth (- id 2) pyim-dicts))
- (line (line-number-at-pos)))
- (when (> id 1)
- (setf (nth (- id 1) pyim-dicts) dict2)
- (setf (nth (- id 2) pyim-dicts) dict1)
- (pyim-dm-refresh)
- (goto-char (point-min))
- (forward-line (- line 2))))))
-
-(defun pyim-dm-dict-position-down ()
- "向下移动词库。"
- (interactive)
- (when (equal (buffer-name) pyim-dm-buffer)
- (let* ((id (get-text-property (point) 'id))
- (dict1 (nth (- id 1) pyim-dicts))
- (dict2 (nth id pyim-dicts))
- (length (length pyim-dicts))
- (line (line-number-at-pos)))
- (when (< id length)
- (setf (nth (1- id) pyim-dicts) dict2)
- (setf (nth id pyim-dicts) dict1)
- (pyim-dm-refresh)
- (goto-char (point-min))
- (forward-line line)))))
-
-(defun pyim-dm-save-dict-info ()
- "使用 `customize-save-variable' 函数将 `pyim-dicts' 保存到 '~/.emacs' 文件中。"
- (interactive)
- ;; 将`pyim-dict'的设置保存到emacs配置文件中。
- (customize-save-variable 'pyim-dicts pyim-dicts)
- (message "将 pyim 词库配置信息保存到 ~/.emacs 文件。"))
-
-(defun pyim-dm-add-dict ()
- "为 `pyim-dicts' 添加词库信息。"
- (interactive)
- (when (equal (buffer-name) pyim-dm-buffer)
- (let ((line (line-number-at-pos))
- dict name file first-used)
- (setq name (read-from-minibuffer "请输入词库名称: "))
- (setq file (read-file-name "请选择词库文件: " "~/"))
- (setq first-used (yes-or-no-p "是否让 pyim 优先使用词库? "))
- (setq dict `(:name ,name :file ,file))
- (if first-used
- (add-to-list 'pyim-dicts dict)
- (add-to-list 'pyim-dicts dict t))
- (pyim-dm-refresh)
- (goto-char (point-min))
- (forward-line (- line 1)))))
-
-(define-derived-mode pyim-dm-mode special-mode "pyim-dicts-manager"
- "Major mode for managing pyim dicts"
- (read-only-mode)
- (define-key pyim-dm-mode-map (kbd "D") #'pyim-dm-delete-dict)
- (define-key pyim-dm-mode-map (kbd "g") #'pyim-dm-refresh)
- (define-key pyim-dm-mode-map (kbd "A") #'pyim-dm-add-dict)
- (define-key pyim-dm-mode-map (kbd "N") #'pyim-dm-dict-position-down)
- (define-key pyim-dm-mode-map (kbd "P") #'pyim-dm-dict-position-up)
- (define-key pyim-dm-mode-map (kbd "s") #'pyim-dm-save-dict-info)
- (define-key pyim-dm-mode-map (kbd "C-c C-c") #'pyim-dm-toggle-dict)
- (define-key pyim-dm-mode-map (kbd "R") #'pyim-restart))
-
-;;;###autoload
-(defun pyim-dicts-manager ()
- "pyim 词库管理器。
-
-使用这个词库管理器可以方便的执行下列命令:
-1. 添加词库。
-2. 删除词库。
-3. 向上和向下移动词库。
-4. 保存词库设置。
-5. 重启输入法。"
- (interactive)
- (let ((buffer (get-buffer-create pyim-dm-buffer)))
- (pyim-dm-refresh)
- (switch-to-buffer buffer)
- (pyim-dm-mode)
- (setq truncate-lines t)))
-
-(defun pyim-extra-dicts-add-dict (new-dict)
- "添加 `new-dict' 到 `pyim-extra-dicts'.
-
-其中 NEW-DICT 的格式为:
-
- (:name \"XXX\" :file \"/path/to/XXX.pyim\")
-
-这个函数用于制作 elpa 格式的词库 ,不建议普通用户使用。"
- (let (replace result)
- (dolist (dict pyim-extra-dicts)
- (if (equal (plist-get dict :name)
- (plist-get new-dict :name))
- (progn (push new-dict result)
- (setq replace t))
- (push dict result)))
- (setq result (reverse result))
- (setq pyim-extra-dicts
- (if replace result `(,@result ,new-dict)))
- (message "Add pyim dict %S to `pyim-extra-dicts'." (plist-get new-dict
:name))
- t))
-
-(defun pyim-dict-name-available-p (dict-name)
- "查询 `pyim-dicts' 中 `:name' 为 DICT-NAME 的词库信息是否存在。
-这个函数主要用于词库 package。"
- (cl-some (lambda (x)
- (let ((name (plist-get x :name)))
- (equal name dict-name)))
- pyim-dicts))
-
-(defun pyim-dict-file-available-p (dict-file)
- "查询 `pyim-dicts' 中 `:file' 为 DICT-FILE 的词库信息是否存在。
-这个函数主要用于词库 package。"
- (cl-some (lambda (x)
- (let ((file (plist-get x :file)))
- (equal (expand-file-name file)
- (expand-file-name dict-file))))
- pyim-dicts))
;; ** pyim 探针程序
(require 'pyim-probe)
- [elpa] externals/pyim updated (c16ca2b -> aa8dbd9), ELPA Syncer, 2021/04/22
- [elpa] externals/pyim f744469 01/36: Move code to pyim-pymap.el, ELPA Syncer, 2021/04/22
- [elpa] externals/pyim 900071a 02/36: Add pyim-pinyin.el, ELPA Syncer, 2021/04/22
- [elpa] externals/pyim c13c2a6 06/36: Move code to pyim-common.el, ELPA Syncer, 2021/04/22
- [elpa] externals/pyim 09fd273 07/36: Sort pyim-common.el, ELPA Syncer, 2021/04/22
- [elpa] externals/pyim 6dfe546 08/36: New pyim-punctuation.el file., ELPA Syncer, 2021/04/22
- [elpa] externals/pyim 6cc63e8 09/36: New file: pyim-dict.el,
ELPA Syncer <=
- [elpa] externals/pyim 8ae9ad9 10/36: New file pyim-cstring.el, ELPA Syncer, 2021/04/22
- [elpa] externals/pyim 678240a 16/36: Add pyim-candidates.el, ELPA Syncer, 2021/04/22
- [elpa] externals/pyim fa9a82a 17/36: pyim-posframe-* -> pyim-page-posframe-*, ELPA Syncer, 2021/04/22
- [elpa] externals/pyim 8023823 15/36: New file: pyim-page.el, ELPA Syncer, 2021/04/22
- [elpa] externals/pyim cfd96c6 20/36: update pyim-candidates.el, ELPA Syncer, 2021/04/22
- [elpa] externals/pyim eafaef3 22/36: update pyim-cstring.el, ELPA Syncer, 2021/04/22
- [elpa] externals/pyim c9cd6bf 27/36: Add pyim-autoselector.el, ELPA Syncer, 2021/04/22
- [elpa] externals/pyim f56d0a6 30/36: Add README.org, ELPA Syncer, 2021/04/22
- [elpa] externals/pyim f26fecc 03/36: New file: pyim-cregexp.el, ELPA Syncer, 2021/04/22
- [elpa] externals/pyim 819f9c6 04/36: Move pyim-permutate-list* to pyim-common.el, ELPA Syncer, 2021/04/22