[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/org-contrib 1537548def 2/2: lisp/org-toc.el: Switch to lex
|
From: |
ELPA Syncer |
|
Subject: |
[nongnu] elpa/org-contrib 1537548def 2/2: lisp/org-toc.el: Switch to lexical binding |
|
Date: |
Sat, 6 Jan 2024 07:00:14 -0500 (EST) |
branch: elpa/org-contrib
commit 1537548defb3b5fac8598311dc9068aaab2dc0fd
Author: Ihor Radchenko <yantar92@posteo.net>
Commit: Ihor Radchenko <yantar92@posteo.net>
lisp/org-toc.el: Switch to lexical binding
* lisp/org-toc.el (org-toc-get-headlines-status): Remove under
let-binding. Use `cl-pushnew' instead of dynamic `add-to-list'.
(org-toc--help-message):
(org-toc-help): Refactor, extracting help message into a separate
internal variable. This is done to avoid modifying constant string
for side effect repeatedly.
---
lisp/org-toc.el | 49 ++++++++++++++++++++++++++-----------------------
1 file changed, 26 insertions(+), 23 deletions(-)
diff --git a/lisp/org-toc.el b/lisp/org-toc.el
index 92ca31cf6e..73a8eea295 100644
--- a/lisp/org-toc.el
+++ b/lisp/org-toc.el
@@ -1,4 +1,4 @@
-;;; org-toc.el --- Table of contents for Org-mode buffer
+;;; org-toc.el --- Table of contents for Org-mode buffer -*- lexical-binding:
t; -*-
;; Copyright 2007-2021 Free Software Foundation, Inc.
;;
@@ -456,30 +456,25 @@ current table of contents to it."
(defun org-toc-get-headlines-status ()
"Return an alist of headlines and their associated folding
status."
- (let (output ovs)
+ (let (output)
(save-excursion
(goto-char (point-min))
(while (and (not (eobp))
(goto-char (next-overlay-change (point))))
(when (looking-at org-outline-regexp-bol)
- (add-to-list
- 'output
+ (cl-pushnew
(cons (buffer-substring-no-properties
(match-beginning 0)
(save-excursion
(end-of-line) (point)))
(overlay-get
- (car (overlays-at (point))) 'status))))))
+ (car (overlays-at (point))) 'status))
+ output))))
;; return an alist like (("* Headline" . 'status))
output))
-;; In Org TOC buffer, hide headlines below the first level.
-(defun org-toc-help ()
- "Display a quick help message in the echo-area for `org-toc-mode'."
- (interactive)
- (let ((st-start 0)
- (help-message
- "\[space\] show heading \[1-4\] hide headlines
below this level
+(defvar org-toc--help-message
+ "\[space\] show heading \[1-4\] hide headlines below
this level
\[TAB\] jump to heading \[F\] toggle follow mode
(currently %s)
\[return\] jump and delete others windows \[i\] toggle info mode
(currently %s)
\[S-TAB\] cycle subtree (in Org) \[S\] toggle show subtree mode
(currently %s)
@@ -487,17 +482,25 @@ status."
\[:\] cycle subtree (in TOC) \[c\] toggle column view
(currently %s)
\[n/p\] next/previous heading \[s\] save TOC configuration
\[f/b\] next/previous heading of same level
-\[q\] quit the TOC \[g\] restore last TOC
configuration"))
- (while (string-match "\\[[^]]+\\]" help-message st-start)
- (add-text-properties (match-beginning 0)
- (match-end 0) '(face bold) help-message)
- (setq st-start (match-end 0)))
- (message help-message
- (if org-toc-follow-mode "on" "off")
- (if org-toc-info-mode "on" "off")
- (if org-toc-show-subtree-mode "on" "off")
- (if org-toc-recenter-mode (format "on, line %s" org-toc-recenter) "off")
- (if org-toc-columns-shown "on" "off"))))
+\[q\] quit the TOC \[g\] restore last TOC
configuration"
+ "Help message used by `org-toc-help'.")
+
+(let ((st-start 0))
+ (while (string-match "\\[[^]]+\\]" org-toc--help-message st-start)
+ (add-text-properties (match-beginning 0)
+ (match-end 0) '(face bold) org-toc--help-message)
+ (setq st-start (match-end 0))))
+
+;; In Org TOC buffer, hide headlines below the first level.
+(defun org-toc-help ()
+ "Display a quick help message in the echo-area for `org-toc-mode'."
+ (interactive)
+ (message org-toc--help-message
+ (if org-toc-follow-mode "on" "off")
+ (if org-toc-info-mode "on" "off")
+ (if org-toc-show-subtree-mode "on" "off")
+ (if org-toc-recenter-mode (format "on, line %s" org-toc-recenter)
"off")
+ (if org-toc-columns-shown "on" "off")))
;;;;##########################################################################