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

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

[elpa] externals/pyim afd2bbe9cc 1/3: Add pyim-split-list


From: ELPA Syncer
Subject: [elpa] externals/pyim afd2bbe9cc 1/3: Add pyim-split-list
Date: Wed, 18 Jan 2023 20:58:05 -0500 (EST)

branch: externals/pyim
commit afd2bbe9cc425c2d271cb7d546caddfabec0ce91
Author: Feng Shu <tumashu@163.com>
Commit: Feng Shu <tumashu@163.com>

    Add pyim-split-list
---
 pyim-common.el      | 10 ++++++++++
 tests/pyim-tests.el |  6 ++++++
 2 files changed, 16 insertions(+)

diff --git a/pyim-common.el b/pyim-common.el
index 082450c6f2..2d89cf27cf 100644
--- a/pyim-common.el
+++ b/pyim-common.el
@@ -131,6 +131,16 @@ When CARE-FIRST-ONE is no-nil, ((a b c) (d e)) => (a d)."
         (push (string-join list (or sep "")) output)))
     (nreverse output)))
 
+(defun pyim-split-list (list separator)
+  "Split LIST into sublists bounded by equal SEPARATOR."
+  (let (group result)
+    (dolist (x (append list (list separator)))
+      (if (not (equal x separator))
+          (push x group)
+        (push (nreverse group) result)
+        (setq group nil)))
+    (reverse result)))
+
 (defun pyim-char-before-to-string (num)
   "得到光标前第 NUM 个字符,并将其转换为字符串。"
   (let* ((point (point))
diff --git a/tests/pyim-tests.el b/tests/pyim-tests.el
index d181629be4..eaa3ed9de3 100644
--- a/tests/pyim-tests.el
+++ b/tests/pyim-tests.el
@@ -199,6 +199,12 @@
                  '("a-b-c-d" "a-b-c" "a-b")))
   (should (equal (pyim-subconcat nil) nil)))
 
+(ert-deftest pyim-tests-pyim-split-list ()
+  (should (equal (pyim-split-list '(a b sep c d) 'sep)
+                 '((a b) (c d))))
+  (should (equal (pyim-split-list '(sep b sep c sep) 'sep)
+                 '(nil (b) (c) nil))))
+
 (ert-deftest pyim-tests-pyim-string-distance ()
   (should (equal (pyim-string-distance "nihaoma" "nihaoma") 0))
   (should (equal (pyim-string-distance "nihaoma" "nhm") 4))



reply via email to

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