[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/pyim 09a1be1 1/2: 使用 `pyim-pymap-py2cchar-get' 搜索更多的词条
From: |
ELPA Syncer |
Subject: |
[elpa] externals/pyim 09a1be1 1/2: 使用 `pyim-pymap-py2cchar-get' 搜索更多的词条 |
Date: |
Sun, 5 Dec 2021 21:57:27 -0500 (EST) |
branch: externals/pyim
commit 09a1be19384e98bc9c1879850b7f987fb3608aef
Author: Feng Shu <tumashu@163.com>
Commit: Feng Shu <tumashu@163.com>
使用 `pyim-pymap-py2cchar-get' 搜索更多的词条
如果 pyim-candidates-create-quanpin 找不到第一个拼音对应的汉字,那就进一步使用
`pyim-pymap-py2cchar-get' 来查找,这个函数支持声母搜索。可以得到更多的词条。
---
pyim-candidates.el | 31 +++++++++++++++++++++++--------
1 file changed, 23 insertions(+), 8 deletions(-)
diff --git a/pyim-candidates.el b/pyim-candidates.el
index edc7f02..05fb070 100644
--- a/pyim-candidates.el
+++ b/pyim-candidates.el
@@ -31,6 +31,7 @@
(require 'pyim-common)
(require 'pyim-dcache)
(require 'pyim-codes)
+(require 'pyim-pymap)
(defgroup pyim-candidates nil
"Candidates of pyim."
@@ -111,7 +112,7 @@ IMOBJS 获得候选词条。"
(defun pyim-candidates-create-quanpin (imobjs scheme-name &optional
fast-search)
"`pyim-candidates-create:quanpin' 内部使用的函数。"
- (let (znabc-words pinyin-chars personal-words common-words)
+ (let (znabc-words personal-words common-words pinyin-chars-1 pinyin-chars-2)
;; 智能ABC模式,得到尽可能的拼音组合,查询这些组合,得到的词条做为联想词。
(let ((codes (mapcar (lambda (x)
(pyim-subconcat x "-"))
@@ -143,14 +144,23 @@ IMOBJS 获得候选词条。"
'(code2word))))
;; 第一个汉字
(w3 (pyim-dcache-get
- (car (pyim-codes-create imobj scheme-name)))))
+ (car (pyim-codes-create imobj scheme-name))))
+ ;; 如果 w3 找不到第一个拼音对应的汉字,那就进一步使用
+ ;; `pyim-pymap-py2cchar-get' 来查找,这个函数支持声母搜索。可以得到
+ ;; 更多的词条。
+ (w4 (unless w3
+ (mapcar #'char-to-string
+ (pyim-zip (pyim-pymap-py2cchar-get
+ (car (pyim-codes-create imobj
scheme-name))))))))
(push w1 personal-words)
(push w2 common-words)
- (push w3 pinyin-chars)))
+ (push w3 pinyin-chars-1)
+ (push w4 pinyin-chars-2)))
(setq personal-words (pyim-zip (nreverse personal-words) fast-search))
(setq common-words (pyim-zip (nreverse common-words) fast-search))
- (setq pinyin-chars (pyim-zip (nreverse pinyin-chars) fast-search))
+ (setq pinyin-chars-1 (pyim-zip (nreverse pinyin-chars-1) fast-search))
+ (setq pinyin-chars-2 (pyim-zip (nreverse pinyin-chars-2) fast-search))
;; 个人词条排序:使用词频信息对个人词库得到的候选词排序,第一个词条的位置
;; 比较特殊,不参与排序,具体原因请参考 `pyim-page-select-word' 中的
@@ -166,16 +176,21 @@ IMOBJS 获得候选词条。"
:personal-words personal-words
:common-words common-words
:znabc-words znabc-words
- :pinyin-chars
- (cl-subseq pinyin-chars
- 0 (min (length pinyin-chars) 5)))))
+ :pinyin-chars-1
+ (cl-subseq pinyin-chars-1
+ 0 (min (length pinyin-chars-1) 5))
+ :pinyin-chars-2
+ (cl-subseq pinyin-chars-2
+ 0 (min (length pinyin-chars-2) 5)))))
(delete-dups
(delq nil
`(,@personal-words
,@common-words
,@znabc-words
- ,@pinyin-chars)))))
+ ,@pinyin-chars-1
+ ,@pinyin-chars-2
+ )))))
(defun pyim-candidates-create:shuangpin (imobjs _scheme-name &optional async)
"`pyim-candidates-create' 处理双拼输入法的函数."