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

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

[elpa] externals/pyim-basedict 0e6da11c4f: Add pyim-basedict-utils


From: ELPA Syncer
Subject: [elpa] externals/pyim-basedict 0e6da11c4f: Add pyim-basedict-utils
Date: Tue, 31 May 2022 01:57:46 -0400 (EDT)

branch: externals/pyim-basedict
commit 0e6da11c4f500f6a3642dca167592eb27066ba52
Author: Feng Shu <tumashu@163.com>
Commit: Feng Shu <tumashu@163.com>

    Add pyim-basedict-utils
---
 pyim-basedict.el => pyim-basedict-utils.el |  48 ++---------
 pyim-basedict.el                           | 125 +++--------------------------
 2 files changed, 17 insertions(+), 156 deletions(-)

diff --git a/pyim-basedict.el b/pyim-basedict-utils.el
similarity index 72%
copy from pyim-basedict.el
copy to pyim-basedict-utils.el
index b90a39059a..f94920f654 100644
--- a/pyim-basedict.el
+++ b/pyim-basedict-utils.el
@@ -1,4 +1,4 @@
-;;; pyim-basedict.el --- The default pinyin dict of pyim  -*- lexical-binding: 
t; -*-
+;;; pyim-basedict-utils.el --- Utils used to maintain pyim-basedict.pyim  -*- 
lexical-binding: t; -*-
 
 ;; * Header
 ;; Copyright (C) 2015-2021 Free Software Foundation, Inc.
@@ -27,24 +27,11 @@
 ;; * pyim-basedict README                         :README:doc:
 
 ;; ** 简介
-;; pyim-basedict 是 pyim 输入法的默认词库,词库数据来源为 libpinyin 项目。
-
-;;  https://github.com/libpinyin/libpinyin/releases (Data files we need is in 
release tarball)
-
-;; 注意:这个词库的词条量大概在 10 万左右,是一个 *比较小* 的词库,只能确保 pyim
-;; 可以正常工作,如果用户想让 pyim 更加顺手,需要添加其它附加词库,具体添加词库的
-;; 方式可以参考 pyim 的 README.
-
-;; ** 安装和使用
-;; 1. M-x package-install RET pyim-basedict RET
-;; 2. 在 Emacs 配置文件中(比如: "~/.emacs")添加如下代码:
-;;    #+BEGIN_EXAMPLE
-;;    (pyim-basedict-enable)
-;;    #+END_EXAMPLE
+;; 这个文件包含用于维护 pyim-basedict.pyim 文件的工具。
 
 ;;; Code:
 ;; * 代码                                                               :code:
