[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 9b0940420e: Add emacs-news-previous-untagged-entry command
From: |
Lars Ingebrigtsen |
Subject: |
master 9b0940420e: Add emacs-news-previous-untagged-entry command |
Date: |
Sat, 16 Apr 2022 12:35:26 -0400 (EDT) |
branch: master
commit 9b0940420e811ab7d819db9e6ad841591a60b873
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>
Add emacs-news-previous-untagged-entry command
* lisp/textmodes/emacs-news-mode.el
(emacs-news-next-untagged-entry): Allow searching backward.
(emacs-news-previous-untagged-entry): New command and keystroke.
---
lisp/textmodes/emacs-news-mode.el | 22 +++++++++++++++++-----
1 file changed, 17 insertions(+), 5 deletions(-)
diff --git a/lisp/textmodes/emacs-news-mode.el
b/lisp/textmodes/emacs-news-mode.el
index 340187e5fd..85cbb1847b 100644
--- a/lisp/textmodes/emacs-news-mode.el
+++ b/lisp/textmodes/emacs-news-mode.el
@@ -41,6 +41,7 @@
(defvar-keymap emacs-news-mode-map
"C-c C-s" #'emacs-news-next-untagged-entry
+ "C-c C-r" #'emacs-news-previous-untagged-entry
"C-c C-n" #'emacs-news-count-untagged-entries)
(defvar emacs-news-mode-font-lock-keywords
@@ -83,16 +84,21 @@
(t
(fill-paragraph justify))))
-(defun emacs-news-next-untagged-entry ()
- "Go to the next untagged NEWS entry."
- (interactive nil emacs-news-mode)
+(defun emacs-news-next-untagged-entry (&optional reverse)
+ "Go to the next untagged NEWS entry.
+If REVERSE (interactively, the prefix), go to the previous
+untagged NEWS entry."
+ (interactive "P" emacs-news-mode)
(let ((start (point))
(found nil))
;; Don't consider the current line, because that would stop
;; progress if calling this command repeatedly.
- (forward-line 1)
+ (unless reverse
+ (forward-line 1))
(while (and (not found)
- (re-search-forward "\\(\\*+\\) " nil t))
+ (funcall (if reverse #'re-search-backward
+ #'re-search-forward)
+ "^\\(\\*+\\) " nil t))
(unless (save-excursion
(forward-line -1)
(looking-at "---$\\|\\+\\+\\+$"))
@@ -101,6 +107,7 @@
;; more asterisks).
(let ((level (length (match-string 1))))
(when (save-excursion
+ (goto-char (match-end 0))
(re-search-forward "^\\(\\*+\\) " nil t))
(when (<= (length (match-string 1)) level)
;; It wasn't a sub-heading, so we've found one.
@@ -115,6 +122,11 @@
(goto-char start)
nil)))
+(defun emacs-news-previous-untagged-entry ()
+ "Go to the previous untagged NEWS entry."
+ (interactive nil emacs-news-mode)
+ (emacs-news-next-untagged-entry t))
+
(defun emacs-news-count-untagged-entries ()
"Say how many untagged entries there are in the current NEWS buffer."
(interactive nil emacs-news-mode)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 9b0940420e: Add emacs-news-previous-untagged-entry command,
Lars Ingebrigtsen <=