branch: elpa/hyperdrive commit 69beede3f73236049e83beb2b9699563e1bd5bc0 Author: Joseph Turner <jos...@ushin.org> Commit: Joseph Turner <jos...@ushin.org>
Change: (-open-at-version) Replace hyperdrive-open-latest-version This command is more general. To open the latest version, just hit RET without specifying a version number. --- CHANGELOG.org | 4 ++-- doc/hyperdrive-manual.org | 8 +++++--- doc/hyperdrive-manual.texi | 8 +++++--- hyperdrive-menu.el | 2 +- hyperdrive.el | 23 +++++++++++++---------- 5 files changed, 26 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.org b/CHANGELOG.org index c90c4349a0..30e0c0d5b1 100644 --- a/CHANGELOG.org +++ b/CHANGELOG.org @@ -7,8 +7,8 @@ This project adheres to [[https://semver.org/spec/v2.0.0.html][Semantic Versioni ** Added -- ~hyperdrive-open-latest-version~: Open the latest version of the - current file or directory +- ~hyperdrive-open-at-version~: Open the current file or directory at a + specific version. ** Fixed diff --git a/doc/hyperdrive-manual.org b/doc/hyperdrive-manual.org index f631c9a864..8da67499bd 100644 --- a/doc/hyperdrive-manual.org +++ b/doc/hyperdrive-manual.org @@ -370,12 +370,14 @@ the hyperdrive.* ** View the hyperdrive version history #+findex: hyperdrive-previous-version #+findex: hyperdrive-next-version -#+findex: hyperdrive-open-latest-version +#+findex: hyperdrive-open-at-version Hyperdrives are versioned (see [[*Versioning]]). To open the previous/next version of a hyperdrive file or directory, run -~hyperdrive-previous-version~ or ~hyperdrive-next-version~. To open its -latest version, run ~hyperdrive-open-latest-version~. +~hyperdrive-previous-version~ or ~hyperdrive-next-version~. +~hyperdrive-open-at-version~ lets you specify a version number; leaving +the version blank opens the current file or directory at its +hyperdrive's latest version. *** History buffer #+findex: hyperdrive-history diff --git a/doc/hyperdrive-manual.texi b/doc/hyperdrive-manual.texi index 169faf6f32..01de4db8a9 100644 --- a/doc/hyperdrive-manual.texi +++ b/doc/hyperdrive-manual.texi @@ -635,12 +635,14 @@ the hyperdrive.} @findex hyperdrive-previous-version @findex hyperdrive-next-version -@findex hyperdrive-open-latest-version +@findex hyperdrive-open-at-version Hyperdrives are versioned (see @ref{Versioning}). To open the previous/next version of a hyperdrive file or directory, run -@code{hyperdrive-previous-version} or @code{hyperdrive-next-version}. To open its -latest version, run @code{hyperdrive-open-latest-version}. +@code{hyperdrive-previous-version} or @code{hyperdrive-next-version}. +@code{hyperdrive-open-at-version} lets you specify a version number; leaving +the version blank opens the current file or directory at its +hyperdrive's latest version. @menu * History buffer:: diff --git a/hyperdrive-menu.el b/hyperdrive-menu.el index 8c653b7680..79963b8400 100644 --- a/hyperdrive-menu.el +++ b/hyperdrive-menu.el @@ -115,7 +115,7 @@ "latest"))) (concat ": " (propertize display-version 'face 'transient-value))))) ) - ("V l" "Latest" hyperdrive-open-latest-version) + ("V a" "At..." hyperdrive-open-at-version) ("V h" "History" hyperdrive-history :inapt-if (lambda () (hyperdrive--entry-directory-p (oref transient--prefix scope))))]] diff --git a/hyperdrive.el b/hyperdrive.el index 00467622f8..9fe0f020e3 100644 --- a/hyperdrive.el +++ b/hyperdrive.el @@ -582,14 +582,18 @@ it to `hyperdrive-open'." ((and (pred hyperdrive-entry-p) next-entry) (hyperdrive-open next-entry)))) -(defun hyperdrive-open-latest-version (entry) - "Open latest version of ENTRY." +(defun hyperdrive-open-at-version (entry version) + "Open ENTRY at VERSION. +Nil VERSION means open the entry at its hyperdrive's latest version." (declare (modes hyperdrive-mode)) - (interactive (list hyperdrive-current-entry)) - (if-let ((latest-entry (hyperdrive-entry-at nil entry))) + (interactive (let ((entry hyperdrive-current-entry)) + (list entry (hyperdrive-read-version + :hyperdrive (hyperdrive-entry-hyperdrive entry))))) + (if-let ((latest-entry (hyperdrive-entry-at version entry))) (hyperdrive-open latest-entry) - (hyperdrive-message (substitute-command-keys "%s does not exist at its hyperdrive's latest version. Try \\[hyperdrive-history]") - (hyperdrive-entry-description entry :with-version nil)))) + (hyperdrive-message (substitute-command-keys "%s does not exist at version %s. Try \\[hyperdrive-history]") + (hyperdrive-entry-description entry :with-version nil) + version))) ;;;; Bookmark support @@ -1158,11 +1162,10 @@ The return value of this function is the retrieval buffer." "latest"))) (format " (%s)" display-version))) :help "Open next version"] - ["Latest Version" (lambda () + ["Open Specific Version" (lambda () (interactive) - (call-interactively #'hyperdrive-open-latest-version)) - :label "Latest Version" - :help "Open latest version"] + (call-interactively #'hyperdrive-open-at-version)) + :help "Open specific version"] ["Version History" (lambda () (interactive) (call-interactively #'hyperdrive-history))