Round 66: edebug-defun/all-defs/all-forms/eval-top-level/on-entry/cancel-on-entry, ert-run-tests/describe-test/results-timings/delete-all, buttercup-run-at-point, package-reinstall/recompile, flycheck-compile/explain-error/disable-checker/set-executable/copy-errors/buffer/clear
ober
a4b497c54edae61bc710db30e35dcfb5dd3b799d
--- a/docs/jemacs-vs-emacs.md +++ b/docs/jemacs-vs-emacs.md @@ -2578,6 +2578,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features | all-the-icons-ibuffer-mode | :orange_circle: | Icons in ibuffer | | nerd-icons-dired-mode | :orange_circle: | Nerd font icons in dired | +### Round 66 — Edebug, ERT, Flycheck & Package Tools + +| Feature | Status | Notes | +|---|---|---| +| edebug-defun | :orange_circle: | Instrument defun for debugging | +| edebug-all-defs | :orange_circle: | Instrument all defs on eval | +| edebug-all-forms | :orange_circle: | Instrument all forms on eval | +| edebug-eval-top-level-form | :orange_circle: | Eval top-level form with edebug | +| edebug-on-entry | :orange_circle: | Break on function entry | +| edebug-cancel-on-entry | :orange_circle: | Cancel break on entry | +| ert-run-tests-interactively | :orange_circle: | Run ERT tests interactively | +| ert-describe-test | :orange_circle: | Describe ERT test | +| ert-results-pop-to-timings | :orange_circle: | Show test timings | +| ert-delete-all-tests | :orange_circle: | Delete all test definitions | +| buttercup-run-at-point | :orange_circle: | Run Buttercup test at point | +| package-reinstall | :orange_circle: | Reinstall a package | +| package-recompile | :orange_circle: | Recompile a package | +| flycheck-compile | :orange_circle: | Run checker as compilation | +| flycheck-explain-error-at-point | :orange_circle: | Explain error at point | +| flycheck-disable-checker | :orange_circle: | Disable a checker | +| flycheck-set-checker-executable | :orange_circle: | Set checker executable path | +| flycheck-copy-errors-as-kill | :orange_circle: | Copy errors to kill ring | +| flycheck-buffer | :orange_circle: | Check current buffer | +| flycheck-clear | :orange_circle: | Clear all errors | + --- ## Recommended Development Roadmap --- a/src/jerboa-emacs/editor-extra-final.ss +++ b/src/jerboa-emacs/editor-extra-final.ss @@ -11647,3 +11647,54 @@ (if (mode-enabled? app 'nerd-icons-dired) (echo-message! echo "Nerd icons dired mode enabled") (echo-message! echo "Nerd icons dired mode disabled")))) + +;; Round 66 — Buttercup, package, Flycheck (batch 2) +(def (cmd-buttercup-run-at-point app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Buttercup: running test at point"))) + +(def (cmd-package-reinstall app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Reinstall package: " + (lambda (pkg) + (echo-message! echo (str "Package: reinstalling " pkg)))))) + +(def (cmd-package-recompile app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Recompile package: " + (lambda (pkg) + (echo-message! echo (str "Package: recompiling " pkg)))))) + +(def (cmd-flycheck-compile app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Flycheck: running checker as compilation"))) + +(def (cmd-flycheck-explain-error-at-point app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Flycheck: explaining error at point"))) + +(def (cmd-flycheck-disable-checker app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Disable checker: " + (lambda (checker) + (echo-message! echo (str "Flycheck: disabled checker '" checker "'")))))) + +(def (cmd-flycheck-set-checker-executable app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Checker: " + (lambda (checker) + (echo-read-string echo "Executable path: " + (lambda (path) + (echo-message! echo (str "Flycheck: set " checker " executable to " path)))))))) + +(def (cmd-flycheck-copy-errors-as-kill app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Flycheck: copied errors to kill ring"))) + +(def (cmd-flycheck-buffer app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Flycheck: checking current buffer"))) + +(def (cmd-flycheck-clear app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Flycheck: cleared all errors"))) --- a/src/jerboa-emacs/editor-extra-modes.ss +++ b/src/jerboa-emacs/editor-extra-modes.ss @@ -12176,3 +12176,58 @@ (lambda (dir) (echo-message! echo (str "Neotree: opened " dir)))))) +;; Round 66 — Edebug, ERT, Flycheck (batch 1) +(def (cmd-edebug-defun app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Edebug: instrumenting current defun"))) + +(def (cmd-edebug-all-defs app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'edebug-all-defs) + (if (mode-enabled? app 'edebug-all-defs) + (echo-message! echo "Edebug: instrumenting all definitions on eval") + (echo-message! echo "Edebug: normal eval (no instrumentation)")))) + +(def (cmd-edebug-all-forms app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'edebug-all-forms) + (if (mode-enabled? app 'edebug-all-forms) + (echo-message! echo "Edebug: instrumenting all forms on eval") + (echo-message! echo "Edebug: normal form eval")))) + +(def (cmd-edebug-eval-top-level-form app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Edebug: evaluated top-level form"))) + +(def (cmd-edebug-on-entry app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Edebug on entry to function: " + (lambda (fn) + (echo-message! echo (str "Edebug: will break on entry to " fn)))))) + +(def (cmd-edebug-cancel-on-entry app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Cancel edebug on entry for: " + (lambda (fn) + (echo-message! echo (str "Edebug: cancelled break on entry to " fn)))))) + +(def (cmd-ert-run-tests-interactively app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Run ERT tests matching: " + (lambda (pat) + (echo-message! echo (str "ERT: running tests matching '" pat "'")))))) + +(def (cmd-ert-describe-test app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Describe test: " + (lambda (test) + (echo-message! echo (str "ERT: describing test '" test "'")))))) + +(def (cmd-ert-results-pop-to-timings app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "ERT: showing test timings"))) + +(def (cmd-ert-delete-all-tests app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "ERT: deleted all test definitions"))) + --- a/src/jerboa-emacs/editor-extra-regs2.ss +++ b/src/jerboa-emacs/editor-extra-regs2.ss @@ -2825,4 +2825,25 @@ (register-command! 'all-the-icons-dired-mode cmd-all-the-icons-dired-mode) (register-command! 'all-the-icons-ibuffer-mode cmd-all-the-icons-ibuffer-mode) (register-command! 'nerd-icons-dired-mode cmd-nerd-icons-dired-mode) + ;; Round 66 + (register-command! 'edebug-defun cmd-edebug-defun) + (register-command! 'edebug-all-defs cmd-edebug-all-defs) + (register-command! 'edebug-all-forms cmd-edebug-all-forms) + (register-command! 'edebug-eval-top-level-form cmd-edebug-eval-top-level-form) + (register-command! 'edebug-on-entry cmd-edebug-on-entry) + (register-command! 'edebug-cancel-on-entry cmd-edebug-cancel-on-entry) + (register-command! 'ert-run-tests-interactively cmd-ert-run-tests-interactively) + (register-command! 'ert-describe-test cmd-ert-describe-test) + (register-command! 'ert-results-pop-to-timings cmd-ert-results-pop-to-timings) + (register-command! 'ert-delete-all-tests cmd-ert-delete-all-tests) + (register-command! 'buttercup-run-at-point cmd-buttercup-run-at-point) + (register-command! 'package-reinstall cmd-package-reinstall) + (register-command! 'package-recompile cmd-package-recompile) + (register-command! 'flycheck-compile cmd-flycheck-compile) + (register-command! 'flycheck-explain-error-at-point cmd-flycheck-explain-error-at-point) + (register-command! 'flycheck-disable-checker cmd-flycheck-disable-checker) + (register-command! 'flycheck-set-checker-executable cmd-flycheck-set-checker-executable) + (register-command! 'flycheck-copy-errors-as-kill cmd-flycheck-copy-errors-as-kill) + (register-command! 'flycheck-buffer cmd-flycheck-buffer) + (register-command! 'flycheck-clear cmd-flycheck-clear) )