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

[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"))



reply via email to

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