branch: externals/denote-sequence
commit 6e2c0828add52d2e976aad87c12aa679bdd16874
Author: Protesilaos Stavrou <i...@protesilaos.com>
Commit: Protesilaos Stavrou <i...@protesilaos.com>

    Add commands to move to the next or previous sibling
    
    I will document these later...
---
 denote-sequence.el | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/denote-sequence.el b/denote-sequence.el
index 0a5588ea41..67b65b193d 100644
--- a/denote-sequence.el
+++ b/denote-sequence.el
@@ -880,6 +880,26 @@ If the current file does not have a sequence, then behave 
exactly like
          (denote-use-signature new-sequence))
     (call-interactively 'denote)))
 
+;;;###autoload
+(defun denote-sequence-find-next-sibling (sequence)
+  "Visit the next sibling of file with SEQUENCE."
+  (interactive (list (denote-sequence--get-file-in-dired-or-prompt "Make a new 
sibling of SEQUENCE")))
+  (if-let* ((relatives (denote-sequence-get-relative sequence 'siblings))
+            (next-sequence (denote-sequence--infer-sibling sequence 'next))
+            (path (denote-sequence-get-path next-sequence relatives)))
+      (find-file path)
+    (user-error "No next sibling for sequence `%s'" sequence)))
+
+;;;###autoload
+(defun denote-sequence-find-previous-sibling (sequence)
+  "Visit the previous sibling of file with SEQUENCE."
+  (interactive (list (denote-sequence--get-file-in-dired-or-prompt "Make a new 
sibling of SEQUENCE")))
+  (if-let* ((relatives (denote-sequence-get-relative sequence 'siblings))
+            (previous-sequence (denote-sequence--infer-sibling sequence 
'previous))
+            (path (denote-sequence-get-path previous-sequence relatives)))
+      (find-file path)
+    (user-error "No previous sibling for sequence `%s'" sequence)))
+
 (defvar denote-sequence-relative-types
   '(all-parents parent siblings children all-children)
   "Types of sequence relatives.")

Reply via email to