-(require 'pyim-dict)
+(require 'pyim-common)
 
 (defvar pyim-basedict-libpinyin-tarball-url
   
"https://github.com/libpinyin/libpinyin/releases/download/2.6.0/libpinyin-2.6.0.tar.gz";
@@ -77,31 +64,6 @@ tarball and extract data/* to this directory.")
 (defvar pyim-basedict-libpinyin-count-info nil
   "The count info of libpinyin.")
 
-;;;###autoload
-(defun pyim-basedict-enable ()
-  "Add basedict to pyim."
-  (interactive)
-  (let* ((file (expand-file-name "pyim-basedict.pyim"
-                                 (file-name-directory
-                                  (locate-library "pyim-basedict.el")))))
-    (when (file-exists-p file)
-      ;; FIXME: If `pyim-basedict-enable' is called early enough, pyim
-      ;; won't be loaded yet and this (featurep 'pyim) will return nil.
-      ;; Maybe we should just (require 'pyim) and call
-      ;; `pyim-extra-dicts-add-dict' unconditionally, or maybe we should
-      ;; use `with-eval-after-load'.
-      (if (featurep 'pyim-dict)
-          (pyim-extra-dicts-add-dict
-           `(;; Make Indent beautiful :-)
-             :name "Basedict-elpa"
-             :file ,file
-             :coding utf-8-unix
-             :dict-type pinyin-dict
-             :elpa t))
-        (message "pyim 没有安装,pyim-basedict 启用失败。")))))
-
-(declare-function 'pyim-dline-parse "pyim-common")
-
 (defun pyim-basedict-generate-count-info ()
   "从 libpinyin data 文件中获取词条的 count 信息。"
   (interactive)
@@ -165,6 +127,6 @@ tarball and extract data/* to this directory.")
         (write-file "pyim-basedict.pyim" t)))))
 
 ;; * Footer
-(provide 'pyim-basedict)
+(provide 'pyim-basedict-utils)
 
-;;; pyim-basedict.el ends here
+;;; pyim-basedict-utils.el ends here
diff --git a/pyim-basedict.el b/pyim-basedict.el
index b90a39059a..62fccbc11d 100644
--- a/pyim-basedict.el
+++ b/pyim-basedict.el
@@ -46,123 +46,22 @@
 ;; * 代码                                                               :code:
 (require 'pyim-dict)
 
-(defvar pyim-basedict-libpinyin-tarball-url
-  
"https://github.com/libpinyin/libpinyin/releases/download/2.6.0/libpinyin-2.6.0.tar.gz";
-  "The source of libpinyin data.")
-
-(defvar pyim-basedict-libpinyin-datadir nil
-  "The directory of libpinyin data.
-The developers of pyim-basedict should download libpinyin release
-tarball and extract data/* to this directory.")
-
-(defvar pyim-basedict-libpinyin-data-files
-  (list "society.table"
-        "life.table"
-        "people.table"
-        "culture.table"
-        "economy.table"
-        "technology.table"
-        "science.table"
-        "nature.table"
-        "history.table"
-        "art.table"
-        "sport.table"
-        "geology.table"
-        "merged.table"
-        "opengram.table"
-        "gb_char.table"
-        "gbk_char.table")
-  "Libpinyin data files")
-
-(defvar pyim-basedict-libpinyin-count-info nil
-  "The count info of libpinyin.")
-
 ;;;###autoload
 (defun pyim-basedict-enable ()
-  "Add basedict to pyim."
+  "Add pyim-basedict.pyim file to `pyim-extra-dicts'."
   (interactive)
-  (let* ((file (expand-file-name "pyim-basedict.pyim"
-                                 (file-name-directory
-                                  (locate-library "pyim-basedict.el")))))
+  (let ((file (expand-file-name
+               "pyim-basedict.pyim"
+               (file-name-directory
+                (locate-library "pyim-basedict.el")))))
     (when (file-exists-p file)
-      ;; FIXME: If `pyim-basedict-enable' is called early enough, pyim
-      ;; won't be loaded yet and this (featurep 'pyim) will return nil.
-      ;; Maybe we should just (require 'pyim) and call
-      ;; `pyim-extra-dicts-add-dict' unconditionally, or maybe we should
-      ;; use `with-eval-after-load'.
-      (if (featurep 'pyim-dict)
-          (pyim-extra-dicts-add-dict
-           `(;; Make Indent beautiful :-)
-             :name "Basedict-elpa"
-             :file ,file
-             :coding utf-8-unix
-             :dict-type pinyin-dict
-             :elpa t))
-        (message "pyim 没有安装,pyim-basedict 启用失败。")))))
-
-(declare-function 'pyim-dline-parse "pyim-common")
-
-(defun pyim-basedict-generate-count-info ()
-  "从 libpinyin data 文件中获取词条的 count 信息。"
-  (interactive)
-  (let* ((dir pyim-basedict-libpinyin-datadir)
-         (count-info (make-hash-table :test #'equal))
-         (file (expand-file-name "interpolation2.text" dir)))
-    (unless (and pyim-basedict-libpinyin-count-info
-                 (> (hash-table-count pyim-basedict-libpinyin-count-info) 
60000))
-      (when (and dir (file-directory-p dir))
-        (with-temp-buffer
-          (when (file-exists-p file)
-            (insert-file-contents file)
-            (while (not (eobp))
-              (let ((contents (pyim-dline-parse)))
-                (when (= (length contents) 5)
-                  (puthash (nth 2 contents)
-                           (or (ignore-errors (string-to-number (nth 4 
contents))) 0)
-                           count-info))
-                (forward-line 1)))
-            (setq pyim-basedict-libpinyin-count-info count-info)))))))
-
-(defun pyim-basedict-cchar< (a b)
-  "如果汉字或者词条 A 的使用频率大于 B 的使用频率时,返回 t."
-  (> (or (ignore-errors (gethash a pyim-basedict-libpinyin-count-info)) 0)
-     (or (ignore-errors (gethash b pyim-basedict-libpinyin-count-info)) 0)))
-
-(defun pyim-basedict-build-file ()
-  "使用 libpinyin 自带的 data 文件创建 pyim-basedict.pyim."
-  (interactive)
-  (pyim-basedict-generate-count-info)
-  (let ((dir pyim-basedict-libpinyin-datadir)
-        (hash-table (make-hash-table :test #'equal)))
-    (if (not (and dir (file-directory-p dir)))
-        (message "Warn: `pyim-basedict-libpinyin-datadir' is not a directory.")
-      (with-temp-buffer
-        (dolist (filename pyim-basedict-libpinyin-data-files)
-          (when (file-exists-p (expand-file-name filename dir))
-            (insert-file-contents (expand-file-name filename dir))
-            (goto-char (point-max))))
-        (goto-char (point-min))
-        (while (not (eobp))
-          (let* ((contents (pyim-dline-parse))
-                 (code (replace-regexp-in-string
-                        "'" "-"
-                        (car contents)))
-                 (word (cadr contents)))
-            (puthash code (push word (gethash code hash-table))
-                     hash-table))
-          (forward-line 1)))
-      (with-temp-buffer
-        (maphash
-         (lambda (key value)
-           (setq value (sort (delete-dups (reverse value)) 
#'pyim-basedict-cchar<))
-           (insert (format "%s %s\n" key (mapconcat #'identity value " "))))
-         hash-table)
-        (sort-lines nil (point-min) (point-max))
-        (goto-char (point-min))
-        (insert ";; -*- coding: utf-8 -*--\n")
-        (insert (format ";; Convert from data of %S with the help of 
`pyim-basedict-build-file'.\n"
-                        pyim-basedict-libpinyin-tarball-url))
-        (write-file "pyim-basedict.pyim" t)))))
+      (pyim-extra-dicts-add-dict
+       `(;; Make Indent beautiful :-)
+         :name "Basedict-elpa"
+         :file ,file
+         :coding utf-8-unix
+         :dict-type pinyin-dict
+         :elpa t)))))
 
 ;; * Footer
 (provide 'pyim-basedict)



reply via email to

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