Round 109: Add 20 calendar, diary & timeclock commands
ober
05360bac41373ecceb04b1339f3e9bf7c7a2b94c
--- a/docs/jemacs-vs-emacs.md +++ b/docs/jemacs-vs-emacs.md @@ -3689,6 +3689,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features | shr-next-link | :orange_circle: | Move to next SHR link | | shr-previous-link | :orange_circle: | Move to previous SHR link | +### Round 109 — Calendar, Diary & Timeclock + +| Command | Status | Description | +|---------|--------|-------------| +| calendar-forward-day | :orange_circle: | Move forward one day | +| calendar-backward-day | :orange_circle: | Move backward one day | +| calendar-forward-week | :orange_circle: | Move forward one week | +| calendar-backward-week | :orange_circle: | Move backward one week | +| calendar-beginning-of-week | :orange_circle: | Move to beginning of week | +| calendar-end-of-week | :orange_circle: | Move to end of week | +| calendar-beginning-of-month | :orange_circle: | Move to beginning of month | +| calendar-end-of-month | :orange_circle: | Move to end of month | +| calendar-goto-date | :orange_circle: | Jump to specific date | +| calendar-unmark | :orange_circle: | Clear all calendar marks | +| calendar-phases-of-moon | :orange_circle: | Show moon phases | +| calendar-print-day-of-year | :orange_circle: | Show day of year | +| timeclock-change | :orange_circle: | Change timeclock project | +| timeclock-status-string | :orange_circle: | Show timeclock status | +| timeclock-reread-log | :orange_circle: | Reread timeclock log | +| timeclock-workday-remaining | :orange_circle: | Show remaining workday time | +| calendar-count-days-region | :orange_circle: | Count days in region | +| calendar-goto-iso-date | :orange_circle: | Jump to ISO date | +| calendar-goto-hebrew-date | :orange_circle: | Jump to Hebrew date | +| calendar-goto-islamic-date | :orange_circle: | Jump to Islamic date | + --- ## Recommended Development Roadmap --- a/src/jerboa-emacs/editor-extra-final.ss +++ b/src/jerboa-emacs/editor-extra-final.ss @@ -13749,3 +13749,53 @@ (def (cmd-shr-previous-link app) (let* ((echo (app-state-echo app))) (echo-message! echo "SHR: moved to previous link"))) + +;;; ——— Round 109: Calendar, diary & timeclock (batch 2) ——— + +(def (cmd-calendar-phases-of-moon app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Calendar: showing phases of the moon"))) + +(def (cmd-calendar-print-day-of-year app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Calendar: showing day of year"))) + +(def (cmd-timeclock-change app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Change to project: " + (lambda (project) + (echo-message! echo (str "Timeclock: changed to project " project)))))) + +(def (cmd-timeclock-status-string app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Timeclock: showing current status"))) + +(def (cmd-timeclock-reread-log app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Timeclock: reread log file"))) + +(def (cmd-timeclock-workday-remaining app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Timeclock: showing workday time remaining"))) + +(def (cmd-calendar-count-days-region app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Calendar: counting days in region"))) + +(def (cmd-calendar-goto-iso-date app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "ISO date (YYYY-MM-DD): " + (lambda (date) + (echo-message! echo (str "Calendar: jumped to ISO date " date)))))) + +(def (cmd-calendar-goto-hebrew-date app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Hebrew date: " + (lambda (date) + (echo-message! echo (str "Calendar: jumped to Hebrew date " date)))))) + +(def (cmd-calendar-goto-islamic-date app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Islamic date: " + (lambda (date) + (echo-message! echo (str "Calendar: jumped to Islamic date " date)))))) --- a/src/jerboa-emacs/editor-extra-modes.ss +++ b/src/jerboa-emacs/editor-extra-modes.ss @@ -14314,3 +14314,47 @@ (def (cmd-elfeed-db-compact app) (let* ((echo (app-state-echo app))) (echo-message! echo "Elfeed: compacting database"))) + +;;; ——— Round 109: Calendar, diary & timeclock (batch 1) ——— + +(def (cmd-calendar-forward-day app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Calendar: moved forward one day"))) + +(def (cmd-calendar-backward-day app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Calendar: moved backward one day"))) + +(def (cmd-calendar-forward-week app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Calendar: moved forward one week"))) + +(def (cmd-calendar-backward-week app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Calendar: moved backward one week"))) + +(def (cmd-calendar-beginning-of-week app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Calendar: moved to beginning of week"))) + +(def (cmd-calendar-end-of-week app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Calendar: moved to end of week"))) + +(def (cmd-calendar-beginning-of-month app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Calendar: moved to beginning of month"))) + +(def (cmd-calendar-end-of-month app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Calendar: moved to end of month"))) + +(def (cmd-calendar-goto-date app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Go to date (M/D/Y): " + (lambda (date) + (echo-message! echo (str "Calendar: jumped to " date)))))) + +(def (cmd-calendar-unmark app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Calendar: cleared all marks"))) --- a/src/jerboa-emacs/editor-extra-regs2.ss +++ b/src/jerboa-emacs/editor-extra-regs2.ss @@ -3722,4 +3722,25 @@ (register-command! 'shr-copy-url cmd-shr-copy-url) (register-command! 'shr-next-link cmd-shr-next-link) (register-command! 'shr-previous-link cmd-shr-previous-link) + ;; Round 109: Calendar, diary & timeclock + (register-command! 'calendar-forward-day cmd-calendar-forward-day) + (register-command! 'calendar-backward-day cmd-calendar-backward-day) + (register-command! 'calendar-forward-week cmd-calendar-forward-week) + (register-command! 'calendar-backward-week cmd-calendar-backward-week) + (register-command! 'calendar-beginning-of-week cmd-calendar-beginning-of-week) + (register-command! 'calendar-end-of-week cmd-calendar-end-of-week) + (register-command! 'calendar-beginning-of-month cmd-calendar-beginning-of-month) + (register-command! 'calendar-end-of-month cmd-calendar-end-of-month) + (register-command! 'calendar-goto-date cmd-calendar-goto-date) + (register-command! 'calendar-unmark cmd-calendar-unmark) + (register-command! 'calendar-phases-of-moon cmd-calendar-phases-of-moon) + (register-command! 'calendar-print-day-of-year cmd-calendar-print-day-of-year) + (register-command! 'timeclock-change cmd-timeclock-change) + (register-command! 'timeclock-status-string cmd-timeclock-status-string) + (register-command! 'timeclock-reread-log cmd-timeclock-reread-log) + (register-command! 'timeclock-workday-remaining cmd-timeclock-workday-remaining) + (register-command! 'calendar-count-days-region cmd-calendar-count-days-region) + (register-command! 'calendar-goto-iso-date cmd-calendar-goto-iso-date) + (register-command! 'calendar-goto-hebrew-date cmd-calendar-goto-hebrew-date) + (register-command! 'calendar-goto-islamic-date cmd-calendar-goto-islamic-date) )