branch: externals/denote
commit 40f2bf5569ede449b72eff4ff0692c228560d6a2
Author: Jean-Philippe Gagné Guay <jeanphilippe...@gmail.com>
Commit: Jean-Philippe Gagné Guay <jeanphilippe...@gmail.com>

    Rename denote-id-regexp and denote-id-format
---
 README.org           | 14 +++++++-------
 denote.el            | 45 +++++++++++++++++++++++++++++----------------
 tests/denote-test.el |  2 +-
 3 files changed, 37 insertions(+), 24 deletions(-)

diff --git a/README.org b/README.org
index b0e0293c55..a7bce339cc 100644
--- a/README.org
+++ b/README.org
@@ -4949,14 +4949,14 @@ The following sections cover the specifics.
 :CUSTOM_ID: h:c98aed45-341a-40a0-91ce-347a29c98ab4
 :END:
 
-#+vindex: denote-id-format
-+ Variable ~denote-id-format~ :: Format of ID prefix of a note's
+#+vindex: denote-date-identifier-format
++ Variable ~denote-date-identifier-format~ :: Format of ID prefix of a note's
   filename.  The note's ID is derived from the date and time of its
   creation ([[#h:4e9c7512-84dc-4dfb-9fa9-e15d51178e5d][The file-naming 
scheme]]).
 
-#+vindex: denote-id-regexp
-+ Variable ~denote-id-regexp~ :: Regular expression to match
-  ~denote-id-format~.
+#+vindex: denote-date-identifier-regexp
++ Variable ~denote-date-identifier-regexp~ :: Regular expression to match
+  ~denote-date-identifier-format~.
 
 #+vindex: denote-signature-regexp
 + Variable ~denote-signature-regexp~ :: Regular expression to match
@@ -5279,7 +5279,7 @@ there will be no corresponding prompt.
 
 #+findex: denote-get-identifier
 + Function ~denote-get-identifier~ :: Convert =DATE= into a Denote
-  identifier using ~denote-id-format~. If =DATE= is nil, return an
+  identifier using ~denote-date-identifier-format~. If =DATE= is nil, return an
   empty string as the identifier.
 
 #+findex: denote-retrieve-front-matter-title-value
@@ -5388,7 +5388,7 @@ there will be no corresponding prompt.
 
 #+findex: denote-prompt-for-date-return-id
 + Function ~denote-prompt-for-date-return-id~ :: Use
-  ~denote-date-prompt~ and return it as ~denote-id-format~.
+  ~denote-date-prompt~ and return it as ~denote-date-identifier-format~.
 
 #+findex: denote-template-prompt
 + Function ~denote-template-prompt~ :: Prompt for template key in
diff --git a/denote.el b/denote.el
index 67a6c5b86a..c6e31808d9 100644
--- a/denote.el
+++ b/denote.el
@@ -911,12 +911,15 @@ If the region is active, its text is used as the link's 
description."
 
 ;; For character classes, evaluate: (info "(elisp) Char Classes")
 
-(defconst denote-id-format "%Y%m%dT%H%M%S"
+(defconst denote-date-identifier-format "%Y%m%dT%H%M%S"
   "Format of ID prefix of a note's filename.
 The note's ID is derived from the date and time of its creation.")
 
-(defconst denote-id-regexp "\\([0-9]\\{8\\}\\)\\(T[0-9]\\{6\\}\\)"
-  "Regular expression to match `denote-id-format'.")
+(defconst denote-date-identifier-regexp "\\([0-9]\\{8\\}\\)\\(T[0-9]\\{6\\}\\)"
+  "Regular expression to match `denote-date-identifier-format'.")
+
+(defconst denote-identifier-regexp 
"@@\\([^.]*?\\)\\(==.*\\|--.*\\|__.*\\|@@.*\\|\\..*\\)*$"
+  "Regular expression to match the IDENTIFIER field in a file name.")
 
 (defconst denote-signature-regexp 
"==\\([^.]*?\\)\\(==.*\\|--.*\\|__.*\\|@@.*\\|\\..*\\)*$"
   "Regular expression to match the SIGNATURE field in a file name.")
@@ -927,6 +930,16 @@ The note's ID is derived from the date and time of its 
creation.")
 (defconst denote-keywords-regexp 
"__\\([^.]*?\\)\\(==.*\\|--.*\\|__.*\\|@@.*\\|\\..*\\)*$"
   "Regular expression to match the KEYWORDS field in a file name.")
 
+(make-obsolete-variable
+ 'denote-id-format
+ 'denote-date-identifier-format
+ "4.1.0")
+
+(make-obsolete-variable
+ 'denote-id-regexp
+ 'denote-date-identifier-regexp
+ "4.1.0")
+
 (make-obsolete-variable
  'denote-excluded-punctuation-extra-regexp
  'denote-file-name-slug-functions
@@ -1140,7 +1153,7 @@ Also enforce the rules of the file-naming scheme."
 
 (defun denote-identifier-p (identifier)
   "Return non-nil if IDENTIFIER string is a Denote identifier."
-  (string-match-p (format "\\`%s\\'" denote-id-regexp) identifier))
+  (string-match-p (format "\\`%s\\'" denote-date-identifier-regexp) 
identifier))
 
 (defun denote-file-has-identifier-p (file)
   "Return non-nil if FILE has a Denote identifier."
@@ -1228,7 +1241,7 @@ FILE must be an absolute path."
 
 (defun denote-extract-id-from-string (string)
   "Return existing Denote identifier in STRING, else nil."
-  (when (string-match denote-id-regexp string)
+  (when (string-match denote-date-identifier-regexp string)
     (match-string-no-properties 0 string)))
 
 (defun denote--exclude-directory-regexp-p (file)
@@ -2373,9 +2386,9 @@ is a list of strings.  FILETYPE is one of the values of 
variable
 To create a new one from a date, refer to the function
 `denote-get-identifier'."
   (let ((filename (file-name-nondirectory file)))
-    (cond ((string-match (concat "\\`" denote-id-regexp) filename)
+    (cond ((string-match (concat "\\`" denote-date-identifier-regexp) filename)
            (match-string-no-properties 0 filename))
-          ((string-match (concat "@@\\(?1:" denote-id-regexp "\\)") filename)
+          ((string-match (concat "@@\\(?1:" denote-date-identifier-regexp 
"\\)") filename)
            (match-string-no-properties 1 filename)))))
 
 ;; TODO 2023-12-08: Maybe we can only use
@@ -2386,10 +2399,10 @@ To create a new one from a date, refer to the function
       (error "Cannot find `%s' as a file with a Denote identifier" file)))
 
 (defun denote-get-identifier (date)
-  "Convert DATE into a Denote identifier using `denote-id-format'.
+  "Convert DATE into a Denote identifier using `denote-date-identifier-format'.
 If DATE is nil, return an empty string as the identifier."
   (if date
-      (format-time-string denote-id-format date)
+      (format-time-string denote-date-identifier-format date)
     ""))
 
 (defvar denote--used-ids nil
@@ -2659,7 +2672,7 @@ which case it is not added to the base file name."
     (setq file-name (concat file-name extension))
     ;; Do not prepend identifier with @@ if it is the first component and has 
the format 00000000T000000.
     (when (and (string-prefix-p "@@" file-name)
-               (string-match-p (concat "\\`" denote-id-regexp "\\'") id)) ; 
This is always true for now.
+               (string-match-p (concat "\\`" denote-date-identifier-regexp 
"\\'") id)) ; This is always true for now.
       (setq file-name (substring file-name 2)))
     (concat dir-path file-name)))
 
