From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Branham Subject: Re: Support showing stars as pretty bullets Date: Tue, 03 Apr 2018 09:30:27 -0500 Message-ID: <87k1tofjlo.fsf@gmail.com> References: <874lkutzg8.fsf@gmail.com> <878ta51m3w.fsf@nicolasgoaziou.fr> <87sh8di0je.fsf@gmail.com> <87woxoztd5.fsf@nicolasgoaziou.fr> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:43972) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f3MxJ-0003L1-R6 for emacs-orgmode@gnu.org; Tue, 03 Apr 2018 10:30:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f3MxD-0004B2-HZ for emacs-orgmode@gnu.org; Tue, 03 Apr 2018 10:30:37 -0400 Received: from mail-ot0-x230.google.com ([2607:f8b0:4003:c0f::230]:45169) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1f3MxD-0004Ah-90 for emacs-orgmode@gnu.org; Tue, 03 Apr 2018 10:30:31 -0400 Received: by mail-ot0-x230.google.com with SMTP id h26-v6so19556822otj.12 for ; Tue, 03 Apr 2018 07:30:31 -0700 (PDT) In-reply-to: <87woxoztd5.fsf@nicolasgoaziou.fr> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: Nicolas Goaziou Cc: Org Mode List --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On Tue 03 Apr 2018 at 01:39, Nicolas Goaziou wrote: > Hello, > > Alex Branham writes: > >> Why not, if you don't mind me asking? Other major modes (python, elisp, >> and latex off the top of my head) setup prettify-symbols themselves. > > Because "org.el" file is already 23 kloc long, and I'm trying to put it > on a diet. Fair enough. How about the attached patch instead? It only sets up the two local variables in org.el and puts the rest in org-entities.el since that file is also concerned with replacing characters with "prettier" versions of themselves. Alex ------------------------------------------------------------ >From fda030b62e4cf28e25fd3264472b01f498749d5a Mon Sep 17 00:00:00 2001 From: Alex Branham Date: Tue, 3 Apr 2018 09:25:33 -0500 Subject: [PATCH] Add support for showing stars as UTF bullets * lisp/org.el(org-mode): Add local variables * lisp/org-entities.el(org-pretty-compose-p): New function * lisp/org-entities.el(org-prettify-alist): New variable * etc/ORG-NEWS: Document new feature. --- etc/ORG-NEWS | 4 +++- lisp/org-entities.el | 17 +++++++++++++++++ lisp/org.el | 3 +++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index 0edd77115..267ab336a 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -228,7 +228,9 @@ parameters. See example bellow. select sysdate from dual; ,#+END_SRC #+END_SRC - +*** Add support for showing header stars as UTF-8 bullets +This relies on ~prettify-symbols-mode~. To activate, either add this to +~org-mode-hook~ or enable it globally with ~global-prettify-symbols-mode~. ** New functions *** ~org-insert-structure-template~ diff --git a/lisp/org-entities.el b/lisp/org-entities.el index e291b521f..f4bdf9de8 100644 --- a/lisp/org-entities.el +++ b/lisp/org-entities.el @@ -29,6 +29,7 @@ (declare-function org-toggle-pretty-entities "org" ()) (declare-function org-table-align "org-table" ()) +(declare-function prettify-symbols-default-compose-p "prog-mode" (start en= d match)) (defgroup org-entities nil "Options concerning entities in Org mode." @@ -589,6 +590,22 @@ This first checks the user list, then the built-in lis= t." (org-toggle-pretty-entities))) (select-window (get-buffer-window "*Org Entity Help*"))) +;; prettify-mode +(defvar-local org-prettify-alist '(("*" . ?=E2=80=A2)) + "An alist of symbols to prettify, see `prettify-symbols-alist'. +Whether the symbol actually gets prettified is controlled by +`org-pretty-compose-p', which see.") + +(defun org-pretty-compose-p (start end match) + "Return t if the symbol should be prettified. +START and END are the start and end points, MATCH is the string +match. See also `prettify-symbols-compose-predicate'." + (if (string=3D match "*") + ;; prettify asterisks in headings + (org-at-heading-p) + ;; else rely on the default function + (funcall #'prettify-symbols-default-compose-p start end match))) + (provide 'org-entities) diff --git a/lisp/org.el b/lisp/org.el index 5e5087a59..6bf7fef2d 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -5487,6 +5487,9 @@ The following commands are available: (when org-startup-truncated (setq truncate-lines t)) (when org-startup-indented (require 'org-indent) (org-indent-mode 1)) (org-refresh-effort-properties))) + ;; Setup prettify mode + (setq-local prettify-symbols-alist org-prettify-alist) + (setq-local prettify-symbols-compose-predicate #'org-pretty-compose-p) ;; Try to set `org-hide' face correctly. (let ((foreground (org-find-invisible-foreground))) (when foreground -- 2.16.3 --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: attachment; filename=0001-Add-support-for-showing-stars-as-UTF-bullets.patch Content-Transfer-Encoding: quoted-printable >From fda030b62e4cf28e25fd3264472b01f498749d5a Mon Sep 17 00:00:00 2001 From: Alex Branham Date: Tue, 3 Apr 2018 09:25:33 -0500 Subject: [PATCH] Add support for showing stars as UTF bullets * lisp/org.el(org-mode): Add local variables * lisp/org-entities.el(org-pretty-compose-p): New function * lisp/org-entities.el(org-prettify-alist): New variable * etc/ORG-NEWS: Document new feature. --- etc/ORG-NEWS | 4 +++- lisp/org-entities.el | 17 +++++++++++++++++ lisp/org.el | 3 +++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index 0edd77115..267ab336a 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -228,7 +228,9 @@ parameters. See example bellow. select sysdate from dual; ,#+END_SRC #+END_SRC - +*** Add support for showing header stars as UTF-8 bullets +This relies on ~prettify-symbols-mode~. To activate, either add this to +~org-mode-hook~ or enable it globally with ~global-prettify-symbols-mode~. ** New functions *** ~org-insert-structure-template~ =20 diff --git a/lisp/org-entities.el b/lisp/org-entities.el index e291b521f..f4bdf9de8 100644 --- a/lisp/org-entities.el +++ b/lisp/org-entities.el @@ -29,6 +29,7 @@ =20 (declare-function org-toggle-pretty-entities "org" ()) (declare-function org-table-align "org-table" ()) +(declare-function prettify-symbols-default-compose-p "prog-mode" (start en= d match)) =20 (defgroup org-entities nil "Options concerning entities in Org mode." @@ -589,6 +590,22 @@ This first checks the user list, then the built-in lis= t." (org-toggle-pretty-entities))) (select-window (get-buffer-window "*Org Entity Help*"))) =20 +;; prettify-mode +(defvar-local org-prettify-alist '(("*" . ?=E2=80=A2)) + "An alist of symbols to prettify, see `prettify-symbols-alist'. +Whether the symbol actually gets prettified is controlled by +`org-pretty-compose-p', which see.") + +(defun org-pretty-compose-p (start end match) + "Return t if the symbol should be prettified. +START and END are the start and end points, MATCH is the string +match. See also `prettify-symbols-compose-predicate'." + (if (string=3D match "*") + ;; prettify asterisks in headings + (org-at-heading-p) + ;; else rely on the default function + (funcall #'prettify-symbols-default-compose-p start end match))) + =20 (provide 'org-entities) =20 diff --git a/lisp/org.el b/lisp/org.el index 5e5087a59..6bf7fef2d 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -5487,6 +5487,9 @@ The following commands are available: (when org-startup-truncated (setq truncate-lines t)) (when org-startup-indented (require 'org-indent) (org-indent-mode 1)) (org-refresh-effort-properties))) + ;; Setup prettify mode + (setq-local prettify-symbols-alist org-prettify-alist) + (setq-local prettify-symbols-compose-predicate #'org-pretty-compose-p) ;; Try to set `org-hide' face correctly. (let ((foreground (org-find-invisible-foreground))) (when foreground --=20 2.16.3 --=-=-=--