branch: externals/pyim commit 1adebdf065fe2d1da0444242d07e49fc9291bbbb Author: Feng Shu <tuma...@163.com> Commit: Feng Shu <tuma...@163.com>
pyim-dcache-import -> pyim-import * pyim.el (pyim-import): New function. * pyim-process.el (pyim-process-update-personal-words): New function. * pyim-dcache.el (pyim-process-create-word, pyim-dcache-import): Removed. --- pyim-dcache.el | 38 -------------------------------------- pyim-process.el | 3 +++ pyim.el | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 38 deletions(-) diff --git a/pyim-dcache.el b/pyim-dcache.el index d98af6a..261d2a3 100644 --- a/pyim-dcache.el +++ b/pyim-dcache.el @@ -194,44 +194,6 @@ VARIABLE 变量,FORCE-RESTORE 设置为 t 时,强制恢复,变量原来的 (pyim-dcache-call-api 'export-personal-words file confirm) (message "Pyim export finished.")) -;; ** Dcache 导入功能 -(declare-function pyim-process-create-word "pyim-process") - -(defalias 'pyim-import 'pyim-dcache-import) -(defun pyim-dcache-import (file &optional merge-method) - "从 FILE 中导入词条以及词条对应的词频信息。 - -MERGE-METHOD 是一个函数,这个函数需要两个数字参数,代表 -词条在词频缓存中的词频和待导入文件中的词频,函数返回值做为合并后的词频使用, -默认方式是:取两个词频的最大值。" - (interactive "F导入词条相关信息文件: ") - (with-temp-buffer - (let ((coding-system-for-read 'utf-8-unix)) - (insert-file-contents file)) - (goto-char (point-min)) - (forward-line 1) - (while (not (eobp)) - (let* ((content (pyim-dline-parse)) - (word (car content)) - (count (string-to-number - (or (car (cdr content)) "0")))) - (pyim-process-create-word - word nil - (lambda (x) - (funcall (or merge-method #'max) - (or x 0) - count)))) - (forward-line 1))) - ;; 保存一下用户选择过的词生成的缓存和词频缓存, - ;; 因为使用 async 机制更新 dcache 时,需要从 dcache 文件 - ;; 中读取变量值, 然后再对用户选择过的词生成的缓存排序,如果没 - ;; 有这一步骤,导入的词条就会被覆盖。 - (pyim-dcache-save-caches) - ;; 更新相关的 dcache - (pyim-dcache-call-api 'update-personal-words t) - - (message "pyim: 词条相关信息导入完成!")) - ;; ** Dcache 更新功能 (defun pyim-dcache-update (&optional force) "读取并加载所有相关词库 dcache. diff --git a/pyim-process.el b/pyim-process.el index 8f6ae03..58984a6 100644 --- a/pyim-process.el +++ b/pyim-process.el @@ -100,6 +100,9 @@ (when force (pyim-dcache-save-caches))) +(defun pyim-process-update-personal-words () + (pyim-dcache-call-api 'update-personal-words t)) + (defun pyim-process-init-ui () "PYIM 流程,用户界面相关的初始化工作。" (pyim-preview-setup-overlay)) diff --git a/pyim.el b/pyim.el index bbe438a..8b6b9a1 100644 --- a/pyim.el +++ b/pyim.el @@ -363,6 +363,41 @@ SILENT 设置为 t 是,不显示提醒信息。" (setq output (pyim-process-create-word string)) (message "将词条: %S 插入 personal file。" output)))))) +;; ** 导入词条功能 +(defun pyim-import (file &optional merge-method) + "从 FILE 中导入词条以及词条对应的词频信息。 + +MERGE-METHOD 是一个函数,这个函数需要两个数字参数,代表 +词条在词频缓存中的词频和待导入文件中的词频,函数返回值做为合并后的词频使用, +默认方式是:取两个词频的最大值。" + (interactive "F导入词条相关信息文件: ") + (with-temp-buffer + (let ((coding-system-for-read 'utf-8-unix)) + (insert-file-contents file)) + (goto-char (point-min)) + (forward-line 1) + (while (not (eobp)) + (let* ((content (pyim-dline-parse)) + (word (car content)) + (count (string-to-number + (or (car (cdr content)) "0")))) + (pyim-process-create-word + word nil + (lambda (x) + (funcall (or merge-method #'max) + (or x 0) + count)))) + (forward-line 1))) + ;; 保存一下用户选择过的词生成的缓存和词频缓存, + ;; 因为使用 async 机制更新 dcache 时,需要从 dcache 文件 + ;; 中读取变量值, 然后再对用户选择过的词生成的缓存排序,如果没 + ;; 有这一步骤,导入的词条就会被覆盖。 + (pyim-process-save-dcaches t) + ;; 更新相关的 dcache + (pyim-process-update-personal-words) + + (message "pyim: 词条相关信息导入完成!")) + ;; ** 删词功能 (defun pyim-delete-words-in-file (file) "从个人词库缓存中批量删除 FILE 文件中列出的词条.