@@ -2786,7 +2799,7 @@ If DATE is nil or an empty string, return nil."
        "\\([0-9]\\{4\\}\\)\\([0-9]\\{2\\}\\)\\([0-9]\\{2\\}\\).*"
        "\\1-\\2-\\3"
        identifier)
-    (error "`%s' does not look like a Denote identifier per 
`denote-id-regexp'" identifier)))
+    (error "`%s' does not look like a Denote identifier per 
`denote-date-identifier-regexp'" identifier)))
 
 (defun denote--buffer-file-names ()
   "Return file names of Denote buffers."
@@ -2820,7 +2833,7 @@ available id is found."
         (current-id id)
         (iteration 0))
     (while (gethash current-id used-ids)
-      ;; Prevent infinite loop if `denote-id-format' is misconfigured
+      ;; Prevent infinite loop if `denote-date-identifier-format' is 
misconfigured
       (setq iteration (1+ iteration))
       (when (>= iteration 10000)
         (user-error "A unique identifier could not be found"))
@@ -3228,7 +3241,7 @@ a value that can be parsed by `decode-time' or nil."
        'denote-date-history))))
 
 (defun denote-prompt-for-date-return-id (&optional initial-date prompt-text)
-  "Use `denote-date-prompt' and return it as `denote-id-format'.
+  "Use `denote-date-prompt' and return it as `denote-date-identifier-format'.
 Optional INITIAL-DATE and PROMPT-TEXT have the same meaning as
 `denote-date-prompt'."
   (denote-get-identifier
@@ -5626,7 +5639,7 @@ Return a list with the absoulte path of referenced files."
       (save-restriction
         (narrow-to-region start end)
         (goto-char (point-min))
-        (while (re-search-forward denote-id-regexp nil t)
+        (while (re-search-forward denote-date-identifier-regexp nil t)
           (push (denote-get-path-by-id (match-string 0)) id-list))))
     id-list))
 
@@ -5862,7 +5875,7 @@ search for."
 (defun denote-link-markdown-follow (link)
   "Function to open Denote file present in LINK.
 To be assigned to `markdown-follow-link-functions'."
-  (when (ignore-errors (string-match denote-id-regexp link))
+  (when (ignore-errors (string-match denote-date-identifier-regexp link))
     (funcall denote-open-link-function
              (denote-get-path-by-id (match-string 0 link)))))
 
@@ -5954,7 +5967,7 @@ To be assigned to `markdown-follow-link-functions'."
     (or (get-text-property position 'denote-link-query-part)
         (when-let* ((link-data (get-text-property position 'htmlize-link))
                     (link (cadr link-data)))
-          (string-match denote-id-regexp link)
+          (string-match denote-date-identifier-regexp link)
           (match-string-no-properties 0 link)))))
 
 (defun denote--get-link-file-path-at-point (&optional point)
diff --git a/tests/denote-test.el b/tests/denote-test.el
index 1025c345c0..bad777ad69 100644
--- a/tests/denote-test.el
+++ b/tests/denote-test.el
@@ -286,7 +286,7 @@ does not involve the time zone."
 (ert-deftest dt-denote-format-file-name ()
   "Test that `denote-format-file-name' returns all expected paths."
   (let* ((title "Some test")
-         (id (format-time-string denote-id-format (denote-valid-date-p 
"2023-11-28 05:53:11")))
+         (id (format-time-string denote-date-identifier-format 
(denote-valid-date-p "2023-11-28 05:53:11")))
          (denote-directory "/tmp/test-denote")
          (kws '("one" "two")))
     (should-error (denote-format-file-name

Reply via email to