[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/pyim 30cb33b892 2/3: Fix previous commit.
From: |
ELPA Syncer |
Subject: |
[elpa] externals/pyim 30cb33b892 2/3: Fix previous commit. |
Date: |
Fri, 27 May 2022 23:57:52 -0400 (EDT) |
branch: externals/pyim
commit 30cb33b8920e15de545322d202c1623bb227b59b
Author: Feng Shu <tumashu@163.com>
Commit: Feng Shu <tumashu@163.com>
Fix previous commit.
---
pyim-pymap-utils.el | 100 ----------------------------------------------------
1 file changed, 100 deletions(-)
diff --git a/pyim-pymap-utils.el b/pyim-pymap-utils.el
index be5ab95cbb..a715d744b3 100644
--- a/pyim-pymap-utils.el
+++ b/pyim-pymap-utils.el
@@ -298,106 +298,6 @@
趯罍鼱鳠鳡鳣爟爚灈韂糵礵鹴皭龢鳤亹籥𫚭玃醾齇觿" ""))
"常用汉字")
-;; ** "汉字 -> 拼音" 以及 "拼音 -> 汉字" 的转换函数
-(defun pyim-pymap-cache-create (&optional force)
- "创建 pymap 相关的 cache."
- (pyim-pymap-cchar2py-cache-create force)
- (pyim-pymap-py2cchar-cache-create force))
-
-(defun pyim-pymap-py2cchar-cache-create (&optional force)
- "构建 pinyin 到 chinese char 的缓存.
-
-用于加快搜索速度,这个函数将缓存保存到 `pyim-pymap-py2cchar-cache' 变量中,
-如果 FORCE 设置为 t, 强制更新索引。"
- (when (or force
- (not pyim-pymap-py2cchar-cache1)
- (not pyim-pymap-py2cchar-cache2)
- ;; FIXME: 我偶尔会遇到一个奇怪的问题,创建的缓存没有包含所有的汉字拼
- ;; 音,原因未知,所以这里测试一下,看排在最后面的一个汉字拼音是否包
- ;; 含在缓存中,如果不包含,就重新创建缓存。
- (and pyim-pymap-py2cchar-cache1
- (not (gethash "zuo" pyim-pymap-py2cchar-cache1))))
- (setq pyim-pymap-py2cchar-cache1
- (make-hash-table :size 50000 :test #'equal))
- (setq pyim-pymap-py2cchar-cache2
- (make-hash-table :size 50000 :test #'equal))
- (setq pyim-pymap-py2cchar-cache3
- (make-hash-table :size 50000 :test #'equal))
- (dolist (x pyim-pymap)
- (let* ((py (car x))
- (cchars (cdr x))
- (n (min (length py) 7)))
- (puthash py cchars pyim-pymap-py2cchar-cache1)
- (puthash py (cdr (split-string (car cchars) ""))
- pyim-pymap-py2cchar-cache2)
- (dotimes (i n)
- (let* ((key (substring py 0 (+ i 1)))
- (orig-value (gethash key pyim-pymap-py2cchar-cache3)))
- (puthash key (delete-dups `(,@orig-value ,@cchars))
- pyim-pymap-py2cchar-cache3)))))))
-
-(defun pyim-pymap-py2cchar-get (pinyin &optional equal-match return-list
include-seperator)
- "获取拼音与 PINYIN 想匹配的所有汉字.
-
-比如:
-
-“man” -> (\"忙茫盲芒氓莽蟒邙漭硭\" \"满慢漫曼蛮馒瞒蔓颟谩墁幔螨鞔鳗缦熳镘\")
-
-如果 EQUAL-MATCH 是 non-nil, 获取和 PINYIN 完全匹配的汉字。
-如果 RETURN-LIST 是 non-nil, 返回一个由单个汉字字符串组成的列表。
-
-(\"满\" \"慢\" \"漫\" ...)
-
-如果 INCLUDE-SEPERATOR 是 non-nil, 返回的列表包含一个 ‘|’ 号,pyim 用这个分隔符
-来区分 3500 个常用汉字和生僻字。"
- (pyim-pymap-py2cchar-cache-create)
- (when (and pinyin (stringp pinyin))
- (let ((output
- (if equal-match
- (if return-list
- (gethash pinyin pyim-pymap-py2cchar-cache2)
- (gethash pinyin pyim-pymap-py2cchar-cache1))
- (gethash pinyin pyim-pymap-py2cchar-cache3))))
- (setq output (remove "" output))
- (if include-seperator
- output
- (remove "|" output)))))
-
-(defun pyim-pymap-cchar2py-get (char-or-str)
- "获取字符或者字符串 CHAR-OR-STR 对应的拼音 code.
-
-pyim 在特定的时候需要读取一个汉字的拼音,这个工作由此完成,函数
-从 `pyim-pymap-cchar2py-cache' 查询得到一个汉字字符的拼音, 例如:
-
-(pyim-pymap-cchar2py-get ?我)
-
-结果为:
-
-(\"wo\")"
- (pyim-pymap-cchar2py-cache-create)
- (let ((key (if (characterp char-or-str)
- (char-to-string char-or-str)
- char-or-str)))
- (when (= (length key) 1)
- (gethash key pyim-pymap-cchar2py-cache))))
-
-(defun pyim-pymap-cchar2py-cache-create (&optional force)
- "Build pinyin cchar->pinyin hashtable from `pyim-pymap'.
-
-If FORCE is non-nil, FORCE build."
- (when (or force (not pyim-pymap-cchar2py-cache))
- (setq pyim-pymap-cchar2py-cache
- (make-hash-table :size 50000 :test #'equal))
- (dolist (x pyim-pymap)
- (let ((py (car x))
- (cchar-list (string-to-list (car (cdr x)))))
- (dolist (cchar cchar-list)
- (let* ((key (char-to-string cchar))
- (cache (gethash key pyim-pymap-cchar2py-cache)))
- (if cache
- (puthash key (append (list py) cache)
pyim-pymap-cchar2py-cache)
- (puthash key (list py) pyim-pymap-cchar2py-cache))))))))
-
(defun pyim-pymap-cchar< (a b)
"如果汉字 A 的使用频率大于汉字 B 的使用频率时,返回 non-nil"
(< (or (cl-position a pyim-pymap-commonly-used-cchar :test #'equal) 1000000)