From 968d9f20d6c948cebdac753b594e98b626ce5b05 Mon Sep 17 00:00:00 2001 From: Jackson Ray Hamilton Date: Mon, 2 May 2016 20:42:02 -0700 Subject: [PATCH] Make keywords in comments and strings coloring customizable. --- context-coloring-emacs-lisp.el | 9 +++++++-- context-coloring.el | 8 ++++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/context-coloring-emacs-lisp.el b/context-coloring-emacs-lisp.el index dbe1354bc..7bda871a9 100644 --- a/context-coloring-emacs-lisp.el +++ b/context-coloring-emacs-lisp.el @@ -55,11 +55,16 @@ "Move forward through whitespace and comments." (while (forward-comment 1))) +(defsubst context-coloring-elisp-colorize-comments-and-strings + (&optional min max) + "Color comments and strings from MIN to MAX." + (context-coloring-colorize-comments-and-strings min max t)) + (defsubst context-coloring-elisp-forward-sws () "Move through whitespace and comments, coloring comments." (let ((start (point))) (context-coloring-forward-sws) - (context-coloring-colorize-comments-and-strings start (point)))) + (context-coloring-elisp-colorize-comments-and-strings start (point)))) (defsubst context-coloring-elisp-forward-sexp () "Skip/ignore missing sexps, coloring comments and strings." @@ -606,7 +611,7 @@ It could be a quoted or backquoted expression." (context-coloring-elisp-increment-sexp-count) (let ((start (point))) (forward-sexp) - (context-coloring-colorize-comments-and-strings start (point)))) + (context-coloring-elisp-colorize-comments-and-strings start (point)))) ;; Elisp has whitespace, words, symbols, open/close parenthesis, expression ;; prefix, string quote, comment starters/enders and escape syntax classes only. diff --git a/context-coloring.el b/context-coloring.el index 52b08442f..c2d6c5d64 100644 --- a/context-coloring.el +++ b/context-coloring.el @@ -263,9 +263,10 @@ it ain't." "Color a string according to STATE." (if (nth 3 state) font-lock-string-face nil)) -(defsubst context-coloring-colorize-comments-and-strings (&optional min max) +(defsubst context-coloring-colorize-comments-and-strings (&optional min max keywords-p) "Maybe color comments and strings in buffer from MIN to MAX. -MIN defaults to beginning of buffer. MAX defaults to end." +MIN defaults to beginning of buffer. MAX defaults to end. If +KEYWORDS-P is non-nil, also color keywords from MIN to MAX." (when (or context-coloring-syntactic-comments context-coloring-syntactic-strings) (let ((min (or min (point-min))) @@ -282,8 +283,7 @@ MIN defaults to beginning of buffer. MAX defaults to end." font-lock-syntactic-face-function)))) (save-excursion (font-lock-fontify-syntactically-region min max) - ;; TODO: Make configurable at the dispatch level. - (when (eq major-mode 'emacs-lisp-mode) + (when keywords-p (font-lock-fontify-keywords-region min max)))))) (defcustom context-coloring-initial-level 0 -- 2.39.2