summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorTed Zlatanov <tzz@lifelogs.com>2013-06-05 10:26:50 -0400
committerTed Zlatanov <tzz@lifelogs.com>2013-06-05 10:26:50 -0400
commit3ca0d0b437e006f7b83b92b2d4fe99eeafcb9adf (patch)
tree0b81e651c8d88dfd5a9784693a67b7d276c04fbb /lisp/emacs-lisp
parent3caa391f0abbddadb08170667a6b10ff08070575 (diff)
downloademacs-3ca0d0b437e006f7b83b92b2d4fe99eeafcb9adf.tar.gz
Symbol prettify in prog-mode; added to perl-mode, cfengine3-mode, and emacs-lisp-mode.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/lisp-mode.el23
1 files changed, 21 insertions, 2 deletions
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el
index 02b020fa241..6e1f8291771 100644
--- a/lisp/emacs-lisp/lisp-mode.el
+++ b/lisp/emacs-lisp/lisp-mode.el
@@ -187,6 +187,11 @@ It has `lisp-mode-abbrev-table' as its parent."
font-lock-string-face))))
font-lock-comment-face))
+;; Temporary variables used to add font-lock keywords dynamically.
+(defvar lisp--augmented-font-lock-keywords)
+(defvar lisp--augmented-font-lock-keywords-1)
+(defvar lisp--augmented-font-lock-keywords-2)
+
(defun lisp-mode-variables (&optional lisp-syntax keywords-case-insensitive)
"Common initialization routine for lisp modes.
The LISP-SYNTAX argument is used by code in inf-lisp.el and is
@@ -223,9 +228,20 @@ font-lock keywords will not be case sensitive."
(setq-local imenu-generic-expression lisp-imenu-generic-expression)
(setq-local multibyte-syntax-as-symbol t)
(setq-local syntax-begin-function 'beginning-of-defun)
+ (setq-local prog-prettify-symbols-alist lisp--prettify-symbols-alist)
+ (setq lisp--augmented-font-lock-keywords
+ (append lisp-font-lock-keywords
+ (prog-prettify-font-lock-symbols-keywords)))
+ (setq lisp--augmented-font-lock-keywords-1
+ (append lisp-font-lock-keywords-1
+ (prog-prettify-font-lock-symbols-keywords)))
+ (setq lisp--augmented-font-lock-keywords-2
+ (append lisp-font-lock-keywords-2
+ (prog-prettify-font-lock-symbols-keywords)))
(setq font-lock-defaults
- `((lisp-font-lock-keywords
- lisp-font-lock-keywords-1 lisp-font-lock-keywords-2)
+ `((lisp--augmented-font-lock-keywords
+ lisp--augmented-font-lock-keywords-1
+ lisp--augmented-font-lock-keywords-2)
nil ,keywords-case-insensitive nil nil
(font-lock-mark-block-function . mark-defun)
(font-lock-syntactic-face-function
@@ -448,6 +464,9 @@ All commands in `lisp-mode-shared-map' are inherited by this map.")
:type 'hook
:group 'lisp)
+(defconst lisp--prettify-symbols-alist
+ '(("lambda" . ?λ)))
+
(define-derived-mode emacs-lisp-mode prog-mode "Emacs-Lisp"
"Major mode for editing Lisp code to run in Emacs.
Commands: