aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Kost <alezost@gmail.com>2015-11-27 16:01:20 +0300
committerAlex Kost <alezost@gmail.com>2016-01-02 17:25:35 +0300
commit8103c22fea9eef5e6ed1b97fedb565e0296bb6e3 (patch)
treee3b5bc0a0e795f3e3dba34bc107b35858047ac9e
parent8bff0c796e0eea5dd26e5327238cf6def5b55027 (diff)
downloadpatches-8103c22fea9eef5e6ed1b97fedb565e0296bb6e3.tar
patches-8103c22fea9eef5e6ed1b97fedb565e0296bb6e3.tar.gz
emacs: info: Get rid of syntactic fontification.
* emacs/guix-info.el (guix-info-mode-initialize): New procedure. Set 'font-lock-defaults' to avoid syntactic fontification. (guix-info-define-interface): Use it.
-rw-r--r--emacs/guix-info.el10
1 files changed, 10 insertions, 0 deletions
diff --git a/emacs/guix-info.el b/emacs/guix-info.el
index d71d8f52a3..871c4b085f 100644
--- a/emacs/guix-info.el
+++ b/emacs/guix-info.el
@@ -409,6 +409,15 @@ See `insert-text-button' for the meaning of PROPERTIES."
(define-derived-mode guix-info-mode special-mode "Guix-Info"
"Parent mode for displaying information in info buffers.")
+(defun guix-info-mode-initialize ()
+ "Set up the current 'info' buffer."
+ ;; Without this, syntactic fontification is performed, and it may
+ ;; break our highlighting. For example, description of "emacs-typo"
+ ;; package contains a single " (double-quote) character, so the
+ ;; default syntactic fontification highlights the rest text after it
+ ;; as a string. See (info "(elisp) Font Lock Basics") for details.
+ (setq font-lock-defaults '(nil t)))
+
(defmacro guix-info-define-interface (entry-type &rest args)
"Define 'info' interface for displaying ENTRY-TYPE entries.
Remaining arguments (ARGS) should have a form [KEYWORD VALUE] ...
@@ -465,6 +474,7 @@ After calling each METHOD, a new line is inserted."
'guix-info-data ',entry-type)
(guix-buffer-define-interface info ,entry-type
+ :mode-init-function 'guix-info-mode-initialize
,@%foreign-args)))))