From 392a075bb2a75fe16e275745c80d83e7c13fc91d Mon Sep 17 00:00:00 2001 Message-Id: <392a075bb2a75fe16e275745c80d83e7c13fc91d.1676717280.git.yantar92@posteo.net> From: Ihor Radchenko Date: Fri, 17 Feb 2023 15:17:04 +0300 Subject: [PATCH v2] org-fontify-meta-lines-and-blocks-1: Fontify src blocks without lang * lisp/org.el (org-fontify-meta-lines-and-blocks-1): Allow fontifying src blocks with language specification missing. * lisp/org-src.el (org-src-block-faces): Clarify in the docstring that "" language name referes to src blocks with no language. Remove redundant :version tag. * etc/ORG-NEWS (~org-src-block-faces~ now accepts empty string ~""~ as language name): Announce the change. Link: https://orgmode.org/list/99388ff3711696091f0312a5c3f0bcbd@kragelund.me --- etc/ORG-NEWS | 15 +++++++++++++++ lisp/org-src.el | 4 ++-- lisp/org.el | 4 ++-- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index 87ecd77cd..90663ab5a 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -24,6 +24,21 @@ consider [[https://gitlab.com/jackkamm/ob-python-mode-mode][ob-python-mode-mode] has been ported to. ** New and changed options +*** ~org-src-block-faces~ now accepts empty string ~""~ as language name + +It is now possible to customize face of source blocks without language specifier. + +: #+begin_src +: Source block with no language +: #+end_src + +For example, to set ~highlight~ face, use + +#+begin_src emacs-lisp +(setq org-src-fontify-natively t) +(add-to-list 'org-src-block-faces '("" highlight)) +#+end_src + *** New escape in ~org-beamer-environments-extra~ for labels in Beamer export The escape =%l= in ~org-beamer-environments-extra~ inserts the label obtained from ~org-beamer--get-label~. This is added to the default diff --git a/lisp/org-src.el b/lisp/org-src.el index 9e4392811..2fab4020d 100644 --- a/lisp/org-src.el +++ b/lisp/org-src.el @@ -233,7 +233,8 @@ (defcustom org-src-block-faces nil (\"language\" FACE) -Where FACE is either a defined face or an anonymous face. +Where FACE is either a defined face or an anonymous face. Empty +language string refers to source blocks without specified language. For instance, the following would color the background of emacs-lisp source blocks and python source blocks in purple and @@ -247,7 +248,6 @@ (defcustom org-src-block-faces nil (choice (face :tag "Face") (sexp :tag "Anonymous face")))) - :version "26.1" :package-version '(Org . "9.0")) (defcustom org-src-tab-acts-natively t diff --git a/lisp/org.el b/lisp/org.el index cc2c09e3a..d148a14bb 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -5409,9 +5409,9 @@ (defun org-fontify-meta-lines-and-blocks-1 (limit) (org-remove-flyspell-overlays-in beg bol-after-beginline) (org-remove-flyspell-overlays-in nl-before-endline end-of-endline) (cond - ((and lang (not (string= lang "")) org-src-fontify-natively) + (org-src-fontify-natively (save-match-data - (org-src-font-lock-fontify-block lang block-start block-end)) + (org-src-font-lock-fontify-block (or lang "") block-start block-end)) (add-text-properties bol-after-beginline block-end '(src-block t))) (quoting (add-text-properties -- 2.39.1