branch: externals/logos commit fcc13bf490673eaa6700c16645f3d90b87350927 Author: Protesilaos Stavrou <i...@protesilaos.com> Commit: Protesilaos Stavrou <i...@protesilaos.com>
Make logos-page-delimiter function and variable public This is because they may be used in custom code that is defined at the user level. We want them to be "public" to suggest that they are safe to use: their behaviour is predictable, while any breaking changes will be documented. --- README.org | 14 +++++++------- logos.el | 22 ++++++++++++++++------ 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/README.org b/README.org index 72b889fedd..fda7cdeee3 100644 --- a/README.org +++ b/README.org @@ -442,12 +442,12 @@ outline and the page delimiters: #+begin_src emacs-lisp (setq logos-outline-regexp-alist - `((emacs-lisp-mode . ,(format "\\(^;;;+ \\|%s\\)" (default-value 'page-delimiter))) - (org-mode . ,(format "\\(^\\*+ +\\|%s\\)" (default-value 'page-delimiter))))) + `((emacs-lisp-mode . ,(format "\\(^;;;+ \\|%s\\)" logos-page-delimiter)) + (org-mode . ,(format "\\(^\\*+ +\\|%s\\)" logos-page-delimiter)))) #+end_src -The form =,(format "\\(^;;;+ \\|%s\\)" logos--page-delimiter)= expands to ="\\(^;;;+ \\|^\\)"=. +The form =,(format "\\(^;;;+ \\|%s\\)" logos-page-delimiter)= For Org it may be better to either not target the =^L= or to also target the horizontal rule (five hyphens on a line, else the =^-\\{5\\}$= @@ -455,8 +455,8 @@ pattern). Putting it all together: #+begin_src emacs-lisp (setq logos-outline-regexp-alist - `((emacs-lisp-mode . ,(format "\\(^;;;+ \\|%s\\)" logos--page-delimiter)) - (org-mode . ,(format "\\(^\\*+ +\\|^-\\{5\\}$\\|%s\\)" logos--page-delimiter)))) + `((emacs-lisp-mode . ,(format "\\(^;;;+ \\|%s\\)" logos-page-delimiter)) + (org-mode . ,(format "\\(^\\*+ +\\|^-\\{5\\}$\\|%s\\)" logos-page-delimiter)))) #+end_src Another Org-specific tweak is to use heading levels up to a specific @@ -468,8 +468,8 @@ end result can look like this: #+begin_src emacs-lisp (setq logos-outline-regexp-alist - `((emacs-lisp-mode . ,(format "\\(^;;;+ \\|%s\\)" logos--page-delimiter)) - (org-mode . ,(format "\\(^\\*\\{1,3\\} +\\|^-\\{5\\}$\\|%s\\)" logos--page-delimiter)))) + `((emacs-lisp-mode . ,(format "\\(^;;;+ \\|%s\\)" logos-page-delimiter)) + (org-mode . ,(format "\\(^\\*\\{1,3\\} +\\|^-\\{5\\}$\\|%s\\)" logos-page-delimiter)))) #+end_src ** Leverage logos-focus-mode-hook diff --git a/logos.el b/logos.el index d9ab893980..5f17a89363 100644 --- a/logos.el +++ b/logos.el @@ -231,14 +231,19 @@ and disabled, then use the `logos-focus-mode-hook' instead." ;;;; Page motions -(defconst logos--page-delimiter (default-value 'page-delimiter) +(define-obsolete-variable-alias + 'logos--page-delimiter + 'logos-page-delimiter + "1.1.0") + +(defconst logos-page-delimiter (default-value 'page-delimiter) "The default value of `page-delimiter'.") (defun logos--outline-or-delimiter () "Return the current `outline-regexp' or page delimiter." (if (bound-and-true-p outline-regexp) outline-regexp - logos--page-delimiter)) + logos-page-delimiter)) (defun logos--outline-regexp () "Return page delimiter from `logos-outline-regexp-alist'." @@ -248,11 +253,16 @@ and disabled, then use the `logos-focus-mode-hook' instead." (alist-get (get mode 'derived-mode-parent) outline) (logos--outline-or-delimiter)))) -(defun logos--page-delimiter () +(define-obsolete-function-alias + 'logos--page-delimiter + 'logos-page-delimiter + "1.1.0") + +(defun logos-page-delimiter () "Determine the `page-delimiter'." (if logos-outlines-are-pages (setq-local page-delimiter (logos--outline-regexp)) - (setq-local page-delimiter logos--page-delimiter))) + (setq-local page-delimiter logos-page-delimiter))) (defun logos--narrow-to-page (count &optional back) "Narrow to COUNTth page with optional BACK motion." @@ -294,7 +304,7 @@ See `logos-forward-page-dwim' or `logos-backward-page-dwim'.") With optional numeric COUNT move by that many pages. With optional BACK perform the motion backwards." (let ((cmd (if back #'backward-page #'forward-page))) - (logos--page-delimiter) + (logos-page-delimiter) (if (buffer-narrowed-p) (logos--narrow-to-page count back) (funcall cmd count) @@ -349,7 +359,7 @@ page." "Return non-nil if there is a `page-delimiter' in the buffer. This function does not use `widen': it only checks the accessible portion of the buffer." - (let ((delimiter (logos--page-delimiter))) + (let ((delimiter (logos-page-delimiter))) (or (save-excursion (re-search-forward delimiter nil t)) (save-excursion (re-search-backward delimiter nil t)))))