diff options
author | Ted Zlatanov <tzz@lifelogs.com> | 2013-06-05 10:26:50 -0400 |
---|---|---|
committer | Ted Zlatanov <tzz@lifelogs.com> | 2013-06-05 10:26:50 -0400 |
commit | 3ca0d0b437e006f7b83b92b2d4fe99eeafcb9adf (patch) | |
tree | 0b81e651c8d88dfd5a9784693a67b7d276c04fbb /lisp/emacs-lisp | |
parent | 3caa391f0abbddadb08170667a6b10ff08070575 (diff) | |
download | emacs-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.el | 23 |
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: |