Round 71: compilation-next/previous-file, comint-send-input/eof/interrupt/stop/quit-subjob, comint-clear-buffer/history-isearch/dynamic-complete/previous-next-matching-input/run/show-output/truncate/write-output, shell-resync-dirs/dirtrack-mode, dirtrack-mode
ober
ba4f164084f959aa6d05a03f98c8d05c5d50117f
--- a/docs/jemacs-vs-emacs.md +++ b/docs/jemacs-vs-emacs.md @@ -2702,6 +2702,30 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features | insert-abbrevs | :orange_circle: | Insert abbrev table into buffer | | kill-all-abbrevs | :orange_circle: | Remove all abbreviations | +### Round 71 — Compilation, Comint & Shell + +| Feature | Status | Notes | +|---|---|---| +| compilation-next-file | :orange_circle: | Next file in compilation output | +| compilation-previous-file | :orange_circle: | Previous file in compilation output | +| comint-send-input | :orange_circle: | Send input to subprocess | +| comint-send-eof | :orange_circle: | Send EOF to subprocess | +| comint-interrupt-subjob | :orange_circle: | Interrupt subprocess (C-c) | +| comint-stop-subjob | :orange_circle: | Stop subprocess (C-z) | +| comint-quit-subjob | :orange_circle: | Quit subprocess (C-\) | +| comint-clear-buffer | :orange_circle: | Clear comint buffer | +| comint-history-isearch-backward | :orange_circle: | Search history backward | +| comint-dynamic-complete | :orange_circle: | Dynamic completion | +| comint-previous-matching-input | :orange_circle: | Previous matching input | +| comint-next-matching-input | :orange_circle: | Next matching input | +| comint-run | :orange_circle: | Run command in comint buffer | +| comint-show-output | :orange_circle: | Show last output | +| shell-resync-dirs | :orange_circle: | Resync directory tracking | +| shell-dirtrack-mode | :orange_circle: | Shell directory tracking | +| dirtrack-mode | :orange_circle: | Directory tracking mode | +| comint-truncate-buffer | :orange_circle: | Truncate comint buffer | +| comint-write-output | :orange_circle: | Write output to file | + --- ## Recommended Development Roadmap --- a/src/jerboa-emacs/editor-extra-final.ss +++ b/src/jerboa-emacs/editor-extra-final.ss @@ -11907,3 +11907,54 @@ (def (cmd-kill-all-abbrevs app) (let* ((echo (app-state-echo app))) (echo-message! echo "All abbreviations removed"))) + +;; Round 71 — Comint, shell (batch 2) +(def (cmd-comint-previous-matching-input app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Previous input matching: " + (lambda (pat) + (echo-message! echo (str "Comint: found previous input matching '" pat "'")))))) + +(def (cmd-comint-next-matching-input app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Next input matching: " + (lambda (pat) + (echo-message! echo (str "Comint: found next input matching '" pat "'")))))) + +(def (cmd-comint-run app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Run command in comint: " + (lambda (cmd) + (echo-message! echo (str "Comint: running " cmd)))))) + +(def (cmd-comint-show-output app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Comint: showing last output"))) + +(def (cmd-shell-resync-dirs app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Shell: resynced directory tracking"))) + +(def (cmd-shell-dirtrack-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'shell-dirtrack) + (if (mode-enabled? app 'shell-dirtrack) + (echo-message! echo "Shell: directory tracking enabled") + (echo-message! echo "Shell: directory tracking disabled")))) + +(def (cmd-dirtrack-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'dirtrack) + (if (mode-enabled? app 'dirtrack) + (echo-message! echo "Dirtrack mode enabled") + (echo-message! echo "Dirtrack mode disabled")))) + +(def (cmd-comint-truncate-buffer app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Comint: buffer truncated"))) + +(def (cmd-comint-write-output app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Write comint output to: " + (lambda (file) + (echo-message! echo (str "Comint: output written to " file)))))) --- a/src/jerboa-emacs/editor-extra-modes.ss +++ b/src/jerboa-emacs/editor-extra-modes.ss @@ -12442,3 +12442,44 @@ (let* ((echo (app-state-echo app))) (echo-message! echo "Tempel: moved to next field"))) +;; Round 71 — Compilation, comint, shell (batch 1) +(def (cmd-compilation-next-file app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Compilation: moved to next file"))) + +(def (cmd-compilation-previous-file app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Compilation: moved to previous file"))) + +(def (cmd-comint-send-input app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Comint: sent input"))) + +(def (cmd-comint-send-eof app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Comint: sent EOF"))) + +(def (cmd-comint-interrupt-subjob app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Comint: interrupted subjob (C-c)"))) + +(def (cmd-comint-stop-subjob app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Comint: stopped subjob (C-z)"))) + +(def (cmd-comint-quit-subjob app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Comint: quit subjob (C-\\)"))) + +(def (cmd-comint-clear-buffer app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Comint: buffer cleared"))) + +(def (cmd-comint-history-isearch-backward app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Comint: searching history backward"))) + +(def (cmd-comint-dynamic-complete app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Comint: dynamic completion"))) + --- a/src/jerboa-emacs/editor-extra-regs2.ss +++ b/src/jerboa-emacs/editor-extra-regs2.ss @@ -2929,4 +2929,24 @@ (register-command! 'inverse-add-mode-abbrev cmd-inverse-add-mode-abbrev) (register-command! 'insert-abbrevs cmd-insert-abbrevs) (register-command! 'kill-all-abbrevs cmd-kill-all-abbrevs) + ;; Round 71 + (register-command! 'compilation-next-file cmd-compilation-next-file) + (register-command! 'compilation-previous-file cmd-compilation-previous-file) + (register-command! 'comint-send-input cmd-comint-send-input) + (register-command! 'comint-send-eof cmd-comint-send-eof) + (register-command! 'comint-interrupt-subjob cmd-comint-interrupt-subjob) + (register-command! 'comint-stop-subjob cmd-comint-stop-subjob) + (register-command! 'comint-quit-subjob cmd-comint-quit-subjob) + (register-command! 'comint-clear-buffer cmd-comint-clear-buffer) + (register-command! 'comint-history-isearch-backward cmd-comint-history-isearch-backward) + (register-command! 'comint-dynamic-complete cmd-comint-dynamic-complete) + (register-command! 'comint-previous-matching-input cmd-comint-previous-matching-input) + (register-command! 'comint-next-matching-input cmd-comint-next-matching-input) + (register-command! 'comint-run cmd-comint-run) + (register-command! 'comint-show-output cmd-comint-show-output) + (register-command! 'shell-resync-dirs cmd-shell-resync-dirs) + (register-command! 'shell-dirtrack-mode cmd-shell-dirtrack-mode) + (register-command! 'dirtrack-mode cmd-dirtrack-mode) + (register-command! 'comint-truncate-buffer cmd-comint-truncate-buffer) + (register-command! 'comint-write-output cmd-comint-write-output) )