branch: elpa/llama
commit 5259a6f298a56b445b16687ff49708ed3906061d
Author: Jonas Bernoulli <[email protected]>
Commit: Jonas Bernoulli <[email protected]>
Highlight many symbols if they appear after "(##"
Advice `lisp--el-match-keyword' to do so, but only if
`llama-fontify-mode' is enable. If so, highlight symbols after "(##",
"(## " and "(", which would otherwise only be highlighted after "(".
---
llama.el | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/llama.el b/llama.el
index b242aa79db..b7298703e5 100644
--- a/llama.el
+++ b/llama.el
@@ -320,6 +320,31 @@ that) is used as COLLECTION, by `unintern'ing that symbol
temporarily."
(when bound
(set (intern "") value)))))
+(defvar llama-fontify-mode)
+
+(define-advice lisp--el-match-keyword (:override (limit) llama -80)
+ (catch 'found
+ (while (re-search-forward
+ (concat (if llama-fontify-mode
+ "(\\(?:## ?\\)?\\("
+ "(\\(")
+ (static-if (get 'lisp-mode-symbol 'rx-definition) ;>= 29.1
+ (rx lisp-mode-symbol)
+ lisp-mode-symbol-regexp)
+ "\\)\\_>")
+ limit t)
+ (let ((sym (intern-soft (match-string 1))))
+ (when (and (or (special-form-p sym)
+ (macrop sym)
+ ;; Same as in advice of `morlock' package.
+ (get sym 'morlock-font-lock-keyword))
+ (not (get sym 'no-font-lock-keyword))
+ (static-if (fboundp 'lisp--el-funcall-position-p) ;>= 28.1
+ (lisp--el-funcall-position-p (match-beginning 0))
+ (not (lisp--el-non-funcall-position-p
+ (match-beginning 0)))))
+ (throw 'found t))))))
+
;;; Fontification
(defgroup llama ()