Merge pull request #1892 from rgrinberg/syntax-highlight-ielm

lang/emacs-lisp: add syntax highlighting to ielm buffers
This commit is contained in:
Henrik Lissner 2019-10-17 02:12:52 -04:00 committed by GitHub
commit c8b3e7f5ea
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -90,6 +90,26 @@ This marks a foldable marker for `outline-minor-mode' in elisp buffers.")
"f" #'find-function
"v" #'find-variable)))
;; Adapted from http://www.modernemacs.com/post/comint-highlighting/
(add-hook! 'ielm-mode-hook
(defun +emacs-lisp-init-syntax-highlighting-h ()
(font-lock-add-keywords
nil (cl-loop for (matcher . match-highlights)
in (append lisp-el-font-lock-keywords-2 lisp-cl-font-lock-keywords-2)
collect
`((lambda (limit)
(and ,(if (symbolp matcher)
`(,matcher limit)
`(re-search-forward ,matcher limit t))
;; Only highlight matches after the prompt
(> (match-beginning 0) (car comint-last-prompt))
;; Make sure we're not in a comment or string
(let ((state (sp--syntax-ppss)))
(not (or (nth 3 state)
(nth 4 state))))))
,@match-highlights))))))
;;
;;; Packages