mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-16 17:24:23 +00:00
Add rudimentary font-locking to edmacro-mode
* lisp/edmacro.el (edmacro-label): New face. (edmacro-mode-font-lock-keywords): New variable. (edit-kbd-macro): Use font-lock in 'edmacro-mode'. Minor improvement to command substitution.
This commit is contained in:
parent
176256cf2f
commit
e611dbcc7c
1 changed files with 34 additions and 1 deletions
|
|
@ -76,6 +76,32 @@ Default nil means to write characters above \\177 in octal notation."
|
|||
"C-c C-c" #'edmacro-finish-edit
|
||||
"C-c C-q" #'edmacro-insert-key)
|
||||
|
||||
(defface edmacro-label
|
||||
'((default :inherit bold)
|
||||
(((class color) (background dark)) :foreground "light blue")
|
||||
(((min-colors 88) (class color) (background light)) :foreground "DarkBlue")
|
||||
(((class color) (background light)) :foreground "blue")
|
||||
(t :inherit bold))
|
||||
"Face used for labels in `edit-kbd-macro'."
|
||||
:version "29.1"
|
||||
:group 'kmacro)
|
||||
|
||||
(defvar edmacro-mode-font-lock-keywords
|
||||
`((,(rx bol (group (or "Command" "Key" "Macro") ":")) 0 'edmacro-label)
|
||||
(,(rx bol
|
||||
(group ";; Keyboard Macro Editor. Press ")
|
||||
(group (*? any))
|
||||
(group " to finish; press "))
|
||||
(1 'font-lock-comment-face)
|
||||
(2 'help-key-binding)
|
||||
(3 'font-lock-comment-face)
|
||||
(,(rx (group (*? any))
|
||||
(group " to cancel" (* any)))
|
||||
nil nil
|
||||
(1 'help-key-binding)
|
||||
(2 'font-lock-comment-face)))
|
||||
(,(rx (one-or-more ";") (zero-or-more any)) 0 'font-lock-comment-face)))
|
||||
|
||||
(defvar edmacro-store-hook)
|
||||
(defvar edmacro-finish-hook)
|
||||
(defvar edmacro-original-buffer)
|
||||
|
|
@ -151,11 +177,18 @@ With a prefix argument, format the macro in a more concise way."
|
|||
(setq-local edmacro-original-buffer oldbuf)
|
||||
(setq-local edmacro-finish-hook finish-hook)
|
||||
(setq-local edmacro-store-hook store-hook)
|
||||
(setq-local font-lock-defaults
|
||||
'(edmacro-mode-font-lock-keywords nil nil nil nil))
|
||||
(setq font-lock-multiline nil)
|
||||
(erase-buffer)
|
||||
(insert (substitute-command-keys
|
||||
(concat
|
||||
;; When editing this, make sure to update
|
||||
;; `edmacro-mode-font-lock-keywords' to match.
|
||||
";; Keyboard Macro Editor. Press \\[edmacro-finish-edit] "
|
||||
"to finish; press \\`C-x k RET' to cancel.\n")))
|
||||
"to finish; press \\[kill-buffer] \\`RET' to cancel.\n")
|
||||
;; Use 'no-face argument to not conflict with font-lock.
|
||||
'no-face))
|
||||
(insert ";; Original keys: " fmt "\n")
|
||||
(unless store-hook
|
||||
(insert "\nCommand: " (if cmd (symbol-name cmd) "none") "\n")
|
||||
|
|
|
|||
Loading…
Reference in a new issue