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

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

[elpa] externals/denote fedd04ebf4 5/5: Merge pull request #91 from jean


From: ELPA Syncer
Subject: [elpa] externals/denote fedd04ebf4 5/5: Merge pull request #91 from jeanphilippegg/cleanup
Date: Mon, 15 Aug 2022 02:57:33 -0400 (EDT)

branch: externals/denote
commit fedd04ebf49841dd23c4fb41e77a0a26a94dba12
Merge: b84d945d58 a7b51fe041
Author: Protesilaos Stavrou <info@protesilaos.com>
Commit: GitHub <noreply@github.com>

    Merge pull request #91 from jeanphilippegg/cleanup
    
    Some cleanups for denote--only-note-p
---
 denote.el | 28 +++++++++++++++++-----------
 1 file changed, 17 insertions(+), 11 deletions(-)

diff --git a/denote.el b/denote.el
index c9e1607ada..af1fe54450 100644
--- a/denote.el
+++ b/denote.el
@@ -355,9 +355,6 @@ command."
 (defconst denote--keywords-regexp "__\\([[:alnum:][:nonascii:]_-]*\\)"
   "Regular expression to match keywords.")
 
-(defconst denote--extension-regexp "\\.\\(org\\|md\\|txt\\)"
-  "Regular expression to match supported Denote extensions.")
-
 (defconst denote--punctuation-regexp "[][{}!@#$%^&*()=+'\"?,.\|;:~`‘’“”/]*"
   "Punctionation that is removed from file names.
 We consider those characters illegal for our purposes.")
@@ -438,13 +435,9 @@ trailing hyphen."
   (let ((file-name (file-name-nondirectory file)))
     (and (not (file-directory-p file))
          (file-regular-p file)
-         (string-match-p (concat "\\`" denote--id-regexp
-                                 ".*" denote--extension-regexp
-                                 "\\(.gpg\\)?"
-                                 "\\'")
-                         file-name)
-         ;; Can this ever be t given the above?
-         (not (string-match-p "[#~]\\'" file)))))
+         (string-prefix-p (denote-directory) (expand-file-name file))
+         (string-match-p (concat "\\`" denote--id-regexp) file-name)
+         (denote--file-supported-extension-p file))))
 
 (defun denote--file-has-identifier-p (file)
   "Return non-nil if FILE has a Denote identifier."
@@ -453,7 +446,13 @@ trailing hyphen."
 
 (defun denote--file-supported-extension-p (file)
   "Return non-nil if FILE has supported extension."
-  (string-match-p (format "%s\\(.gpg\\)?\\'" denote--extension-regexp) file))
+  (let* ((extensions (denote--extensions))
+         (valid-extensions (append extensions
+                                   (mapcar (lambda (e) (concat e ".gpg"))
+                                           extensions))))
+    (seq-some
+     (lambda (e) (string-suffix-p e file))
+     valid-extensions)))
 
 (defun denote--file-regular-writable-p (file)
   "Return non-nil if FILE is regular and writable."
@@ -743,6 +742,13 @@ Based on FILE-TYPE."
 Based on FILE-TYPE."
   (plist-get (alist-get file-type denote-file-types) 
:keywords-value-reverse-function))
 
+(defun denote--extensions ()
+  "Return all extensions in `denote-file-type'."
+  (delete-dups
+   (mapcar (lambda (type)
+             (plist-get (cdr type) :extension))
+           denote-file-types)))
+
 (defun denote--get-title-line-from-front-matter (title file-type)
   "Retrieve title line from front matter based on FILE-TYPE.
 Format TITLE in the title line. The returned line does not



reply via email to

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