[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/devdocs a3177fd: Add devdocs-peruse and previous/next p
From: |
ELPA Syncer |
Subject: |
[elpa] externals/devdocs a3177fd: Add devdocs-peruse and previous/next page commands |
Date: |
Sun, 19 Sep 2021 06:57:13 -0400 (EDT) |
branch: externals/devdocs
commit a3177fde9ed48c1b1bc0a17f0e08338dc3f67e37
Author: Augusto Stoffel <arstoffel@gmail.com>
Commit: Augusto Stoffel <arstoffel@gmail.com>
Add devdocs-peruse and previous/next page commands
---
devdocs.el | 33 +++++++++++++++++++++++++++++++--
1 file changed, 31 insertions(+), 2 deletions(-)
diff --git a/devdocs.el b/devdocs.el
index d922f9e..1baa003 100644
--- a/devdocs.el
+++ b/devdocs.el
@@ -264,8 +264,8 @@ This is an alist containing `entries', `pages' and `types'."
(defvar devdocs-header-line
'(:eval (let-alist (car devdocs--stack)
(concat (devdocs--doc-title .doc)
- devdocs-separator .type
- devdocs-separator .name))))
+ (and .type devdocs-separator) .type
+ (and .name devdocs-separator) .name))))
(define-derived-mode devdocs-mode special-mode "DevDocs"
"Major mode for viewing DevDocs documents."
@@ -316,12 +316,31 @@ with the order of appearance in the text."
(interactive "p")
(devdocs-next-entry (- count)))
+(defun devdocs-next-page (count)
+ "Go forward COUNT pages in this document."
+ (interactive "p")
+ (let-alist (car devdocs--stack)
+ (let* ((pages (alist-get 'pages (devdocs--index .doc)))
+ (page (+ count (seq-position pages (devdocs--path-file .path))))
+ (path (or (ignore-error 'args-out-of-range (seq-elt pages page))
+ (user-error (if (< count 0) "No previous page" "No next
page")))))
+ (devdocs--render `((doc . ,.doc)
+ (path . ,path)
+ (name . ,(format "%s/%s" (1+ page) (length
pages))))))))
+
+(defun devdocs-previous-page (count)
+ "Go backward COUNT entries in this document."
+ (interactive "p")
+ (devdocs-next-page (- count)))
+
(let ((map devdocs-mode-map))
(define-key map [tab] 'forward-button)
(define-key map [backtab] 'backward-button)
(define-key map "i" 'devdocs-lookup)
(define-key map "p" 'devdocs-previous-entry)
(define-key map "n" 'devdocs-next-entry)
+ (define-key map "[" 'devdocs-previous-page)
+ (define-key map "]" 'devdocs-next-page)
(define-key map "l" 'devdocs-go-back)
(define-key map "r" 'devdocs-go-forward)
(define-key map "." 'devdocs-goto-target))
@@ -496,6 +515,16 @@ If INITIAL-INPUT is not nil, insert it into the
minibuffer."
(devdocs-goto-target)
(recenter 0))))
+;;;###autoload
+(defun devdocs-peruse (doc)
+ "Read a document from the first page."
+ (interactive (list (devdocs--read-document "Peruse documentation: ")))
+ (let ((pages (alist-get 'pages (devdocs--index doc))))
+ (pop-to-buffer
+ (devdocs--render `((path . ,(seq-first pages))
+ (doc . ,doc)
+ (name . ,(format "%s/%s" 1 (length pages))))))))
+
;;; Compatibility with the old devdocs package
;;;###autoload
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/devdocs a3177fd: Add devdocs-peruse and previous/next page commands,
ELPA Syncer <=