Round 80: Add display & visual enhancement features
ober
be4057b285866fff7a54b3b448906d3742f4071a
--- a/docs/jemacs-vs-emacs.md +++ b/docs/jemacs-vs-emacs.md @@ -2930,6 +2930,33 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features --- +### Round 80 — Display & Visual Enhancement + +| Emacs Command | Status | Description | +|---|---|---| +| rainbow-identifiers-mode | :orange_circle: | Color each identifier uniquely | +| highlight-escape-sequences-mode | :orange_circle: | Highlight escape sequences in strings | +| auto-dim-other-buffers-mode | :orange_circle: | Dim non-focused buffers | +| pulsar-pulse-line | :orange_circle: | Pulse current line | +| pulsar-highlight-dwim | :orange_circle: | Highlight region or line | +| buffer-face-mode | :orange_circle: | Toggle buffer-local face | +| text-scale-increase | :orange_circle: | Increase text scale | +| text-scale-decrease | :orange_circle: | Decrease text scale | +| global-text-scale-adjust | :orange_circle: | Adjust global text scale | +| face-remap-add-relative | :orange_circle: | Add relative face remapping | +| face-remap-remove-relative | :orange_circle: | Remove face remapping | +| visual-fill-column-mode | :orange_circle: | Soft-wrap at fill column | +| writeroom-mode | :orange_circle: | Distraction-free writing mode | +| olivetti-mode | :orange_circle: | Center text in buffer | +| solaire-mode | :orange_circle: | Distinct background for file buffers | +| page-break-lines-mode | :orange_circle: | Display page breaks as lines | +| form-feed-mode | :orange_circle: | Render form-feed characters | +| display-fill-column-indicator-mode | :orange_circle: | Show fill column indicator | +| nano-theme-toggle | :orange_circle: | Toggle nano theme | +| minions-mode | :orange_circle: | Show minor modes in menu | + +--- + ## Recommended Development Roadmap > *Reprioritized based on the user's actual Emacs workflow* --- a/src/jerboa-emacs/editor-extra-final.ss +++ b/src/jerboa-emacs/editor-extra-final.ss @@ -12332,3 +12332,68 @@ (if (mode-enabled? app 'color-identifiers) (echo-message! echo "Color identifiers mode enabled") (echo-message! echo "Color identifiers mode disabled")))) + +;;; Round 80 — Display & Visual Enhancement (cont.) +(def (cmd-face-remap-remove-relative app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Face remapping removed"))) + +(def (cmd-visual-fill-column-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'visual-fill-column) + (if (mode-enabled? app 'visual-fill-column) + (echo-message! echo "Visual fill column mode enabled") + (echo-message! echo "Visual fill column mode disabled")))) + +(def (cmd-writeroom-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'writeroom) + (if (mode-enabled? app 'writeroom) + (echo-message! echo "Writeroom mode enabled — distraction-free writing") + (echo-message! echo "Writeroom mode disabled")))) + +(def (cmd-olivetti-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'olivetti) + (if (mode-enabled? app 'olivetti) + (echo-message! echo "Olivetti mode enabled — centered text") + (echo-message! echo "Olivetti mode disabled")))) + +(def (cmd-solaire-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'solaire) + (if (mode-enabled? app 'solaire) + (echo-message! echo "Solaire mode enabled — distinct background for file buffers") + (echo-message! echo "Solaire mode disabled")))) + +(def (cmd-page-break-lines-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'page-break-lines) + (if (mode-enabled? app 'page-break-lines) + (echo-message! echo "Page break lines mode enabled") + (echo-message! echo "Page break lines mode disabled")))) + +(def (cmd-form-feed-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'form-feed) + (if (mode-enabled? app 'form-feed) + (echo-message! echo "Form feed mode enabled") + (echo-message! echo "Form feed mode disabled")))) + +(def (cmd-display-fill-column-indicator-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'display-fill-column-indicator) + (if (mode-enabled? app 'display-fill-column-indicator) + (echo-message! echo "Fill column indicator displayed") + (echo-message! echo "Fill column indicator hidden")))) + +(def (cmd-nano-theme-toggle app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Nano theme toggled"))) + +(def (cmd-minions-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'minions) + (if (mode-enabled? app 'minions) + (echo-message! echo "Minions mode enabled — minor modes in menu") + (echo-message! echo "Minions mode disabled")))) --- a/src/jerboa-emacs/editor-extra-modes.ss +++ b/src/jerboa-emacs/editor-extra-modes.ss @@ -12882,3 +12882,60 @@ (let* ((echo (app-state-echo app))) (echo-message! echo "Calendar: mark set"))) +;;; Round 80 — Display & Visual Enhancement +(def (cmd-rainbow-identifiers-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'rainbow-identifiers) + (if (mode-enabled? app 'rainbow-identifiers) + (echo-message! echo "Rainbow identifiers mode enabled") + (echo-message! echo "Rainbow identifiers mode disabled")))) + +(def (cmd-highlight-escape-sequences-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'highlight-escape-sequences) + (if (mode-enabled? app 'highlight-escape-sequences) + (echo-message! echo "Highlight escape sequences mode enabled") + (echo-message! echo "Highlight escape sequences mode disabled")))) + +(def (cmd-auto-dim-other-buffers-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'auto-dim-other-buffers) + (if (mode-enabled? app 'auto-dim-other-buffers) + (echo-message! echo "Auto-dim other buffers mode enabled") + (echo-message! echo "Auto-dim other buffers mode disabled")))) + +(def (cmd-pulsar-pulse-line app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Pulsar: pulsed current line"))) + +(def (cmd-pulsar-highlight-dwim app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Pulsar: highlighted region or line"))) + +(def (cmd-buffer-face-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'buffer-face) + (if (mode-enabled? app 'buffer-face) + (echo-message! echo "Buffer face mode enabled") + (echo-message! echo "Buffer face mode disabled")))) + +(def (cmd-text-scale-increase app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Text scale increased"))) + +(def (cmd-text-scale-decrease app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Text scale decreased"))) + +(def (cmd-global-text-scale-adjust app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Global text scale (0 to reset): " + (lambda (val) + (echo-message! echo (str "Global text scale set to " val)))))) + +(def (cmd-face-remap-add-relative app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Face to remap: " + (lambda (face) + (echo-message! echo (str "Face '" face "' remapped")))))) + --- a/src/jerboa-emacs/editor-extra-regs2.ss +++ b/src/jerboa-emacs/editor-extra-regs2.ss @@ -3115,4 +3115,25 @@ (register-command! 'symbol-overlay-jump-next cmd-symbol-overlay-jump-next) (register-command! 'symbol-overlay-jump-prev cmd-symbol-overlay-jump-prev) (register-command! 'color-identifiers-mode cmd-color-identifiers-mode) + ;; Round 80 + (register-command! 'rainbow-identifiers-mode cmd-rainbow-identifiers-mode) + (register-command! 'highlight-escape-sequences-mode cmd-highlight-escape-sequences-mode) + (register-command! 'auto-dim-other-buffers-mode cmd-auto-dim-other-buffers-mode) + (register-command! 'pulsar-pulse-line cmd-pulsar-pulse-line) + (register-command! 'pulsar-highlight-dwim cmd-pulsar-highlight-dwim) + (register-command! 'buffer-face-mode cmd-buffer-face-mode) + (register-command! 'text-scale-increase cmd-text-scale-increase) + (register-command! 'text-scale-decrease cmd-text-scale-decrease) + (register-command! 'global-text-scale-adjust cmd-global-text-scale-adjust) + (register-command! 'face-remap-add-relative cmd-face-remap-add-relative) + (register-command! 'face-remap-remove-relative cmd-face-remap-remove-relative) + (register-command! 'visual-fill-column-mode cmd-visual-fill-column-mode) + (register-command! 'writeroom-mode cmd-writeroom-mode) + (register-command! 'olivetti-mode cmd-olivetti-mode) + (register-command! 'solaire-mode cmd-solaire-mode) + (register-command! 'page-break-lines-mode cmd-page-break-lines-mode) + (register-command! 'form-feed-mode cmd-form-feed-mode) + (register-command! 'display-fill-column-indicator-mode cmd-display-fill-column-indicator-mode) + (register-command! 'nano-theme-toggle cmd-nano-theme-toggle) + (register-command! 'minions-mode cmd-minions-mode) )