Break combined 'setq'/'setf'/'setq-local's
When giving more than two arguments to 'setq', it becomes hard to figure out what is assigned to what. As the number of argument increases, the readablity of code decreases. This is also true for 'setq-local'. For 'setf', the problem is even greater, unlike 'setq', all arguments to 'setf' look the same. * eat.el (eat--t-reset, eat--t-write, eat--t-save-cur) (eat--t-restore-cur, eat--t-enable-alt-disp) (eat--t-disable-alt-disp, eat--t-change-scroll-region) (eat--t-set-sgr-params, eat--t-manipulate-selection) (eat--t-resize, eat--blink-start-timers, eat-blink-mode) (eat--cursor-blink-mode, eat--set-cursor, eat-self-input) (eat-mode, eat-exec, eat--eshell-setup-proc-and-term) (eat--eshell-cleanup, eat--eshell-adjust-make-process-args) (eat--eshell-local-mode, eat--eshell-exec-visual) (eat--trace-exec, eat--trace-eshell-adjust-make-process-args) (eat--trace-replay-eval, eat-trace-replay, eat-trace--cleanup): Break combined 'setq'/'setf'/'setq-local's.
This commit is contained in:
parent
2207109d24
commit
b996bffa4b
1 changed files with 144 additions and 132 deletions
266
eat.el
266
eat.el
|
@ -842,31 +842,33 @@ Don't `set' it, bind it to a value with `let'.")
|
||||||
"Reset terminal."
|
"Reset terminal."
|
||||||
(let ((disp (eat--t-term-display eat--t-term)))
|
(let ((disp (eat--t-term-display eat--t-term)))
|
||||||
;; Reset most of the things to their respective default values.
|
;; Reset most of the things to their respective default values.
|
||||||
(setf (eat--t-term-parser-state eat--t-term) nil
|
(setf (eat--t-term-parser-state eat--t-term) nil)
|
||||||
(eat--t-disp-begin disp) (point-min-marker)
|
(setf (eat--t-disp-begin disp) (point-min-marker))
|
||||||
(eat--t-disp-old-begin disp) (point-min-marker)
|
(setf (eat--t-disp-old-begin disp) (point-min-marker))
|
||||||
(eat--t-disp-cursor disp) (eat--t-make-cur :position (point-min-marker))
|
(setf (eat--t-disp-cursor disp)
|
||||||
(eat--t-disp-saved-cursor disp) (eat--t-make-cur)
|
(eat--t-make-cur :position (point-min-marker)))
|
||||||
(eat--t-term-scroll-begin eat--t-term) 1
|
(setf (eat--t-disp-saved-cursor disp) (eat--t-make-cur))
|
||||||
(eat--t-term-scroll-end eat--t-term) (eat--t-disp-height disp)
|
(setf (eat--t-term-scroll-begin eat--t-term) 1)
|
||||||
(eat--t-term-main-display eat--t-term) nil
|
(setf (eat--t-term-scroll-end eat--t-term)
|
||||||
(eat--t-term-face eat--t-term) (eat--t-make-face)
|
(eat--t-disp-height disp))
|
||||||
(eat--t-term-auto-margin eat--t-term) t
|
(setf (eat--t-term-main-display eat--t-term) nil)
|
||||||
(eat--t-term-ins-mode eat--t-term) nil
|
(setf (eat--t-term-face eat--t-term) (eat--t-make-face))
|
||||||
(eat--t-term-charset eat--t-term)
|
(setf (eat--t-term-auto-margin eat--t-term) t)
|
||||||
|
(setf (eat--t-term-ins-mode eat--t-term) nil)
|
||||||
|
(setf (eat--t-term-charset eat--t-term)
|
||||||
'(g0 (g0 . us-ascii)
|
'(g0 (g0 . us-ascii)
|
||||||
(g1 . dec-line-drawing)
|
(g1 . dec-line-drawing)
|
||||||
(g2 . dec-line-drawing)
|
(g2 . dec-line-drawing)
|
||||||
(g3 . dec-line-drawing))
|
(g3 . dec-line-drawing)))
|
||||||
(eat--t-term-saved-face eat--t-term) (eat--t-make-face)
|
(setf (eat--t-term-saved-face eat--t-term) (eat--t-make-face))
|
||||||
(eat--t-term-bracketed-yank eat--t-term) nil
|
(setf (eat--t-term-bracketed-yank eat--t-term) nil)
|
||||||
(eat--t-term-cur-state eat--t-term) :default
|
(setf (eat--t-term-cur-state eat--t-term) :default)
|
||||||
(eat--t-term-cur-blinking-p eat--t-term) nil
|
(setf (eat--t-term-cur-blinking-p eat--t-term) nil)
|
||||||
(eat--t-term-title eat--t-term) ""
|
(setf (eat--t-term-title eat--t-term) "")
|
||||||
(eat--t-term-keypad-mode eat--t-term) nil
|
(setf (eat--t-term-keypad-mode eat--t-term) nil)
|
||||||
(eat--t-term-mouse-mode eat--t-term) nil
|
(setf (eat--t-term-mouse-mode eat--t-term) nil)
|
||||||
(eat--t-term-mouse-encoding eat--t-term) nil
|
(setf (eat--t-term-mouse-encoding eat--t-term) nil)
|
||||||
(eat--t-term-focus-event-mode eat--t-term) nil)
|
(setf (eat--t-term-focus-event-mode eat--t-term) nil)
|
||||||
;; Clear everything.
|
;; Clear everything.
|
||||||
(delete-region (point-min) (point-max))
|
(delete-region (point-min) (point-max))
|
||||||
;; Inform the UI about our new state.
|
;; Inform the UI about our new state.
|
||||||
|
@ -1264,7 +1266,8 @@ character to actually show.")
|
||||||
|
|
||||||
(defun eat--t-write (str &optional beg end)
|
(defun eat--t-write (str &optional beg end)
|
||||||
"Write STR from BEG to END on display."
|
"Write STR from BEG to END on display."
|
||||||
(setq beg (or beg 0) end (or end (length str)))
|
(setq beg (or beg 0))
|
||||||
|
(setq end (or end (length str)))
|
||||||
(let* ((disp (eat--t-term-display eat--t-term))
|
(let* ((disp (eat--t-term-display eat--t-term))
|
||||||
(cursor (eat--t-disp-cursor disp))
|
(cursor (eat--t-disp-cursor disp))
|
||||||
(scroll-end (eat--t-term-scroll-end eat--t-term))
|
(scroll-end (eat--t-term-scroll-end eat--t-term))
|
||||||
|
@ -1521,17 +1524,16 @@ N default to 1."
|
||||||
(let ((disp (eat--t-term-display eat--t-term))
|
(let ((disp (eat--t-term-display eat--t-term))
|
||||||
(saved-face (eat--t-copy-face
|
(saved-face (eat--t-copy-face
|
||||||
(eat--t-term-face eat--t-term))))
|
(eat--t-term-face eat--t-term))))
|
||||||
(setf
|
|
||||||
;; Save cursor position.
|
;; Save cursor position.
|
||||||
(eat--t-disp-saved-cursor disp)
|
(setf (eat--t-disp-saved-cursor disp)
|
||||||
(eat--t-copy-cur (eat--t-disp-cursor disp))
|
(eat--t-copy-cur (eat--t-disp-cursor disp)))
|
||||||
;; Save SGR attributes.
|
;; Save SGR attributes.
|
||||||
(eat--t-term-saved-face eat--t-term) saved-face
|
(setf (eat--t-term-saved-face eat--t-term) saved-face)
|
||||||
;; We use side-effects, so make sure the saved face doesn't share
|
;; We use side-effects, so make sure the saved face doesn't share
|
||||||
;; structure with the current face.
|
;; structure with the current face.
|
||||||
(eat--t-face-face saved-face)
|
(setf (eat--t-face-face saved-face)
|
||||||
(copy-tree (eat--t-face-face saved-face))
|
(copy-tree (eat--t-face-face saved-face)))
|
||||||
(eat--t-face-underline-color saved-face)
|
(setf (eat--t-face-underline-color saved-face)
|
||||||
(copy-tree (eat--t-face-underline-color saved-face)))))
|
(copy-tree (eat--t-face-underline-color saved-face)))))
|
||||||
|
|
||||||
(defun eat--t-restore-cur ()
|
(defun eat--t-restore-cur ()
|
||||||
|
@ -1542,8 +1544,8 @@ N default to 1."
|
||||||
(eat--t-goto (eat--t-cur-y saved) (eat--t-cur-x saved))
|
(eat--t-goto (eat--t-cur-y saved) (eat--t-cur-x saved))
|
||||||
;; Restore SGR attributes.
|
;; Restore SGR attributes.
|
||||||
(setf (eat--t-term-face eat--t-term)
|
(setf (eat--t-term-face eat--t-term)
|
||||||
(copy-tree (eat--t-term-saved-face eat--t-term))
|
(copy-tree (eat--t-term-saved-face eat--t-term)))
|
||||||
(eat--t-face-underline-color (eat--t-term-face eat--t-term))
|
(setf (eat--t-face-underline-color (eat--t-term-face eat--t-term))
|
||||||
(copy-tree (eat--t-face-underline-color
|
(copy-tree (eat--t-face-underline-color
|
||||||
(eat--t-term-face eat--t-term))))))
|
(eat--t-term-face eat--t-term))))))
|
||||||
|
|
||||||
|
@ -1750,16 +1752,16 @@ STATE one of the `:default', `:invisible', `:very-visible'."
|
||||||
(let ((main-disp (eat--t-copy-disp
|
(let ((main-disp (eat--t-copy-disp
|
||||||
(eat--t-term-display eat--t-term))))
|
(eat--t-term-display eat--t-term))))
|
||||||
(setf (eat--t-disp-begin main-disp)
|
(setf (eat--t-disp-begin main-disp)
|
||||||
(- (eat--t-disp-begin main-disp) (point-min))
|
(- (eat--t-disp-begin main-disp) (point-min)))
|
||||||
(eat--t-disp-old-begin main-disp)
|
(setf (eat--t-disp-old-begin main-disp)
|
||||||
(- (eat--t-disp-old-begin main-disp) (point-min))
|
(- (eat--t-disp-old-begin main-disp) (point-min)))
|
||||||
(eat--t-disp-cursor main-disp)
|
(setf (eat--t-disp-cursor main-disp)
|
||||||
(eat--t-copy-cur (eat--t-disp-cursor main-disp))
|
(eat--t-copy-cur (eat--t-disp-cursor main-disp)))
|
||||||
(eat--t-disp-saved-cursor main-disp)
|
(setf (eat--t-disp-saved-cursor main-disp)
|
||||||
(eat--t-copy-cur (eat--t-disp-saved-cursor main-disp))
|
(eat--t-copy-cur (eat--t-disp-saved-cursor main-disp)))
|
||||||
(eat--t-cur-position (eat--t-disp-cursor main-disp))
|
(setf (eat--t-cur-position (eat--t-disp-cursor main-disp))
|
||||||
(- (point) (point-min))
|
(- (point) (point-min)))
|
||||||
(eat--t-term-main-display eat--t-term)
|
(setf (eat--t-term-main-display eat--t-term)
|
||||||
(cons main-disp (buffer-string)))
|
(cons main-disp (buffer-string)))
|
||||||
;; Delete everything, and move to the beginning of terminal.
|
;; Delete everything, and move to the beginning of terminal.
|
||||||
(delete-region (point-min) (point-max))
|
(delete-region (point-min) (point-max))
|
||||||
|
@ -1790,14 +1792,14 @@ position."
|
||||||
(setf (eat--t-cur-position (eat--t-disp-cursor (car main-disp)))
|
(setf (eat--t-cur-position (eat--t-disp-cursor (car main-disp)))
|
||||||
(copy-marker (+ (point-min)
|
(copy-marker (+ (point-min)
|
||||||
(eat--t-cur-position
|
(eat--t-cur-position
|
||||||
(eat--t-disp-cursor (car main-disp)))))
|
(eat--t-disp-cursor (car main-disp))))))
|
||||||
(eat--t-disp-old-begin (car main-disp))
|
(setf (eat--t-disp-old-begin (car main-disp))
|
||||||
(copy-marker (+ (point-min)
|
(copy-marker (+ (point-min)
|
||||||
(eat--t-disp-old-begin (car main-disp))))
|
(eat--t-disp-old-begin (car main-disp)))))
|
||||||
(eat--t-disp-begin (car main-disp))
|
(setf (eat--t-disp-begin (car main-disp))
|
||||||
(copy-marker (+ (point-min)
|
(copy-marker (+ (point-min)
|
||||||
(eat--t-disp-begin (car main-disp))))
|
(eat--t-disp-begin (car main-disp)))))
|
||||||
(eat--t-term-display eat--t-term) (car main-disp)
|
(setf (eat--t-term-display eat--t-term) (car main-disp)
|
||||||
(eat--t-term-main-display eat--t-term) nil)
|
(eat--t-term-main-display eat--t-term) nil)
|
||||||
(goto-char (eat--t-cur-position
|
(goto-char (eat--t-cur-position
|
||||||
(eat--t-disp-cursor
|
(eat--t-disp-cursor
|
||||||
|
@ -2033,7 +2035,8 @@ position."
|
||||||
|
|
||||||
TOP defaults to 1 and BOTTOM defaults to the height of the display."
|
TOP defaults to 1 and BOTTOM defaults to the height of the display."
|
||||||
(let ((disp (eat--t-term-display eat--t-term)))
|
(let ((disp (eat--t-term-display eat--t-term)))
|
||||||
(setq top (or top 1) bottom (or bottom (eat--t-disp-height disp)))
|
(setq top (or top 1))
|
||||||
|
(setq bottom (or bottom (eat--t-disp-height disp)))
|
||||||
;; According to DEC's documentation (found somewhere on the
|
;; According to DEC's documentation (found somewhere on the
|
||||||
;; internet, but can't remember where), TOP and BOTTOM must be
|
;; internet, but can't remember where), TOP and BOTTOM must be
|
||||||
;; within display, and BOTTOM must be below TOP. Otherwise the
|
;; within display, and BOTTOM must be below TOP. Otherwise the
|
||||||
|
@ -2058,17 +2061,17 @@ TOP defaults to 1 and BOTTOM defaults to the height of the display."
|
||||||
(while params
|
(while params
|
||||||
(pcase (pop params)
|
(pcase (pop params)
|
||||||
(`(,(or 0 'nil))
|
(`(,(or 0 'nil))
|
||||||
(1value (setf (eat--t-face-fg face) nil
|
(1value (setf (eat--t-face-fg face) nil))
|
||||||
(eat--t-face-bg face) nil
|
(1value (setf (eat--t-face-bg face) nil))
|
||||||
(eat--t-face-intensity face) nil
|
(1value (setf (eat--t-face-intensity face) nil))
|
||||||
(eat--t-face-italic face) nil
|
(1value (setf (eat--t-face-italic face) nil))
|
||||||
(eat--t-face-underline face) nil
|
(1value (setf (eat--t-face-underline face) nil))
|
||||||
(eat--t-face-underline-color face) nil
|
(1value (setf (eat--t-face-underline-color face) nil))
|
||||||
(eat--t-face-crossed face) nil
|
(1value (setf (eat--t-face-crossed face) nil))
|
||||||
(eat--t-face-conceal face) nil
|
(1value (setf (eat--t-face-conceal face) nil))
|
||||||
(eat--t-face-inverse face) nil
|
(1value (setf (eat--t-face-inverse face) nil))
|
||||||
(eat--t-face-blink face) nil
|
(1value (setf (eat--t-face-blink face) nil))
|
||||||
(eat--t-face-font face) 'eat-term-font-0)))
|
(1value (setf (eat--t-face-font face) 'eat-term-font-0)))
|
||||||
('(1)
|
('(1)
|
||||||
(1value (setf (eat--t-face-intensity face) 'eat-term-bold)))
|
(1value (setf (eat--t-face-intensity face) 'eat-term-bold)))
|
||||||
('(2)
|
('(2)
|
||||||
|
@ -2438,7 +2441,8 @@ DATA is the selection data encoded in base64."
|
||||||
;; No string to send, so send an empty string and an empty
|
;; No string to send, so send an empty string and an empty
|
||||||
;; target string meaning that we don't have any answer.
|
;; target string meaning that we don't have any answer.
|
||||||
(unless str
|
(unless str
|
||||||
(setq str "" source ""))
|
(setq str "")
|
||||||
|
(setq source ""))
|
||||||
(format "\e]52;%s;%s\e\\" source
|
(format "\e]52;%s;%s\e\\" source
|
||||||
(base64-encode-string str))))
|
(base64-encode-string str))))
|
||||||
;; The client is requesting to set clipboard content, let's try to
|
;; The client is requesting to set clipboard content, let's try to
|
||||||
|
@ -3013,10 +3017,10 @@ DATA is the selection data encoded in base64."
|
||||||
(>= width 1)
|
(>= width 1)
|
||||||
(>= height 1))
|
(>= height 1))
|
||||||
;; Update state.
|
;; Update state.
|
||||||
(setf (eat--t-disp-width disp) width
|
(setf (eat--t-disp-width disp) width)
|
||||||
(eat--t-disp-height disp) height
|
(setf (eat--t-disp-height disp) height)
|
||||||
(eat--t-term-scroll-begin eat--t-term) 1
|
(setf (eat--t-term-scroll-begin eat--t-term) 1)
|
||||||
(eat--t-term-scroll-end eat--t-term)
|
(setf (eat--t-term-scroll-end eat--t-term)
|
||||||
(eat--t-disp-height disp))
|
(eat--t-disp-height disp))
|
||||||
(set-marker (eat--t-cur-position cursor) (point))
|
(set-marker (eat--t-cur-position cursor) (point))
|
||||||
(if (eat--t-term-main-display eat--t-term)
|
(if (eat--t-term-main-display eat--t-term)
|
||||||
|
@ -4074,8 +4078,8 @@ return \"eat-color\", otherwise return \"eat-mono\"."
|
||||||
(eat--blink-stop-timers)
|
(eat--blink-stop-timers)
|
||||||
(setq eat--slow-blink-timer
|
(setq eat--slow-blink-timer
|
||||||
(run-with-timer t (/ (float eat-slow-blink-frequency))
|
(run-with-timer t (/ (float eat-slow-blink-frequency))
|
||||||
#'eat--flip-slow-blink-state)
|
#'eat--flip-slow-blink-state))
|
||||||
eat--fast-blink-timer
|
(setq eat--fast-blink-timer
|
||||||
(run-with-timer t (/ (float eat-fast-blink-frequency))
|
(run-with-timer t (/ (float eat-fast-blink-frequency))
|
||||||
#'eat--flip-fast-blink-state)))
|
#'eat--flip-fast-blink-state)))
|
||||||
|
|
||||||
|
@ -4091,10 +4095,12 @@ return \"eat-color\", otherwise return \"eat-mono\"."
|
||||||
(require 'face-remap)
|
(require 'face-remap)
|
||||||
(setq eat-blink-mode t)
|
(setq eat-blink-mode t)
|
||||||
(mapc #'make-local-variable locals)
|
(mapc #'make-local-variable locals)
|
||||||
(setq eat--slow-blink-state nil eat--fast-blink-state nil
|
(setq eat--slow-blink-state nil)
|
||||||
eat--slow-blink-remap
|
(setq eat--fast-blink-state nil)
|
||||||
(face-remap-add-relative 'eat-term-slow-blink '(:box nil))
|
(setq eat--slow-blink-remap
|
||||||
eat--fast-blink-remap
|
(face-remap-add-relative 'eat-term-slow-blink
|
||||||
|
'(:box nil)))
|
||||||
|
(setq eat--fast-blink-remap
|
||||||
(face-remap-add-relative 'eat-term-fast-blink
|
(face-remap-add-relative 'eat-term-fast-blink
|
||||||
'(:box nil)))
|
'(:box nil)))
|
||||||
(add-hook 'pre-command-hook #'eat--blink-stop-timers nil t)
|
(add-hook 'pre-command-hook #'eat--blink-stop-timers nil t)
|
||||||
|
@ -4156,7 +4162,8 @@ return \"eat-color\", otherwise return \"eat-mono\"."
|
||||||
(cond
|
(cond
|
||||||
(eat--cursor-blink-mode
|
(eat--cursor-blink-mode
|
||||||
(mapc #'make-local-variable locals)
|
(mapc #'make-local-variable locals)
|
||||||
(setq eat--cursor-blink-state nil eat--cursor-blink-timer nil)
|
(setq eat--cursor-blink-state nil)
|
||||||
|
(setq eat--cursor-blink-timer nil)
|
||||||
(add-hook 'pre-command-hook #'eat--cursor-blink-stop-timers nil
|
(add-hook 'pre-command-hook #'eat--cursor-blink-stop-timers nil
|
||||||
t)
|
t)
|
||||||
(add-hook 'post-command-hook #'eat--cursor-blink-start-timers
|
(add-hook 'post-command-hook #'eat--cursor-blink-start-timers
|
||||||
|
@ -4214,8 +4221,8 @@ Any other value Default cursor."
|
||||||
(pcase state
|
(pcase state
|
||||||
(:invisible eat-invisible-cursor-type)
|
(:invisible eat-invisible-cursor-type)
|
||||||
(:very-visible eat-very-visible-cursor-type)
|
(:very-visible eat-very-visible-cursor-type)
|
||||||
(_ eat-default-cursor-type)) ; `:default'
|
(_ eat-default-cursor-type))) ; `:default'
|
||||||
cursor-type (car eat--cursor-blink-type))
|
(setq-local cursor-type (car eat--cursor-blink-type))
|
||||||
(eat--cursor-blink-mode (if (cadr eat--cursor-blink-type) +1 -1)))
|
(eat--cursor-blink-mode (if (cadr eat--cursor-blink-type) +1 -1)))
|
||||||
|
|
||||||
(defun eat--manipulate-kill-ring (_ selection data)
|
(defun eat--manipulate-kill-ring (_ selection data)
|
||||||
|
@ -4496,8 +4503,8 @@ event."
|
||||||
(unless eat--mouse-drag-transient-map-exit
|
(unless eat--mouse-drag-transient-map-exit
|
||||||
(let ((old-track-mouse track-mouse)
|
(let ((old-track-mouse track-mouse)
|
||||||
(buffer (current-buffer)))
|
(buffer (current-buffer)))
|
||||||
(setq track-mouse 'dragging
|
(setq track-mouse 'dragging)
|
||||||
eat--mouse-drag-transient-map-exit
|
(setq eat--mouse-drag-transient-map-exit
|
||||||
(set-transient-map
|
(set-transient-map
|
||||||
(let ((map (eat-term-make-keymap
|
(let ((map (eat-term-make-keymap
|
||||||
#'eat-self-input
|
#'eat-self-input
|
||||||
|
@ -4796,13 +4803,13 @@ END if it's safe to do so."
|
||||||
eat--process-output-queue-timer
|
eat--process-output-queue-timer
|
||||||
eat--shell-prompt-annotation-correction-timer))
|
eat--shell-prompt-annotation-correction-timer))
|
||||||
;; This is intended; input methods don't work on read-only buffers.
|
;; This is intended; input methods don't work on read-only buffers.
|
||||||
(setq buffer-read-only nil
|
(setq buffer-read-only nil)
|
||||||
buffer-undo-list t
|
(setq buffer-undo-list t)
|
||||||
eat--synchronize-scroll-function #'eat--synchronize-scroll
|
(setq eat--synchronize-scroll-function #'eat--synchronize-scroll)
|
||||||
filter-buffer-substring-function
|
(setq filter-buffer-substring-function
|
||||||
#'eat--filter-buffer-substring
|
#'eat--filter-buffer-substring)
|
||||||
eat--mouse-grabbing-type nil
|
(setq eat--mouse-grabbing-type nil)
|
||||||
mode-line-process
|
(setq mode-line-process
|
||||||
'(""
|
'(""
|
||||||
(:eval
|
(:eval
|
||||||
(when eat--process
|
(when eat--process
|
||||||
|
@ -5078,22 +5085,23 @@ same Eat buffer. The hook `eat-exec-hook' is run after each exec."
|
||||||
(with-selected-window window
|
(with-selected-window window
|
||||||
(eat-term-resize eat--terminal (window-max-chars-per-line)
|
(eat-term-resize eat--terminal (window-max-chars-per-line)
|
||||||
(floor (window-screen-lines)))))
|
(floor (window-screen-lines)))))
|
||||||
(setf (eat-term-input-function eat--terminal) #'eat--send-input
|
(setf (eat-term-input-function eat--terminal) #'eat--send-input)
|
||||||
(eat-term-set-cursor-function eat--terminal)
|
(setf (eat-term-set-cursor-function eat--terminal)
|
||||||
#'eat--set-cursor
|
#'eat--set-cursor)
|
||||||
(eat-term-grab-mouse-function eat--terminal)
|
(setf (eat-term-grab-mouse-function eat--terminal)
|
||||||
#'eat--grab-mouse
|
#'eat--grab-mouse)
|
||||||
(eat-term-manipulate-selection-function eat--terminal)
|
(setf (eat-term-manipulate-selection-function eat--terminal)
|
||||||
#'eat--manipulate-kill-ring
|
#'eat--manipulate-kill-ring)
|
||||||
(eat-term-ring-bell-function eat--terminal) #'eat--bell
|
(setf (eat-term-ring-bell-function eat--terminal) #'eat--bell)
|
||||||
(eat-term-set-cwd-function eat--terminal) #'eat--set-cwd
|
(setf (eat-term-set-cwd-function eat--terminal) #'eat--set-cwd)
|
||||||
(eat-term-prompt-start-function eat--terminal)
|
(setf (eat-term-prompt-start-function eat--terminal)
|
||||||
#'eat--pre-prompt
|
#'eat--pre-prompt)
|
||||||
(eat-term-prompt-end-function eat--terminal)
|
(setf (eat-term-prompt-end-function eat--terminal)
|
||||||
#'eat--post-prompt
|
#'eat--post-prompt)
|
||||||
(eat-term-set-cmd-function eat--terminal) #'eat--set-cmd
|
(setf (eat-term-set-cmd-function eat--terminal) #'eat--set-cmd)
|
||||||
(eat-term-cmd-start-function eat--terminal) #'eat--pre-cmd
|
(setf (eat-term-cmd-start-function eat--terminal)
|
||||||
(eat-term-cmd-finish-function eat--terminal)
|
#'eat--pre-cmd)
|
||||||
|
(setf (eat-term-cmd-finish-function eat--terminal)
|
||||||
#'eat--set-cmd-status)
|
#'eat--set-cmd-status)
|
||||||
;; Crank up a new process.
|
;; Crank up a new process.
|
||||||
(let* ((size (eat-term-size eat--terminal))
|
(let* ((size (eat-term-size eat--terminal))
|
||||||
|
@ -5350,16 +5358,16 @@ PROGRAM can be a shell command."
|
||||||
(setq eat--terminal (eat-term-make (current-buffer)
|
(setq eat--terminal (eat-term-make (current-buffer)
|
||||||
(process-mark proc)))
|
(process-mark proc)))
|
||||||
(set-marker (process-mark proc) (eat-term-end eat--terminal))
|
(set-marker (process-mark proc) (eat-term-end eat--terminal))
|
||||||
(setf (eat-term-input-function eat--terminal) #'eat--send-input
|
(setf (eat-term-input-function eat--terminal) #'eat--send-input)
|
||||||
(eat-term-set-cursor-function eat--terminal)
|
(setf (eat-term-set-cursor-function eat--terminal)
|
||||||
#'eat--set-cursor
|
#'eat--set-cursor)
|
||||||
(eat-term-grab-mouse-function eat--terminal)
|
(setf (eat-term-grab-mouse-function eat--terminal)
|
||||||
#'eat--grab-mouse
|
#'eat--grab-mouse)
|
||||||
(eat-term-manipulate-selection-function eat--terminal)
|
(setf (eat-term-manipulate-selection-function eat--terminal)
|
||||||
#'eat--manipulate-kill-ring
|
#'eat--manipulate-kill-ring)
|
||||||
(eat-term-ring-bell-function eat--terminal) #'eat--bell
|
(setf (eat-term-ring-bell-function eat--terminal) #'eat--bell)
|
||||||
(eat-term-set-cwd-function eat--terminal) #'eat--set-cwd
|
(setf (eat-term-set-cwd-function eat--terminal) #'eat--set-cwd)
|
||||||
(eat-term-set-cmd-function eat--terminal) #'eat--set-cmd)
|
(setf (eat-term-set-cmd-function eat--terminal) #'eat--set-cmd)
|
||||||
(when-let* ((window (get-buffer-window nil t)))
|
(when-let* ((window (get-buffer-window nil t)))
|
||||||
(with-selected-window window
|
(with-selected-window window
|
||||||
(eat-term-resize eat--terminal (window-max-chars-per-line)
|
(eat-term-resize eat--terminal (window-max-chars-per-line)
|
||||||
|
@ -5384,7 +5392,8 @@ PROGRAM can be a shell command."
|
||||||
(eat--grab-mouse nil nil)
|
(eat--grab-mouse nil nil)
|
||||||
(eat-term-delete eat--terminal)
|
(eat-term-delete eat--terminal)
|
||||||
(set-process-filter eat--process #'eshell-output-filter)
|
(set-process-filter eat--process #'eshell-output-filter)
|
||||||
(setq eat--terminal nil eat--process nil)
|
(setq eat--process nil)
|
||||||
|
(setq eat--terminal nil)
|
||||||
(kill-local-variable 'eshell-output-filter-functions)
|
(kill-local-variable 'eshell-output-filter-functions)
|
||||||
(eat--eshell-semi-char-mode -1)
|
(eat--eshell-semi-char-mode -1)
|
||||||
(eat--eshell-char-mode -1)
|
(eat--eshell-char-mode -1)
|
||||||
|
@ -5475,8 +5484,8 @@ modify its argument to change the filter, the sentinel and invoke
|
||||||
#'eshell-sentinel)))))
|
#'eshell-sentinel)))))
|
||||||
(apply make-process plist)
|
(apply make-process plist)
|
||||||
(unless (< emacs-major-version 29)
|
(unless (< emacs-major-version 29)
|
||||||
(setf (plist-get plist :filter) #'eat--eshell-filter
|
(setf (plist-get plist :filter) #'eat--eshell-filter)
|
||||||
(plist-get plist :sentinel)
|
(setf (plist-get plist :sentinel)
|
||||||
#'eat--eshell-sentinel))
|
#'eat--eshell-sentinel))
|
||||||
(setf (plist-get plist :command)
|
(setf (plist-get plist :command)
|
||||||
`("/usr/bin/env" "sh" "-c"
|
`("/usr/bin/env" "sh" "-c"
|
||||||
|
@ -5548,8 +5557,8 @@ sane 2>%s ; if [ $1 = .. ]; then shift; fi; exec \"$@\""
|
||||||
(eat--eshell-local-mode
|
(eat--eshell-local-mode
|
||||||
(mapc #'make-local-variable locals)
|
(mapc #'make-local-variable locals)
|
||||||
(setq eat--synchronize-scroll-function
|
(setq eat--synchronize-scroll-function
|
||||||
#'eat--eshell-synchronize-scroll
|
#'eat--eshell-synchronize-scroll)
|
||||||
filter-buffer-substring-function
|
(setq filter-buffer-substring-function
|
||||||
#'eat--filter-buffer-substring)
|
#'eat--filter-buffer-substring)
|
||||||
;; Make sure glyphless character don't display a huge box glyph,
|
;; Make sure glyphless character don't display a huge box glyph,
|
||||||
;; that would break the display.
|
;; that would break the display.
|
||||||
|
@ -5738,8 +5747,8 @@ allowed."
|
||||||
(with-current-buffer eat-buf
|
(with-current-buffer eat-buf
|
||||||
(switch-to-buffer eat-buf)
|
(switch-to-buffer eat-buf)
|
||||||
(eat-mode)
|
(eat-mode)
|
||||||
(setq-local eshell-parent-buffer eshell-buf
|
(setq-local eshell-parent-buffer eshell-buf)
|
||||||
eat-kill-buffer-on-exit nil)
|
(setq-local eat-kill-buffer-on-exit nil)
|
||||||
(eat-exec eat-buf program program nil args)
|
(eat-exec eat-buf program program nil args)
|
||||||
(let ((proc (get-buffer-process eat-buf)))
|
(let ((proc (get-buffer-process eat-buf)))
|
||||||
(if (and proc (eq 'run (process-status proc)))
|
(if (and proc (eq 'run (process-status proc)))
|
||||||
|
@ -5844,7 +5853,8 @@ FN, `eat-exec', which see."
|
||||||
(setq-local eat--trace-output-buffer buf)
|
(setq-local eat--trace-output-buffer buf)
|
||||||
(add-hook 'kill-buffer-hook #'eat--trace-stop nil t)
|
(add-hook 'kill-buffer-hook #'eat--trace-stop nil t)
|
||||||
(let ((size (eat-term-size eat--terminal)))
|
(let ((size (eat-term-size eat--terminal)))
|
||||||
(setq width (car size) height (cdr size)))
|
(setq width (car size))
|
||||||
|
(setq height (cdr size)))
|
||||||
(dolist (var eat--trace-recorded-variables)
|
(dolist (var eat--trace-recorded-variables)
|
||||||
(push (cons var (symbol-value var)) variables)))
|
(push (cons var (symbol-value var)) variables)))
|
||||||
(with-current-buffer buf
|
(with-current-buffer buf
|
||||||
|
@ -5966,7 +5976,8 @@ see."
|
||||||
(setq-local eat--trace-output-buffer buf)
|
(setq-local eat--trace-output-buffer buf)
|
||||||
(add-hook 'kill-buffer-hook #'eat--trace-stop nil t)
|
(add-hook 'kill-buffer-hook #'eat--trace-stop nil t)
|
||||||
(let ((size (eat-term-size eat--terminal)))
|
(let ((size (eat-term-size eat--terminal)))
|
||||||
(setq width (car size) height (cdr size)))
|
(setq width (car size))
|
||||||
|
(setq height (cdr size)))
|
||||||
(dolist (var eat--trace-recorded-variables)
|
(dolist (var eat--trace-recorded-variables)
|
||||||
(push (cons var (symbol-value var)) variables))
|
(push (cons var (symbol-value var)) variables))
|
||||||
(with-current-buffer buf
|
(with-current-buffer buf
|
||||||
|
@ -6084,14 +6095,14 @@ FN is the original definition of `eat--eshell-cleanup', which see."
|
||||||
(- (car data) eat--trace-replay-recording-start-time))
|
(- (car data) eat--trace-replay-recording-start-time))
|
||||||
(pcase-exhaustive data
|
(pcase-exhaustive data
|
||||||
(`(,time create ,_ui ,width ,height ,variables)
|
(`(,time create ,_ui ,width ,height ,variables)
|
||||||
(setq eat--trace-replay-recording-start-time time
|
(setq eat--trace-replay-recording-start-time time)
|
||||||
eat--trace-replay-progress 0)
|
(setq eat--trace-replay-progress 0)
|
||||||
(dolist (var eat--trace-recorded-variables)
|
(dolist (var eat--trace-recorded-variables)
|
||||||
(set (make-local-variable var) (alist-get var variables)))
|
(set (make-local-variable var) (alist-get var variables)))
|
||||||
(setq eat--terminal (eat-term-make (current-buffer) (point)))
|
(setq eat--terminal (eat-term-make (current-buffer) (point)))
|
||||||
(setf (eat-term-set-cursor-function eat--terminal)
|
(setf (eat-term-set-cursor-function eat--terminal)
|
||||||
#'eat--set-cursor
|
#'eat--set-cursor)
|
||||||
(eat-term-ring-bell-function eat--terminal) #'eat--bell)
|
(setf (eat-term-ring-bell-function eat--terminal) #'eat--bell)
|
||||||
(eat-term-resize eat--terminal width height)
|
(eat-term-resize eat--terminal width height)
|
||||||
(eat-term-redisplay eat--terminal))
|
(eat-term-redisplay eat--terminal))
|
||||||
(`(,_time output ,string)
|
(`(,_time output ,string)
|
||||||
|
@ -6128,8 +6139,8 @@ FN is the original definition of `eat--eshell-cleanup', which see."
|
||||||
(unless (buffer-live-p eat--trace-replay-buffer)
|
(unless (buffer-live-p eat--trace-replay-buffer)
|
||||||
(setq-local eat--trace-replay-buffer
|
(setq-local eat--trace-replay-buffer
|
||||||
(generate-new-buffer
|
(generate-new-buffer
|
||||||
(format "*eat-trace-replay*: %s" (buffer-name)))
|
(format "*eat-trace-replay*: %s" (buffer-name))))
|
||||||
eat--trace-replay-marker (point-min-marker))
|
(setq-local eat--trace-replay-marker (point-min-marker))
|
||||||
(let ((ov (make-overlay (point-min) (point-min))))
|
(let ((ov (make-overlay (point-min) (point-min))))
|
||||||
(overlay-put ov 'before-string
|
(overlay-put ov 'before-string
|
||||||
#(" " 0 1 (display (left-fringe right-triangle))))
|
#(" " 0 1 (display (left-fringe right-triangle))))
|
||||||
|
@ -6143,8 +6154,8 @@ FN is the original definition of `eat--eshell-cleanup', which see."
|
||||||
(goto-char (point-min))
|
(goto-char (point-min))
|
||||||
(with-current-buffer eat--trace-replay-buffer
|
(with-current-buffer eat--trace-replay-buffer
|
||||||
(eat-trace-replay-mode)
|
(eat-trace-replay-mode)
|
||||||
(setq eat--trace-replay-source-buffer source
|
(setq eat--trace-replay-source-buffer source)
|
||||||
eat--trace-replay-frame-count frame-count))))
|
(setq eat--trace-replay-frame-count frame-count))))
|
||||||
(display-buffer eat--trace-replay-buffer))
|
(display-buffer eat--trace-replay-buffer))
|
||||||
|
|
||||||
(defun eat-trace-replay-next-frame (&optional n)
|
(defun eat-trace-replay-next-frame (&optional n)
|
||||||
|
@ -6159,7 +6170,8 @@ N defaults to 1. Interactively, N is the prefix argument."
|
||||||
"Clean up the source buffer before the terminal being killed."
|
"Clean up the source buffer before the terminal being killed."
|
||||||
(when (buffer-live-p eat--trace-replay-source-buffer)
|
(when (buffer-live-p eat--trace-replay-source-buffer)
|
||||||
(with-current-buffer eat--trace-replay-source-buffer
|
(with-current-buffer eat--trace-replay-source-buffer
|
||||||
(setq eat--trace-replay-buffer nil eat--trace-replay-marker nil)
|
(setq eat--trace-replay-buffer nil)
|
||||||
|
(setq eat--trace-replay-marker nil)
|
||||||
(delete-overlay eat--trace-replay-current-sexp-overlay))))
|
(delete-overlay eat--trace-replay-current-sexp-overlay))))
|
||||||
|
|
||||||
(defvar eat-trace-replay-mode-map
|
(defvar eat-trace-replay-mode-map
|
||||||
|
|
Loading…
Add table
Reference in a new issue