2022-12-11 00:43:49 +06:00
|
|
|
2022-12-11 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Fix invoking commands with eshell/sudo from Tramp
|
|
|
|
|
|
|
|
* eat.el (eat--eshell-adjust-make-process-args): Override
|
|
|
|
'start-file-process' on Emacs 28, used by Eshell on Emacs 28.
|
|
|
|
Don't override 'make-process' on Emacs 28, Eshell doesn't use
|
|
|
|
that on Emacs 28. Set process filter and sentinel in
|
|
|
|
'eshell-exec-hook' instead of 'make-process' advice.
|
|
|
|
|
|
|
|
2022-12-11 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Fix Eshell working directory tracking
|
|
|
|
|
|
|
|
* eat.el (eat--eshell-local-mode): Call
|
|
|
|
'eat--eshell-update-cwd'.
|
|
|
|
* eat.el (eat-eshell-mode): Don't call
|
|
|
|
'eat--eshell-update-cwd'.
|
|
|
|
|
2022-12-10 17:43:47 +06:00
|
|
|
2022-12-10 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Fix yanking text into terminal
|
|
|
|
|
|
|
|
* eat.el (eat-yank): Use simpler, saner and better approach to get the
|
|
|
|
yanked string instead of the previous stupid, insane and buggy
|
|
|
|
approach.
|
|
|
|
* eat.el (eat-yank-pop): Remove, because it's not cancel the text
|
|
|
|
already sent to the terminal.
|
|
|
|
* eat.el (eat-yank-from-kill-ring): New function. Behaves essentially
|
|
|
|
the same the previous (not properly working) 'eat-yank-pop'.
|
|
|
|
* eat.el (eat-semi-char-mode-map, eat-eshell-semi-char-mode-map):
|
|
|
|
Replace 'eat-yank-pop' with 'eat-yank-from-kill-ring'.
|
|
|
|
|
|
|
|
2022-12-10 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Implement terminal parameters
|
|
|
|
|
|
|
|
* eat.el (eat--t-term): New slot: 'params'.
|
|
|
|
* eat.el (eat-term-parameter): New function and generalized
|
|
|
|
variable.
|
|
|
|
* eat.el (eat-set-term-parameter): New function.
|
|
|
|
|
|
|
|
2022-12-09 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Fix terminal color reporting in text terminals
|
|
|
|
|
|
|
|
* eat.el (eat--t-report-foreground-color): Fix foreground color
|
|
|
|
reporting in text terminals.
|
|
|
|
* eat.el (eat--t-report-background-color): Fix background color
|
|
|
|
reporting in text terminals.
|
|
|
|
|
|
|
|
2022-12-08 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
2022-12-08 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Don't 'cd' as root when using 'sudo' from Tramp
|
|
|
|
|
|
|
|
* eat.el (eat--eshell-setup-proc-and-term): Don't set
|
|
|
|
'eat--eshell-invocation-directory'.
|
|
|
|
* eat.el (eat--eshell-update-cwd): New function.
|
|
|
|
* eat.el (eat--eshell-local-mode): Call
|
|
|
|
'eat--eshell-update-cwd' when enabling the mode and add it to
|
|
|
|
'eshell-directory-change-hook' to keep track of Eshell's
|
|
|
|
working directory.
|
|
|
|
|
|
|
|
2022-12-08 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Fix prompt annotation bug trigger when shell exits
|
|
|
|
|
|
|
|
* eat.el (eat--correct-shell-prompt-mark-overlays): Make sure
|
|
|
|
'eat--terminal' is non-nil.
|
|
|
|
* eat.el (eat--sentinel): Cancel timers, correct shell prompt
|
|
|
|
annotations for the final time, reset shell prompt annotation
|
|
|
|
related local variables.
|
|
|
|
|
|
|
|
2022-12-07 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Synchronize scrolling only when point is on cursor
|
|
|
|
|
|
|
|
* eat.el (eat--adjust-process-window-size): Synchronize
|
|
|
|
scrolling only when point is on cursor.
|
|
|
|
|
|
|
|
2022-12-07 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Escape control characters in trace output
|
|
|
|
|
|
|
|
* eat.el (eat--trace-log): Escape control
|
|
|
|
characters (codepoints from 0 to 31) in trace output.
|
|
|
|
|
|
|
|
2022-12-07 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Auto update 'eat-term-shell-integration-directory'
|
|
|
|
|
|
|
|
* eat.el: Auto update 'eat-term-shell-integration-directory' if
|
|
|
|
not modified.
|
|
|
|
|
|
|
|
2022-12-07 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Move Bash global variables to function
|
|
|
|
|
|
|
|
* integration/bash (__eat_current_command, __eat_exit_status)
|
|
|
|
(__eat_inhibit_preexec): Move to '__eat_enable_integration'.
|
|
|
|
* integration/bash (__eat_prompt_start, __eat_prompt_end)
|
|
|
|
(__eat_continuation_start, __eat_continuation_end): Move to
|
|
|
|
'__eat_enable_integration' and make local there.
|
|
|
|
|
|
|
|
2022-12-07 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Document annotation correction delay user option
|
|
|
|
|
|
|
|
* eat.texi (Performance Tuning): Document the purpose and the
|
|
|
|
use of 'eat-shell-prompt-annotation-correction-delay' user
|
|
|
|
option.
|
|
|
|
|
|
|
|
2022-12-07 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Don't accept 'nil' as annotation correction delay
|
|
|
|
|
|
|
|
* eat.el (eat-shell-prompt-annotation-correction-delay): Don't
|
|
|
|
accept 'nil'.
|
|
|
|
* eat.el (eat--process-output-queue): Don't accept value 'nil'
|
|
|
|
for 'eat-shell-prompt-annotation-correction-delay'.
|
|
|
|
|
|
|
|
2022-12-07 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Rename some symbols to reflect their purposes
|
|
|
|
|
|
|
|
* eat.el (eat-shell-prompt-annotation-delay): Rename to
|
|
|
|
'eat-shell-prompt-annotation-correction-delay'.
|
|
|
|
* eat.el (eat--update-shell-prompt-mark-overlays): Rename to
|
|
|
|
'eat--correct-shell-prompt-mark-overlays'.
|
|
|
|
* eat.el (eat--shell-prompt-annotation-update-timer): Rename to
|
|
|
|
'eat--shell-prompt-annotation-correction-timer'.
|
|
|
|
* eat.el (eat-mode, eat--process-output-queue, eat--filter):
|
|
|
|
Update references to renamed symbols.
|
|
|
|
|
|
|
|
2022-12-07 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
* README.org: Add shell integration instructions
|
|
|
|
|
|
|
|
* eat-tests.el (eat-test-set-cwd): Update test
|
|
|
|
|
|
|
|
* eat.el (eat--t-term): Fix initial value of 'cwd'
|
|
|
|
|
|
|
|
2022-12-06 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Document everything about shell integration
|
|
|
|
|
|
|
|
* eat.texi (Shell Integration): Move to be the first chapter of
|
|
|
|
Part III. Document everything about shell integration.
|
|
|
|
* eat.texi (Directory Tracking): Merge with the node 'Shell
|
|
|
|
Integration'.
|
|
|
|
|
|
|
|
2022-12-06 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Fix prompt navigation when annotation is disabled
|
|
|
|
|
|
|
|
* eat.el (eat--pre-prompt): Always set
|
|
|
|
'eat--shell-prompt-begin'.
|
|
|
|
* eat.el (eat--post-prompt): Always put special prompt end
|
|
|
|
marking text property.
|
|
|
|
|
|
|
|
2022-12-06 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Add shell prompt navigation commands
|
|
|
|
|
|
|
|
* eat.el (eat--post-prompt): Add special text property on the
|
|
|
|
last character of shell prompt.
|
|
|
|
* eat.el (eat-previous-shell-prompt, eat-next-shell-prompt):
|
|
|
|
New command.
|
|
|
|
* eat.el (eat-mode-map): Bind 'eat-previous-shell-prompt' and
|
|
|
|
'eat-next-shell-prompt' to 'C-c C-p' and 'C-c C-n'
|
|
|
|
respectively.
|
|
|
|
|
|
|
|
2022-12-06 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Annotate shell prompts
|
|
|
|
|
|
|
|
* eat.el (eat-enable-shell-prompt-annotation)
|
|
|
|
(eat-shell-prompt-annotation-position)
|
|
|
|
(eat-shell-prompt-annotation-running-margin-indicator)
|
|
|
|
(eat-shell-prompt-annotation-success-margin-indicator)
|
|
|
|
(eat-shell-prompt-annotation-failure-margin-indicator)
|
|
|
|
(eat-shell-prompt-annotation-delay): New user option.
|
|
|
|
* eat.el (eat-shell-prompt-annotation-running)
|
|
|
|
(eat-shell-prompt-annotation-success)
|
|
|
|
(eat-shell-prompt-annotation-failure): New face.
|
|
|
|
* eat.el (eat--shell-command-status, eat--shell-prompt-begin)
|
|
|
|
(eat--shell-prompt-mark, eat--shell-prompt-mark-overlays): New
|
|
|
|
variable.
|
|
|
|
* eat.el (eat--pre-prompt, eat--post-prompt)
|
|
|
|
(eat--update-shell-prompt-mark-overlays, eat--pre-cmd)
|
|
|
|
(eat--set-cmd-status): New function.
|
|
|
|
* eat.el (eat-mode): Make 'eat--shell-command-status',
|
|
|
|
'eat--shell-prompt-begin', 'eat--shell-prompt-mark',
|
|
|
|
'eat--shell-prompt-mark-overlays' and
|
|
|
|
'eat--shell-prompt-annotation-update-timer' local. Set margin
|
|
|
|
width if shell prompt annotation is enabled.
|
|
|
|
* eat.el (eat--shell-prompt-annotation-update-timer): New
|
|
|
|
variable.
|
|
|
|
* eat.el (eat--process-output-queue): Call or schedule
|
|
|
|
'eat--update-shell-prompt-mark-overlays' call.
|
|
|
|
* eat.el (eat--filter): Cancel timer
|
|
|
|
'eat--shell-prompt-annotation-update-timer'.
|
|
|
|
* eat.el (eat-exec): Set prompt start & end and command start &
|
|
|
|
end functions.
|
|
|
|
|
|
|
|
2022-12-06 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Add shell commands run in Eat to Emacs history
|
|
|
|
|
|
|
|
* eat.el (eat-enable-shell-command-history): New user option.
|
|
|
|
* eat.el (eat--set-cmd): New function.
|
|
|
|
* eat.el (eat-exec, eat--eshell-setup-proc-and-term): Call
|
|
|
|
'eat--set-cmd' when the shell reports the command being run.
|
|
|
|
|
|
|
|
2022-12-06 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Tighter shell integration
|
|
|
|
|
|
|
|
* eat.el (eat--t-term): New slots: 'prompt-start-fn',
|
|
|
|
'prompt-end-fn', 'cont-prompt-start-fn', 'cont-prompt-end-fn',
|
|
|
|
'set-cmd-fn', 'cmd-start-fn', 'cmd-finish-fn'
|
|
|
|
* eat.el (eat--t-set-cwd): Accept three arguments in two
|
|
|
|
different formats.
|
|
|
|
* eat.el (eat--t-prompt-start, eat--t-prompt-end)
|
|
|
|
(eat--t-cont-prompt-start, eat--t-cont-prompt-end)
|
|
|
|
(eat--t-set-cmd, eat--t-cmd-start, eat--t-cmd-finish): New
|
|
|
|
function.
|
|
|
|
* eat.el (eat--t-handle-output): Accept Eat's own
|
|
|
|
OSC 51 ; e ; ... ST sequences.
|
|
|
|
* eat.el (eat-term-prompt-start-function)
|
|
|
|
(eat-term-prompt-end-function)
|
|
|
|
(eat-term-continuation-prompt-start-function)
|
|
|
|
(eat-term-continuation-prompt-end-function)
|
|
|
|
(eat-term-set-cmd-function, eat-term-cmd-start-function)
|
|
|
|
(eat-term-cmd-finish-function): New generalized variable.
|
|
|
|
* integration/bash (__eat_current_command, __eat_exit_status):
|
|
|
|
New variable.
|
|
|
|
* integration/bash (__eat_prompt_command): Send exit status of
|
|
|
|
last command, if applicable. Use Eat specific sequence to
|
|
|
|
report working directory. Set title.
|
|
|
|
* integration/bash (__eat_preexec): Report current command and
|
|
|
|
execution start.
|
|
|
|
* integration/bash (__eat_before_prompt_command): Set
|
|
|
|
'__eat_exit_status' to the exit status of the last command.
|
|
|
|
* integration/bash (__eat_prompt_start, __eat_prompt_end)
|
|
|
|
(__eat_continuation_start, __eat_continuation_end): New
|
|
|
|
variable, used as constant only to make the code more readable.
|
|
|
|
* integration/bash (__eat_enable_integration): Wrap 'PS1' and
|
|
|
|
'PS2'. Don't set title from 'PS1'.
|
|
|
|
|
|
|
|
2022-12-04 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Calculate the number of lines on window properly
|
|
|
|
|
|
|
|
* eat.el (eat-exec, eat--eshell-setup-proc-and-term)
|
|
|
|
(eat--eshell-adjust-make-process-args)
|
|
|
|
(eat--eshell-synchronize-scroll): Calculate the number of
|
|
|
|
available lines on window properly.
|
|
|
|
|
|
|
|
2022-12-04 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Remap 'insert-char' to read and input a character
|
|
|
|
|
|
|
|
* eat.el (eat-input-char): New function.
|
|
|
|
* eat.el (eat-semi-char-mode-map)
|
|
|
|
(eat-eshell-semi-char-mode-map): Remap 'insert-char' to
|
|
|
|
'eat-input-char'.
|
|
|
|
|
|
|
|
2022-12-04 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Use full command as title in shell integration
|
|
|
|
|
|
|
|
* integration/bash (__eat_in_prompt_command): Rename to
|
|
|
|
'__eat_inhibit_preexec'.
|
|
|
|
* integration/bash (__eat_before_exec): Inhibit further
|
|
|
|
'__eat_preexec' calls until next prompt.
|
|
|
|
* integration/bash (__eat_preexec): Use 'history' to get the
|
|
|
|
real command typed by the user.
|
|
|
|
|
|
|
|
2022-12-04 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Fix Bash integration
|
|
|
|
|
|
|
|
* integration/bash (__eat_enable_integration): Fix moving
|
|
|
|
'PROMPT_COMMAND' array elements.
|
|
|
|
|
|
|
|
2022-12-04 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
* eat.el: Fix bright faces face definitions
|
|
|
|
|
|
|
|
2022-12-04 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Refactor shell integration enabling code
|
|
|
|
|
|
|
|
* integration/bash (__eat_enable_integration): New function.
|
|
|
|
* integration/bash: Move enabling code to dedicated function.
|
|
|
|
|
|
|
|
2022-12-04 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Update title automatically in shell integration
|
|
|
|
|
|
|
|
* integration/bash (__eat_prompt_command): Remove extra '\'s.
|
|
|
|
* integration/bash (__eat_in_prompt_command): New variable.
|
|
|
|
* integration/bash (__eat_preexec, __eat_before_prompt_command)
|
|
|
|
(__eat_after_prompt_command, __eat_before_exec): New function.
|
|
|
|
* integration/bash: Modify PS1 to update terminal title when
|
|
|
|
displaying prompt. Add '__eat_before_exec' as 'DEBUG' trap
|
|
|
|
handler to update terminal title just before executing a
|
|
|
|
command. Prepend and append '__eat_before_prompt_command' and
|
|
|
|
'__eat_after_prompt_command' to 'PROMPT_COMMAND' to avoid
|
|
|
|
getting trapped in 'DEBUG' trap.
|
|
|
|
|
|
|
|
2022-12-04 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
* README.org (Quelpa): Update recipe.
|
|
|
|
|
|
|
|
* term/eat.el: New file.
|
|
|
|
|
|
|
|
2022-12-04 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Refer to NonGNU ELPA in README
|
|
|
|
|
|
|
|
* README.org (NonGNU ELPA Devel): Rename to NonGNU ELPA.
|
|
|
|
Change the code-snippet to use NonGNU ELPA (stable).
|
|
|
|
|
|
|
|
2022-12-03 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
* integration/bash: Add copyright notice.
|
|
|
|
|
|
|
|
* integration/bash: Use '__' prefix
|
|
|
|
|
|
|
|
* integration/bash: Append to array more cleanly
|
|
|
|
|
|
|
|
* integration/bash: Don't setup again on reload
|
|
|
|
|
|
|
|
2022-12-03 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Use more uniform names for tracer functions
|
|
|
|
|
|
|
|
* eat.el: Rename 'eat--eshell-trace-...' symbols to
|
|
|
|
'eat--trace-eshell-...'.
|
|
|
|
|
|
|
|
2022-12-03 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Add shell integration script for GNU Bash
|
|
|
|
|
|
|
|
* integration/bash: New file.
|
|
|
|
* eat.el (eat-term-shell-integration-directory): New variable.
|
|
|
|
Contains path to the directory containing the scripts,
|
|
|
|
automatically updated when Eat is updated.
|
|
|
|
* eat.el (eat-exec, eat-eshell-mode): New enviroment variable
|
|
|
|
'EAT_SHELL_INTEGRATION_DIR'.
|
|
|
|
* eat.texi (Shell Integration): New chapter.
|
|
|
|
* eat.texi (Directory Tracking): Refer to 'Shell Integration'.
|
|
|
|
|
|
|
|
2022-12-01 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Check terminal contents while testing bell
|
|
|
|
|
|
|
|
* eat-tests.el (eat-test-character-sets): Check terminal
|
|
|
|
contents.
|
|
|
|
|
|
|
|
2022-12-01 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Refer to Info manual to setup directory tracking
|
|
|
|
|
|
|
|
* eat.el (eat-enable-directory-tracking): Refer to Info manual.
|
|
|
|
|
|
|
|
2022-12-01 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Support directory tracking with OSC 7
|
|
|
|
|
|
|
|
* eat.el: Require 'url'.
|
|
|
|
* eat.el (eat-enable-directory-tracking): New user option.
|
|
|
|
* eat.el (eat--t-term): New slots: 'cwd' and 'set-cwd-fn'.
|
|
|
|
* eat.el (eat--t-set-cwd, eat-term-cwd): New function.
|
|
|
|
* eat.el (eat-term-set-cwd-function): New function and
|
|
|
|
generalized variable.
|
|
|
|
* eat.el (eat--t-handle-output): Handle OSC 7.
|
|
|
|
* eat.el (eat--set-cwd): New function.
|
|
|
|
* eat.el (eat-exec): Use 'eat--set-cwd' to change current
|
|
|
|
working directory.
|
|
|
|
* eat.el (eat--eshell-invocation-directory): New variable,
|
|
|
|
local in Eshell buffers when 'eat-eshell-mode' is enabled.
|
|
|
|
* eat.el (eat--eshell-setup-proc-and-term): Save the invocation
|
|
|
|
directory of process.
|
|
|
|
* eat.el (eat--eshell-cleanup): Revert working directory to
|
|
|
|
invocation directory.
|
|
|
|
* eat.el (eat--eshell-local-mode): When enabling, make
|
|
|
|
'eat--eshell-invocation-directory' local variable and kill when
|
|
|
|
disabling.
|
|
|
|
* eat-tests.el (eat-test-set-cwd): New test.
|
|
|
|
* eat.texi (Directory Tracking): New chapter.
|
|
|
|
|
|
|
|
2022-11-30 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Fix byte-compilation warnings on Emacs 28
|
|
|
|
|
|
|
|
* eat.el (eat-term-input-event): Fix byte-compilation warnings
|
|
|
|
on Emacs 28, caused by calling 'posn-col-row' with two
|
|
|
|
arguments on Emacs >= 29, which is not available on Emacs 28.
|
|
|
|
|
|
|
|
2022-11-30 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
* eat.el: Use loop to define color and font faces
|
|
|
|
|
2022-11-30 13:09:02 +06:00
|
|
|
2022-11-30 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Document eat-eshell-visual-command-mode in manual
|
|
|
|
|
|
|
|
* eat.texi (Eshell Terminal): Document
|
|
|
|
'eat-eshell-visual-command-mode' and suggest to set
|
|
|
|
'eshell-visual-commands' to nil.
|
|
|
|
|
|
|
|
2022-11-30 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Fix compatibility issues with Emacs 28
|
|
|
|
|
|
|
|
* eat.el: Require 'subr-x'.
|
|
|
|
* eat.el (eat-yank, eat-yank-pop): Pass three arguments to
|
|
|
|
'mapconcat'.
|
|
|
|
* eat.el (eat--eshell-term-name): New function.
|
|
|
|
* eat.el (eat-eshell-mode): Use 'eat--eshell-term-name' instead
|
|
|
|
of using 'eat-term-name' directly.
|
|
|
|
* eat.el (eat-eshell-mode) [(< emacs-major-version 29)]: Use
|
|
|
|
'eshell-last-async-proc' instead of 'eshell-last-async-procs'.
|
|
|
|
* eat.el (eat--eshell-adjust-make-process-args)
|
|
|
|
[(< emacs-major-version 29)]: Don't check and set ':filter' and
|
|
|
|
':sentinel' of 'make-process' argument plist. Set process
|
|
|
|
filter and sentinel from 'eshell-exec-hook'.
|
|
|
|
* eat.el (eat--eshell-adjust-make-process-args): Call
|
|
|
|
'eat--eshell-setup-proc-and-term' from 'eshell-exec-hook', not
|
|
|
|
just after 'make-process'.
|
|
|
|
|
|
|
|
2022-11-29 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Don't put 'error' as the only then part of 'if'
|
|
|
|
|
|
|
|
* eat.el (eat-semi-char-mode, eat-char-mode): Don't put 'error'
|
|
|
|
as only then part of 'if'.
|
|
|
|
|
|
|
|
2022-11-29 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Use 'mapc' to make & kill multiple local variables
|
|
|
|
|
|
|
|
* eat.el (eat-blink-mode, eat--cursor-blink-mode, eat-mode)
|
|
|
|
(eat--eshell-local-mode, eat-trace-replay-mode): Use 'mapc' to
|
|
|
|
make & kill multiple local variables.
|
|
|
|
|
|
|
|
2022-11-29 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Put declare-function and defvar outside functions
|
|
|
|
|
|
|
|
* eat.el (eat--flip-slow-blink-state)
|
|
|
|
(eat--flip-fast-blink-state, eat-blink-mode)
|
|
|
|
(eat--eshell-output-filter, eat--eshell-cleanup)
|
|
|
|
(eat--eshell-process-output-queue, eat--eshell-sentinel)
|
|
|
|
(eat-eshell-mode, eat--eshell-visual-sentinel)
|
|
|
|
(eat--eshell-exec-visual, eat-eshell-visual-command-mode)
|
|
|
|
(eat-project): Move 'declare-function's and 'defvar's outside.
|
|
|
|
|
|
|
|
2022-11-29 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Use 'vector' directly instead of backquote
|
|
|
|
|
|
|
|
* eat.el (eat-term-make-keymap): Use 'vector' directly instead
|
|
|
|
of backquote.
|
|
|
|
|
|
|
|
2022-11-29 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
* eat.el (eat-term-make-keymap): Use 'cl-flet'
|
|
|
|
|
|
|
|
2022-11-29 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Use more readable '?\C-\s' instead of '?\C-\ '
|
|
|
|
|
|
|
|
* eat.el (eat-term-input-event, eat-term-make-keymap): Use more
|
|
|
|
readable '?\C-\s' instead of '?\C-\ '.
|
|
|
|
|
|
|
|
2022-11-29 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
* eat.el (eat-mode): Fix char mode 'help-echo'
|
|
|
|
|
|
|
|
* eat.el (eat--bell): Use 'ding' instead of 'beep'
|
|
|
|
|
|
|
|
* eat.el (eat--trace-exec): Use "-*- mode: MD -*-"
|
|
|
|
|
|
|
|
2022-11-29 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Use 'setf' + 'plist-get' instead of 'plist-put'
|
|
|
|
|
|
|
|
* eat.el (eat--eshell-adjust-make-process-args): Use (setf (plist-get
|
|
|
|
...) ...) instead of 'plist-put' without taking the result, which is
|
|
|
|
not guaranteed to always work.
|
|
|
|
|
|
|
|
2022-11-28 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Prefer 'and-let*' and 'when-let*' over 'when-let'
|
|
|
|
|
|
|
|
* eat.el (eat--t-set-sgr-params): Use 'and-let*' instead of 'when-let'
|
|
|
|
for side-effect free 'when-let'.
|
|
|
|
* eat.el (eat--flip-cursor-blink-state, eat--synchronize-scroll)
|
|
|
|
(eat-exec, eat--eshell-setup-proc-and-term)
|
|
|
|
(eat--eshell-synchronize-scroll, eat--eshell-visual-sentinel)
|
|
|
|
(eat--trace-replay-eval-next): Use 'when-let*' instead of 'when-let'
|
|
|
|
for 'when-let's with side-effect.
|
|
|
|
|
|
|
|
2022-11-28 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Prefer 'pcase-exhaustive' over 'pcase'
|
|
|
|
|
|
|
|
* eat.el (eat--t-erase-in-line, eat--t-erase-in-disp)
|
|
|
|
(eat--t-set-mouse-mode, eat--t-send-device-attrs)
|
|
|
|
(eat--t-handle-output, eat-term-input-event)
|
|
|
|
(eat--manipulate-kill-ring, eat--trace-replay-eval):
|
|
|
|
Prefer 'pcase-exhaustive' over 'pcase'.
|
|
|
|
|
|
|
|
2022-11-28 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
* eat.el (eat--t-change-charset): Assert argument
|
|
|
|
|
|
|
|
2022-11-28 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Combine multiple setq/setf/setq-local into one
|
|
|
|
|
|
|
|
* eat.el (eat--t-reset, eat--t-goto, eat--t-write)
|
|
|
|
(eat--t-save-cur, eat--t-enable-alt-disp)
|
|
|
|
(eat--t-change-scroll-region, eat--t-set-sgr-params)
|
|
|
|
(eat--t-manipulate-selection, eat--t-handle-output)
|
|
|
|
(eat--t-resize, eat--flip-slow-blink-state)
|
|
|
|
(eat--flip-fast-blink-state, 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-local-mode)
|
|
|
|
(eat--eshell-exec-visual, eat--trace-exec)
|
|
|
|
(eat--eshell-trace-adjust-make-process-args)
|
|
|
|
(eat--trace-replay-eval, eat-trace-replay, eat-trace--cleanup):
|
|
|
|
Combine multiple setq/setf/setq-local into one wherever
|
|
|
|
possible.
|
|
|
|
|
|
|
|
2022-11-28 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Avoid copying STR to the extent possible
|
|
|
|
|
|
|
|
* eat.el (eat--t-write): Take two more optional arguments BEG
|
|
|
|
and END to avoid copying STR multiple times unneccessarily.
|
|
|
|
|
|
|
|
2022-11-28 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Support multi-column characters properly
|
|
|
|
|
|
|
|
* eat.el (eat--t-write): Use 'char-width' instead of the
|
|
|
|
unpredictable 'string-width' to support multi-column characters
|
|
|
|
properly.
|
|
|
|
|
|
|
|
2022-11-28 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Use hash table to convert from charset
|
|
|
|
|
|
|
|
* eat.el (eat--t-dec-line-drawing-chars): New constant
|
|
|
|
containing the hash table.
|
|
|
|
* eat.el (eat--t-write): Use hash-table instead alist while
|
|
|
|
converting from DEC Line Drawing charset.
|
|
|
|
|
|
|
|
2022-11-28 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Use as less let-bindings as possible
|
|
|
|
|
|
|
|
* eat.el (eat--t-goto-bol, eat--t-goto-eol)
|
|
|
|
(eat--t-repeated-insert, eat--t-cur-right, eat--t-cur-left)
|
|
|
|
(eat--t-cur-horizontal-abs, eat--t-beg-of-next-line)
|
|
|
|
(eat--t-beg-of-prev-line, eat--t-cur-down, eat--t-cur-up)
|
|
|
|
(eat--t-cur-vertical-abs, eat--t-scroll-up, eat--t-scroll-down)
|
|
|
|
(eat--t-write, eat--t-horizontal-tab)
|
|
|
|
(eat--t-horizontal-backtab, eat--t-reverse-index)
|
|
|
|
(eat--t-erase-in-line, eat--t-erase-in-disp)
|
|
|
|
(eat--t-insert-char, eat--t-delete-char, eat--t-erase-char)
|
|
|
|
(eat--t-insert-line, eat--t-delete-line)
|
|
|
|
(eat--t-repeat-last-char, eat--t-change-scroll-region)
|
|
|
|
(eat--t-send-device-attrs): Minimize let-binding count.
|
|
|
|
* eat.el (eat--t-break-long-line, eat--t-write)
|
|
|
|
(eat-trace-replay): Use replace 'propertize' call with already
|
|
|
|
propertized string.
|
|
|
|
|
|
|
|
2022-11-28 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Replace 'let*' with 'let' wherever possible
|
|
|
|
|
|
|
|
* eat.el (eat--t-eol, eat--t-reset, eat--t-erase-in-disp)
|
|
|
|
(eat--t-disable-alt-disp, eat--t-resize, eat-term-redisplay)
|
|
|
|
(eat-term-input-event, eat--adjust-process-window-size): Use
|
|
|
|
'let' instead of 'let*' wherever possible.
|
|
|
|
* eat.el (eat--eshell-exec-visual): Use (VAR nil) form instead
|
|
|
|
of VAR form in 'let*' variable list.
|
|
|
|
|
|
|
|
2022-11-28 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
* README.org (NonGNU ELPA Devel): New section
|
|
|
|
|
|
|
|
2022-11-28 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Experimentally support for multi-column characters
|
|
|
|
|
|
|
|
* eat.el (eat--t-move-before-to-safe, eat--t-make-pos-safe)
|
|
|
|
(eat--t-fix-partial-multi-col-char): New function.
|
|
|
|
* eat.el (eat--t-write): Handle multi-column characters.
|
|
|
|
* eat.el (eat--t-insert-char, eat--t-delete-char)
|
|
|
|
(eat--t-erase-char): Handle multi-column characters on the
|
|
|
|
display while manipulating text.
|
|
|
|
|
|
|
|
2022-11-28 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
* .elpaignore: New file.
|
|
|
|
|
|
|
|
2022-11-25 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Use third argument of posn-col-row on Emacs >= 29
|
|
|
|
|
|
|
|
* eat.el (eat-term-input-event): Use USE-WINDOW argument of
|
|
|
|
'posn-col-row' to support text scaling properly, but only on
|
|
|
|
Emacs >= 29 since on Emacs 28 'posn-col-row' takes only one
|
|
|
|
argument.
|
|
|
|
|
|
|
|
2022-11-24 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
* Makefile (all): Remove "check" and "changelog."
|
|
|
|
|
|
|
|
2022-11-24 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Add documentation file generation code to Makefile
|
|
|
|
|
|
|
|
* Makefile (info, dvi, html, pdf, eat.info, eat.dvi, eat.html)
|
|
|
|
(eat.pdf): New targets.
|
|
|
|
* Makefile (all): New dependency "info."
|
|
|
|
* Makefile (.PHONY): Add "info", "dvi", "html" and "pdf."
|
|
|
|
|
|
|
|
2022-11-24 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Add proper dependencies to targets in Makefile
|
|
|
|
|
|
|
|
* Makefile (TIC): New variable.
|
|
|
|
* Makefile (eat.elc): Depend on eat.el.
|
|
|
|
* Makefile (e/eat-mono, e/eat-color, eat-256color)
|
|
|
|
(e/eat-truecolor): Depend on eat.ti.
|
|
|
|
|
|
|
|
2022-11-24 Akib Azmain Turja <akib@disroot.org>
|
|
|
|
|
|
|
|
Implement the terminal
|
|
|
|
|
|
|
|
This includes everything written from 2022-08-15 up to now.
|
|
|
|
* .dir-locals.el:
|
|
|
|
* CONTRIBUTE:
|
|
|
|
* COPYING:
|
|
|
|
* Makefile:
|
|
|
|
* NEWS:
|
|
|
|
* README.org:
|
|
|
|
* eat-tests.el:
|
|
|
|
* eat.el:
|
|
|
|
* eat.texi:
|
|
|
|
* eat.ti:
|
|
|
|
* fdl.texi:
|
|
|
|
* gitlog-to-changelog:
|
|
|
|
* gpl.texi:
|
|
|
|
* make-changelog:
|
|
|
|
* texinfo.tex:
|
|
|
|
New file.
|
|
|
|
|
|
|
|
;; Local Variables:
|
|
|
|
;; coding: utf-8
|
|
|
|
;; End:
|
|
|
|
|
|
|
|
Copyright (C) 2022 Akib Azmain Turja.
|
|
|
|
|
|
|
|
This file is not part of GNU Emacs.
|
|
|
|
|
|
|
|
GNU Emacs is free software: you can redistribute it and/or modify
|
|
|
|
it under the terms of the GNU General Public License as published by
|
|
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
|
|
(at your option) any later version.
|
|
|
|
|
|
|
|
GNU Emacs is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
|
|
along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|