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.