diff options
author | Miha Rihtaršič <miha@kamnitnik.top> | 2022-09-09 20:11:33 +0200 |
---|---|---|
committer | Lars Ingebrigtsen <larsi@gnus.org> | 2022-09-09 20:11:33 +0200 |
commit | e9ecde5b1dd93c356ba513d320124869078cb03a (patch) | |
tree | d4e374323566df79400dfdf93f83bcff0fa8c4c8 /lisp/ielm.el | |
parent | 5a8a5e3d5782e9e138a826e1ce9c06fe501c5343 (diff) | |
download | emacs-e9ecde5b1dd93c356ba513d320124869078cb03a.tar.gz |
Input fontification for M-x ielm
* lisp/ielm.el (ielm-comint-fl-enable): New user option to control
input fontification.
(ielm-indirect-setup-hook): New hook.
(inferior-emacs-lisp-mode): Set up and enable input fontification.
Diffstat (limited to 'lisp/ielm.el')
-rw-r--r-- | lisp/ielm.el | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/lisp/ielm.el b/lisp/ielm.el index 47c17921181..211804210c3 100644 --- a/lisp/ielm.el +++ b/lisp/ielm.el @@ -472,6 +472,27 @@ nonempty, then flushes the buffer." ;; Set the process mark in the current buffer to POS. (set-marker (process-mark (get-buffer-process (current-buffer))) pos)) +;;; Input fontification + +(defcustom ielm-comint-fl-enable t + "Enable highlighting of input in ielm buffers. +This variable only has effect when creating an ielm buffer. Use +the command `comint-fl-mode' to toggle highlighting of input in +an already existing ielm buffer." + :type 'boolean + :safe 'booleanp + :version "29.1") + +(defcustom ielm-indirect-setup-hook nil + "Hook run after setting up an indirect ielm fontification buffer." + :type 'boolean + :safe 'booleanp + :version "29.1") + +(defun ielm-indirect-setup-hook () + "Run `ielm-indirect-setup-hook'." + (run-hooks 'ielm-indirect-setup-hook)) + ;;; Major mode (define-derived-mode inferior-emacs-lisp-mode comint-mode "IELM" @@ -526,6 +547,10 @@ The behavior of IELM may be customized with the following variables: Customized bindings may be defined in `ielm-map', which currently contains: \\{ielm-map}" :syntax-table emacs-lisp-mode-syntax-table + :after-hook + (and (null comint-use-prompt-regexp) + ielm-comint-fl-enable + (comint-fl-mode)) (setq comint-prompt-regexp (concat "^" (regexp-quote ielm-prompt))) (setq-local paragraph-separate "\\'") @@ -564,6 +589,10 @@ Customized bindings may be defined in `ielm-map', which currently contains: (setq-local font-lock-defaults '(ielm-font-lock-keywords nil nil ((?: . "w") (?- . "w") (?* . "w")))) + (add-hook 'comint-indirect-setup-hook + #'ielm-indirect-setup-hook 'append t) + (setq comint-indirect-setup-function #'emacs-lisp-mode) + ;; A dummy process to keep comint happy. It will never get any input (unless (comint-check-proc (current-buffer)) ;; Was cat, but on non-Unix platforms that might not exist, so |