;;; org-pretty.el --- Support for prettify-symbols-mode -*- lexical-binding: t; -*- ;; Copyright (C) 2018 Free Software Foundation, Inc. ;; ;; Author: J. Alexander Branham ;; Maintainer: emacs-orgmode@gnu.org ;; ;; This file is part of GNU Emacs. ;; ;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs. If not, see . ;; ;;; Commentary: ;; ;; This file adds support for `prettify-symbols-mode' in Org buffers. ;; To use, call M-x org-prettify-mode or put ;; ;; (add-hook 'org-mode-hook #'org-prettify-mode) ;; ;; in your configuration file. ;;; Code: (require 'org) (defvar-local org-pretty-alist '(("*" . ?•)) "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 non-nil if the symbol between START and END is to be prettified. MATCH is the string match. See also `prettify-symbols-compose-predicate'." (if (string= match "*") ;; Prettify asterisks in headings. (and (org-match-line org-outline-regexp-bol) (< end (match-end 0))) ;; Else rely on the default function. (funcall #'prettify-symbols-default-compose-p start end match))) ;;;###autoload (define-minor-mode org-pretty-mode "Set up `prettify-symbols-mode' in org buffers." :lighter nil :keymap nil (if org-pretty-mode ;; Turn on. (when (eq major-mode 'org-mode) (setq-local prettify-symbols-alist org-pretty-alist) (setq-local prettify-symbols-compose-predicate #'org-pretty-compose-p) (prettify-symbols-mode)) ;; Turn off. (when (eq major-mode 'org-mode) (setq-local prettify-symbols-alist nil) (setq-local prettify-symbols-compose-predicate #'prettify-symbols-default-compose-p) (prettify-symbols-mode -1)))) (provide 'org-pretty) ;;; org-pretty.el ends here