:type 'boolean
:group 'ielm)
-(defvar ielm-prompt "ELISP> "
- "Prompt used in IELM.")
+(defcustom ielm-prompt "ELISP> "
+ "Prompt used in IELM."
+ :type 'string
+ :group 'ielm
+ :get #'(lambda (symbol) (substring-no-properties (symbol-value symbol)))
+ :set #'(lambda (symbol value) (set symbol (propertize value 'read-only t 'rear-nonsticky t))))
(defcustom ielm-dynamic-return t
"*Controls whether \\<ielm-map>\\[ielm-return] has intelligent behaviour in IELM.
(defvar *** nil
"Third-most-recent value evaluated in IELM.")
+(defvar ielm-match-data nil
+ "Match data saved at the end of last command.")
+
;;; System variables
(defvar ielm-working-buffer nil
(let ((*save *)
(**save **)
(***save ***))
+ (set-match-data ielm-match-data)
(save-excursion
(set-buffer ielm-working-buffer)
(condition-case err
(error (setq ielm-result (ielm-format-error err))
(setq ielm-error-type "Eval error"))
(quit (setq ielm-result "Quit during evaluation")
- (setq ielm-error-type "Eval error")))))
+ (setq ielm-error-type "Eval error"))))
+ (setq ielm-match-data (match-data)))
(setq ielm-error-type "IELM error")
(setq ielm-result "More than one sexp in input"))))
(make-local-variable '**)
(setq *** nil)
(make-local-variable '***)
+ (set (make-local-variable 'ielm-match-data) nil)
;; font-lock support
(make-local-variable 'font-lock-defaults)