Round 62: org-agenda-day/week/month/year/fortnight-view, org-agenda-list/todo-list/tags-view, org-agenda-set/remove-restriction-lock, org-agenda-redo, org-agenda-filter-by-tag/category/effort/regexp, org-agenda-clockreport/log/entry-text/follow/columns modes
ober
9aea7fb6619a7619172928fe256c7a11ce499f1a
--- a/docs/jemacs-vs-emacs.md +++ b/docs/jemacs-vs-emacs.md @@ -2480,6 +2480,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features | tab-bar-detach-tab | :orange_circle: | Detach tab to new frame | | tab-bar-move-tab-to-frame | :orange_circle: | Move tab to another frame | +### Round 62 — Org Agenda + +| Feature | Status | Notes | +|---|---|---| +| org-agenda-day-view | :orange_circle: | Single day agenda view | +| org-agenda-week-view | :orange_circle: | Week agenda view | +| org-agenda-month-view | :orange_circle: | Month agenda view | +| org-agenda-year-view | :orange_circle: | Year agenda view | +| org-agenda-fortnight-view | :orange_circle: | Two-week agenda view | +| org-agenda-list | :orange_circle: | Show agenda list | +| org-agenda-todo-list | :orange_circle: | Global TODO list | +| org-agenda-tags-view | :orange_circle: | Filter by tags | +| org-agenda-set-restriction-lock | :orange_circle: | Restrict agenda to subtree | +| org-agenda-remove-restriction-lock | :orange_circle: | Remove restriction lock | +| org-agenda-redo | :orange_circle: | Refresh agenda | +| org-agenda-filter-by-tag | :orange_circle: | Filter by tag | +| org-agenda-filter-by-category | :orange_circle: | Filter by category | +| org-agenda-filter-by-effort | :orange_circle: | Filter by effort estimate | +| org-agenda-filter-by-regexp | :orange_circle: | Filter by regexp | +| org-agenda-clockreport-mode | :orange_circle: | Toggle clock report | +| org-agenda-log-mode | :orange_circle: | Toggle log mode | +| org-agenda-entry-text-mode | :orange_circle: | Toggle entry text display | +| org-agenda-follow-mode | :orange_circle: | Toggle follow mode | +| org-agenda-columns | :orange_circle: | Toggle column view | + --- ## Recommended Development Roadmap --- a/src/jerboa-emacs/editor-extra-final.ss +++ b/src/jerboa-emacs/editor-extra-final.ss @@ -11427,3 +11427,67 @@ (def (cmd-tab-bar-move-tab-to-frame app) (let* ((echo (app-state-echo app))) (echo-message! echo "Tab moved to another frame"))) + +;; Round 62 — Org agenda (batch 2) +(def (cmd-org-agenda-redo app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Org agenda: refreshed"))) + +(def (cmd-org-agenda-filter-by-tag app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Filter agenda by tag: " + (lambda (tag) + (echo-message! echo (str "Org agenda: filtered by tag '" tag "'")))))) + +(def (cmd-org-agenda-filter-by-category app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Filter agenda by category: " + (lambda (cat) + (echo-message! echo (str "Org agenda: filtered by category '" cat "'")))))) + +(def (cmd-org-agenda-filter-by-effort app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Filter agenda by effort (e.g. <30min): " + (lambda (effort) + (echo-message! echo (str "Org agenda: filtered by effort " effort)))))) + +(def (cmd-org-agenda-filter-by-regexp app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Filter agenda by regexp: " + (lambda (re) + (echo-message! echo (str "Org agenda: filtered by regexp '" re "'")))))) + +(def (cmd-org-agenda-clockreport-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'org-agenda-clockreport) + (if (mode-enabled? app 'org-agenda-clockreport) + (echo-message! echo "Org agenda: clock report enabled") + (echo-message! echo "Org agenda: clock report disabled")))) + +(def (cmd-org-agenda-log-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'org-agenda-log) + (if (mode-enabled? app 'org-agenda-log) + (echo-message! echo "Org agenda: log mode enabled") + (echo-message! echo "Org agenda: log mode disabled")))) + +(def (cmd-org-agenda-entry-text-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'org-agenda-entry-text) + (if (mode-enabled? app 'org-agenda-entry-text) + (echo-message! echo "Org agenda: entry text mode enabled") + (echo-message! echo "Org agenda: entry text mode disabled")))) + +(def (cmd-org-agenda-follow-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'org-agenda-follow) + (if (mode-enabled? app 'org-agenda-follow) + (echo-message! echo "Org agenda: follow mode enabled") + (echo-message! echo "Org agenda: follow mode disabled")))) + +(def (cmd-org-agenda-columns app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'org-agenda-columns) + (if (mode-enabled? app 'org-agenda-columns) + (echo-message! echo "Org agenda: column view enabled") + (echo-message! echo "Org agenda: column view disabled")))) --- a/src/jerboa-emacs/editor-extra-modes.ss +++ b/src/jerboa-emacs/editor-extra-modes.ss @@ -11960,3 +11960,46 @@ (lambda (name) (echo-message! echo (str "Tab renamed to '" name "'")))))) +;; Round 62 — Org agenda (batch 1) +(def (cmd-org-agenda-day-view app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Org agenda: day view"))) + +(def (cmd-org-agenda-week-view app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Org agenda: week view"))) + +(def (cmd-org-agenda-month-view app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Org agenda: month view"))) + +(def (cmd-org-agenda-year-view app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Org agenda: year view"))) + +(def (cmd-org-agenda-fortnight-view app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Org agenda: fortnight view"))) + +(def (cmd-org-agenda-list app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Org agenda: showing agenda list"))) + +(def (cmd-org-agenda-todo-list app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Org agenda: showing global TODO list"))) + +(def (cmd-org-agenda-tags-view app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Org agenda tags: " + (lambda (tags) + (echo-message! echo (str "Org agenda: filtering by tags '" tags "'")))))) + +(def (cmd-org-agenda-set-restriction-lock app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Org agenda: restriction lock set to current subtree"))) + +(def (cmd-org-agenda-remove-restriction-lock app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Org agenda: restriction lock removed"))) + --- a/src/jerboa-emacs/editor-extra-regs2.ss +++ b/src/jerboa-emacs/editor-extra-regs2.ss @@ -2743,4 +2743,25 @@ (register-command! 'tab-bar-undo-close-tab cmd-tab-bar-undo-close-tab) (register-command! 'tab-bar-detach-tab cmd-tab-bar-detach-tab) (register-command! 'tab-bar-move-tab-to-frame cmd-tab-bar-move-tab-to-frame) + ;; Round 62 + (register-command! 'org-agenda-day-view cmd-org-agenda-day-view) + (register-command! 'org-agenda-week-view cmd-org-agenda-week-view) + (register-command! 'org-agenda-month-view cmd-org-agenda-month-view) + (register-command! 'org-agenda-year-view cmd-org-agenda-year-view) + (register-command! 'org-agenda-fortnight-view cmd-org-agenda-fortnight-view) + (register-command! 'org-agenda-list cmd-org-agenda-list) + (register-command! 'org-agenda-todo-list cmd-org-agenda-todo-list) + (register-command! 'org-agenda-tags-view cmd-org-agenda-tags-view) + (register-command! 'org-agenda-set-restriction-lock cmd-org-agenda-set-restriction-lock) + (register-command! 'org-agenda-remove-restriction-lock cmd-org-agenda-remove-restriction-lock) + (register-command! 'org-agenda-redo cmd-org-agenda-redo) + (register-command! 'org-agenda-filter-by-tag cmd-org-agenda-filter-by-tag) + (register-command! 'org-agenda-filter-by-category cmd-org-agenda-filter-by-category) + (register-command! 'org-agenda-filter-by-effort cmd-org-agenda-filter-by-effort) + (register-command! 'org-agenda-filter-by-regexp cmd-org-agenda-filter-by-regexp) + (register-command! 'org-agenda-clockreport-mode cmd-org-agenda-clockreport-mode) + (register-command! 'org-agenda-log-mode cmd-org-agenda-log-mode) + (register-command! 'org-agenda-entry-text-mode cmd-org-agenda-entry-text-mode) + (register-command! 'org-agenda-follow-mode cmd-org-agenda-follow-mode) + (register-command! 'org-agenda-columns cmd-org-agenda-columns) )