[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/logos be3333b696: Guard against void outline-regexp
From: |
ELPA Syncer |
Subject: |
[elpa] externals/logos be3333b696: Guard against void outline-regexp |
Date: |
Mon, 19 Sep 2022 22:57:45 -0400 (EDT) |
branch: externals/logos
commit be3333b6969c34bb3317d11f1daef6aa5af476cb
Author: Protesilaos Stavrou <info@protesilaos.com>
Commit: Protesilaos Stavrou <info@protesilaos.com>
Guard against void outline-regexp
The previous value would cause a problem if the outline-regexp had not
been set yet. In a typical Emacs session, even on 'emacs -Q', the
outline-regexp is set in the scratch buffer, so we always have a valid
value. However, when the user changes the initial-buffer-choice or
opens Emacs directly for a given file, the outline-regexp can be void,
causing an error with logos-outline-regexp-alist.
Thanks to Xiaoduan for informing me about this error and for testing my
code on how to fix it. This was done via a private channel and is
shared with permission.
---
README.org | 17 ++++++++++-------
logos.el | 4 ++--
2 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/README.org b/README.org
index 4fdc28ce59..72797c6930 100644
--- a/README.org
+++ b/README.org
@@ -226,13 +226,15 @@ changes out-of-the-box
([[#h:2bb57369-352a-43bf-afe3-0bed2fcc7359][Extra tweaks]
#+begin_src emacs-lisp
(require 'logos)
-;; If you want to use outlines instead of page breaks (the ^L)
+;; If you want to use outlines instead of page breaks (the ^L):
(setq logos-outlines-are-pages t)
+
+;; This is the default value for the outlines:
(setq logos-outline-regexp-alist
`((emacs-lisp-mode . "^;;;+ ")
(org-mode . "^\\*+ +")
(markdown-mode . "^\\#+ +")
- (t . ,(or outline-regexp logos--page-delimiter))))
+ (t . ,(if (boundp 'outline-regexp) outline-regexp
logos--page-delimiter))))
;; These apply when `logos-focus-mode' is enabled. Their value is
;; buffer-local.
@@ -434,7 +436,7 @@ as an outline, else the standard =^L=.
(setq logos-outline-regexp-alist
`((emacs-lisp-mode . "^;;;+ ")
(org-mode . "^\\*+ +")
- (t . ,(or outline-regexp logos--page-delimiter))))
+ (t . ,(if (boundp 'outline-regexp) outline-regexp
logos--page-delimiter))))
#+end_src
It is possible to tweak those regular expressions to target both the
@@ -444,7 +446,7 @@ outline and the page delimiters:
(setq logos-outline-regexp-alist
`((emacs-lisp-mode . ,(format "\\(^;;;+ \\|%s\\)" (default-value
'page-delimiter)))
(org-mode . ,(format "\\(^\\*+ +\\|%s\\)" (default-value
'page-delimiter)))
- (t . ,(or outline-regexp logos--page-delimiter))))
+ (t . ,(if (boundp 'outline-regexp) outline-regexp
logos--page-delimiter))))
#+end_src
The form =,(format "\\(^;;;+ \\|%s\\)" logos--page-delimiter)= expands
@@ -458,7 +460,7 @@ pattern). Putting it all together:
(setq logos-outline-regexp-alist
`((emacs-lisp-mode . ,(format "\\(^;;;+ \\|%s\\)" logos--page-delimiter))
(org-mode . ,(format "\\(^\\*+ +\\|^-\\{5\\}$\\|%s\\)"
logos--page-delimiter))
- (t . ,(or outline-regexp logos--page-delimiter))))
+ (t . ,(if (boundp 'outline-regexp) outline-regexp
logos--page-delimiter))))
#+end_src
Another Org-specific tweak is to use heading levels up to a specific
@@ -472,7 +474,7 @@ end result can look like this:
(setq logos-outline-regexp-alist
`((emacs-lisp-mode . ,(format "\\(^;;;+ \\|%s\\)" logos--page-delimiter))
(org-mode . ,(format "\\(^\\*\\{1,3\\} +\\|^-\\{5\\}$\\|%s\\)"
logos--page-delimiter))
- (t . ,(or outline-regexp logos--page-delimiter))))
+ (t . ,(if (boundp 'outline-regexp) outline-regexp
logos--page-delimiter))))
#+end_src
** Leverage logos-focus-mode-extra-functions
@@ -620,7 +622,8 @@ Logos is meant to be a collective effort. Every bit of
help matters.
Omar AntolĂn Camarena, Philip Kaludercic, Remco van 't Veer, and user
Ypot.
-+ Ideas and/or user feedback :: Daniel Mendler, Marcel Ventosa, Ypot.
++ Ideas and/or user feedback :: Daniel Mendler, Marcel Ventosa,
+ Xiaoduan, Ypot.
* GNU Free Documentation License
:PROPERTIES:
diff --git a/logos.el b/logos.el
index 5d288a5520..233199c6a0 100644
--- a/logos.el
+++ b/logos.el
@@ -6,7 +6,7 @@
;; Maintainer: Logos Development <~protesilaos/logos@lists.sr.ht>
;; URL: https://git.sr.ht/~protesilaos/logos
;; Mailing-List: https://lists.sr.ht/~protesilaos/logos
-;; Version: 0.5.0
+;; Version: 0.5.1
;; Package-Requires: ((emacs "27.1"))
;; Keywords: convenience, focus, writing, presentation, narrowing
@@ -114,7 +114,7 @@ When this variable is nil, pages are demarcated by the
`((emacs-lisp-mode . "^;;;+ ")
(org-mode . "^\\*+ +")
(markdown-mode . "^\\#+ +")
- (t . ,(or outline-regexp logos--page-delimiter)))
+ (t . ,(if (boundp 'outline-regexp) outline-regexp logos--page-delimiter)))
"Alist of major mode and regular expression of the outline.
Only used when `logos-outlines-are-pages' is non-nil.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/logos be3333b696: Guard against void outline-regexp,
ELPA Syncer <=