summaryrefslogtreecommitdiff
path: root/lisp/progmodes/cfengine.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/progmodes/cfengine.el')
-rw-r--r--lisp/progmodes/cfengine.el19
1 files changed, 18 insertions, 1 deletions
diff --git a/lisp/progmodes/cfengine.el b/lisp/progmodes/cfengine.el
index 11eb0eeaf49..88177a8db10 100644
--- a/lisp/progmodes/cfengine.el
+++ b/lisp/progmodes/cfengine.el
@@ -527,6 +527,13 @@ Intended as the value of `indent-line-function'."
;; Doze path separators.
(modify-syntax-entry ?\\ "." table))
+(defconst cfengine3--prettify-symbols-alist
+ '(("->" . ?→)
+ ("=>" . ?⇒)
+ ("::" . ?∷)))
+
+(defvar cfengine3--augmented-font-lock-keywords)
+
;;;###autoload
(define-derived-mode cfengine3-mode prog-mode "CFE3"
"Major mode for editing CFEngine3 input.
@@ -538,8 +545,18 @@ to the action header."
(cfengine-common-syntax cfengine3-mode-syntax-table)
(set (make-local-variable 'indent-line-function) #'cfengine3-indent-line)
+
+ ;; Define the symbols to be prettified
+ (setq-local prog-prettify-symbols-alist cfengine3--prettify-symbols-alist)
+
+ ;; Tell font-lock.el how to handle cfengine3 keywords..
+ (setq cfengine3--augmented-font-lock-keywords
+ (append cfengine3-font-lock-keywords
+ (prog-prettify-font-lock-symbols-keywords)))
+
(setq font-lock-defaults
- '(cfengine3-font-lock-keywords nil nil nil beginning-of-defun))
+ '(cfengine3--augmented-font-lock-keywords
+ nil nil nil beginning-of-defun))
;; Use defuns as the essential syntax block.
(set (make-local-variable 'beginning-of-defun-function)