[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/pyim ff5cd57c57 1/2: Add pyim-cregexp-find-scheme and u
From: |
ELPA Syncer |
Subject: |
[elpa] externals/pyim ff5cd57c57 1/2: Add pyim-cregexp-find-scheme and use it. |
Date: |
Wed, 22 Jun 2022 05:00:05 -0400 (EDT) |
branch: externals/pyim
commit ff5cd57c57f1e730a905ddc8e856858a459909e0
Author: Feng Shu <tumashu@163.com>
Commit: Feng Shu <tumashu@163.com>
Add pyim-cregexp-find-scheme and use it.
---
pyim-cregexp.el | 19 +++++++++++++------
tests/pyim-tests.el | 29 ++++++++++++++++++++++++-----
2 files changed, 37 insertions(+), 11 deletions(-)
diff --git a/pyim-cregexp.el b/pyim-cregexp.el
index 08755dd419..2839a46c37 100644
--- a/pyim-cregexp.el
+++ b/pyim-cregexp.el
@@ -60,12 +60,19 @@
这个函数同时考虑 SCHEME, current scheme 和
`pyim-cregexp-fallback-scheme'."
- (let ((current-scheme (pyim-scheme-current)))
- (cond
- ((and scheme (pyim-scheme-cregexp-support-p scheme)) scheme)
- ((and current-scheme (pyim-scheme-cregexp-support-p current-scheme))
- current-scheme)
- (t (pyim-scheme-get pyim-cregexp-fallback-scheme)))))
+ (or (pyim-cregexp-find-scheme scheme)
+ (pyim-cregexp-find-scheme pyim-default-scheme)
+ (pyim-cregexp-find-scheme pyim-cregexp-fallback-scheme)
+ (pyim-cregexp-find-scheme 'quanpin)))
+
+(defun pyim-cregexp-find-scheme (scheme-or-name)
+ "如果 SCHEME-OR-NAME 支持 cregexp 功能,就返回对应的 scheme."
+ (let ((scheme (if (pyim-scheme-p scheme-or-name)
+ scheme-or-name
+ (pyim-scheme-get scheme-or-name))))
+ (when (and (pyim-scheme-p scheme)
+ (pyim-scheme-cregexp-support-p scheme))
+ scheme)))
(defun pyim-cregexp-create (string scheme &optional char-level-num
chinese-only)
"根据 STRING 构建一个中文 regexp, 用于 \"拼音搜索汉字\".
diff --git a/tests/pyim-tests.el b/tests/pyim-tests.el
index 4af2a6fd6d..42791a150d 100644
--- a/tests/pyim-tests.el
+++ b/tests/pyim-tests.el
@@ -904,13 +904,32 @@
(should (equal (buffer-substring (point-min) (point)) "哈哈")))))
;; ** pyim-cregexp 相关单元测试
-(ert-deftest pyim-tests-pyim-cregexp ()
- (let ((wubi (pyim-scheme-get 'wubi))
- (pyim-default-scheme 'quanpin)
- (pyim-cregexp-fallback-scheme 'wubi))
- (should (equal (pyim-scheme-name (pyim-cregexp-scheme)) 'quanpin))
+(ert-deftest pyim-tests-pyim-cregexp-find-scheme ()
+ (should-not (pyim-cregexp-find-scheme nil))
+ (should (equal (pyim-scheme-name (pyim-cregexp-find-scheme 'wubi)) 'wubi))
+ (should-not (pyim-cregexp-find-scheme 'wubi1))
+ (should (equal (pyim-scheme-name (pyim-cregexp-find-scheme (pyim-scheme-get
'wubi))) 'wubi)))
+
+(ert-deftest pyim-tests-pyim-cregexp-scheme ()
+ (let ((wubi (pyim-scheme-get 'wubi)))
(should (equal (pyim-scheme-name (pyim-cregexp-scheme wubi)) 'wubi)))
+ (let ((wubi (pyim-scheme-get 'wubi1))
+ (pyim-default-scheme 'quanpin))
+ (should (equal (pyim-scheme-name (pyim-cregexp-scheme wubi)) 'quanpin)))
+
+ (let ((pyim-default-scheme 'quanpin))
+ (should (equal (pyim-scheme-name (pyim-cregexp-scheme)) 'quanpin)))
+
+ (let ((pyim-default-scheme 'quanpin1)
+ (pyim-cregexp-fallback-scheme 'wubi))
+ (should (equal (pyim-scheme-name (pyim-cregexp-scheme)) 'wubi)))
+
+ (let ((pyim-default-scheme 'quanpin1)
+ (pyim-cregexp-fallback-scheme 'wubi1))
+ (should (equal (pyim-scheme-name (pyim-cregexp-scheme)) 'quanpin))))
+
+(ert-deftest pyim-tests-pyim-cregexp ()
(let ((regexp (pyim-cregexp-build "nihao")))
(should (string-match-p regexp "nihao"))
(should (string-match-p regexp "anihaob"))