Symbol prettify in prog-mode; added to perl-mode, cfengine3-mode, and emacs-lisp-mode.

This commit is contained in:
Ted Zlatanov 2013-06-05 10:26:50 -04:00
parent 3caa391f0a
commit 3ca0d0b437
5 changed files with 133 additions and 45 deletions

View file

@ -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: