branch: externals/denote-sequence
commit f5ce74a98f3750a7447e0422b72c6b84024c2e3c
Author: Protesilaos Stavrou <[email protected]>
Commit: Protesilaos Stavrou <[email protected]>

    Make denote-sequence--number-to-alpha-complete accept TARGET-SCHEME
    
    This is better than let binding the user option.
---
 denote-sequence.el            |  9 ++++++---
 tests/denote-sequence-test.el | 10 ++++------
 2 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/denote-sequence.el b/denote-sequence.el
index 9b12a495ca..31b905573f 100644
--- a/denote-sequence.el
+++ b/denote-sequence.el
@@ -385,8 +385,11 @@ has the same meaning as in `denote-sequence-and-scheme-p'."
                              parts)))
       (denote-sequence-join converted-parts 'numeric))))
 
-(defun denote-sequence--number-to-alpha-complete (sequence)
-  "Like `denote-sequence--number-to-alpha' but for the complete SEQUENCE."
+(defun denote-sequence--number-to-alpha-complete (sequence target-scheme)
+  "Like `denote-sequence--number-to-alpha' but for the complete SEQUENCE.
+TARGET-SCHEME is either `alphanumeric' or `alphanumeric-delimited'."
+  (unless (memq target-scheme '(alphanumeric alphanumeric-delimited))
+    (error "The TARGET-SCHEME can only be `alphanumeric' or 
`alphanumeric-delimited'"))
   (if (denote-sequence-alphanumeric-p sequence)
       sequence
     (let* ((parts (denote-sequence-split sequence))
@@ -402,7 +405,7 @@ has the same meaning as in `denote-sequence-and-scheme-p'."
                                 (t
                                  (denote-sequence--number-to-alpha string))))
                              parts)))
-      (denote-sequence-join converted-parts denote-sequence-scheme))))
+      (denote-sequence-join converted-parts target-scheme))))
 
 ;; TODO 2026-03-24: Add support for the `alphanumeric-delimited'.
 (defun denote-sequence-make-conversion (string &optional string-is-sequence)
diff --git a/tests/denote-sequence-test.el b/tests/denote-sequence-test.el
index 3bb19bbbc8..a780b54f1f 100644
--- a/tests/denote-sequence-test.el
+++ b/tests/denote-sequence-test.el
@@ -124,12 +124,10 @@ STRINGS passed to it conform with the given SCHEME."
 
 (ert-deftest dst-denote-sequence--number-to-alpha-complete ()
   "Test that `denote-sequence--number-to-alpha-complete' does the right thing."
-  (should
-   (let ((denote-sequence-scheme 'alphanumeric))
-     (string= (denote-sequence--number-to-alpha-complete "1=1=1=1=1=1=1") 
"1a1a1a1")))
-  (should
-   (let ((denote-sequence-scheme 'alphanumeric-delimited))
-     (string= (denote-sequence--number-to-alpha-complete "1=1=1=1=1=1=1") 
"1=a1a=1a1")))
+  (should (string= (denote-sequence--number-to-alpha-complete "1=1=1=1=1=1=1" 
'alphanumeric) "1a1a1a1"))
+  (should (string= (denote-sequence--number-to-alpha-complete "1=1=1=1=1=1=1" 
'alphanumeric-delimited) "1=a1a=1a1"))
+  (should-error (denote-sequence--number-to-alpha-complete "1=1=1=1=1=1=1" 
'numeric))
+  (should-error (denote-sequence--number-to-alpha-complete "1=1=1=1=1=1=1" 
'numericdkjdldk)))
 
 (ert-deftest dst-denote-sequence--get-new-exhaustive ()
   "Test if we get the correct parent, child, sibling, or relatives of a 
sequence.

Reply via email to