X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/d04d6b955b4caaa9817ec053eddb59e923a68cf8..1fcf038b833284393c3bdc3b3e6358385c682e3d:/lisp/ChangeLog diff --git a/lisp/ChangeLog b/lisp/ChangeLog index db18c225cd..c9ca1b6865 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,1032 @@ +2013-01-29 Stephen Berman + + * calendar/todos.el: Improve item marking and handling of marked items. + (todos-prefix): Add validator to ensure value differs from that of + todos-item-mark. + (todos-item-mark): New defcustom. + (todos-prefix-overlay): New function. + (todos-marked-item-p): Use it. Adapt implementation to new + handling of marked items. + (todos-insert-with-overlays): When inserting pushes down a marked + item, move its prefix overlay. + (todos-prefix-overlays): Add overlay even when prefix is empty string, + otherwise item marking fails. Improve handling of marked items. + (todos-mark-unmark-item): Adapt to new handling of marked items + and simplify by removing marking of all items in category. + (todos-mark-category): Adapt to new handling of marked items and + don't use todos-mark-unmark-item. + (todos-unmark-category): Adapt to new handling of marked items. + (todos-delete-item): Remove obsolete handling of marked items and + useless restoration of point. + (todos-set-item-priority): Use new handling of marked items. + (todos-move-item, todos-item-done, todos-item-undo) + (todos-archive-done-item): Remove obsolete handling of marked items. + +2013-01-25 Stephen Berman + + * calendar/todos.el: Improve definitions and use of some faces. + (todos-top-priority): Use current definition of font-lock-constant-face. + (todos-diary-expired): Make default value contrast more with + default value of todos-date face. + (todos-nondiary, todos-category-string): New faces. + (todos-nondiary-face, todos-category-string-face): Corresponding + new variables. + (todos-done, todos-comment): Switch default values to go better + with default value of todos-date face. + (todos-done-sep): Change default value. + (todos-category-string-matcher-1) + (todos-category-string-matcher-2): Improve doc string. + (todos-font-lock-keywords): Use todos-nondiary-face and + todos-category-string-face. + (todos-done-separator): Propertize string with todos-done-sep face. + (todos-filtered-items-mode): Fix typo. + +2013-01-23 Stephen Berman + + * calendar/todos.el: Improve handling of saved top priorities items. + (todos-find-item): Find done items and items whose priority has + changed or whose text was truncated or augmented; add doc string. + (todos-check-top-priorities): Highlight each item that is not up + to date. + (todos-jump-to-item): Jump to items whose priority has changed or + whose text was truncated or augmented. + +2013-01-22 Stephen Berman + + * calendar/todos.el: Revise handling of initial display and extend + to top priorities file. + (todos-display-categories-first): Remove, replacing by this: + (todos-show-first): New defcustom. + (todos-first-visit): Remove, replacing by this: + (todos-visited): New variable. + (todos-absolute-file-name): Extend possible values of optional + argument to take top priorities files into account. + (todos-modes-set-3, todos-mode): Remove use of todos-first-visit. + (todos-mode-external-set): Call find-file-noselect instead of + find-buffer-visiting, since the latter may fail. + (todos-show): Revise handling of initial display using + todos-show-first and todos-visited and extend to top priorities + file. + (todos-quit): Adapt to new handling of initial display. + +2013-01-14 Stephen Berman + + * calendar/todos.el: Implement saving top priority items buffers, + improve implementation of item filtering commands and + infrastucture, and fix two bugs. + (todos-prefix-overlays): Use todos-top-priority face only in Todos + mode. + (todos-multiple-filter-files): Get file-truename of Todos file. + (todos-filter-items): Pass a list of files from the caller instead + of building it here, and move handling of cancelled file selection + dialog to callers. Correct omission of file-wide default number + of top priorities. + (todos-filtered-buffer-name): Treat file-list argument only as a list. + (todos-find-item, todos-check-top-priorities) + (todos-top-priorities-filename) + (todos-save-top-priorities-buffer): New functions. + (todos-save): Use todos-save-top-priorities-buffer. + (todos-jump-to-item): Refactor and use todos-find-item. + (todos-top-priorities): Simplify semantics of prefix argument. + Check if top priorities file exists and if so, visit it, reporting + whether it is up to date. Add optional argument and use it to + handle multiple files. + (todos-diary-items, todos-regexp-items): Add optional argument and + use it to handle multiple files. + (todos-top-priorities-multifile, todos-diary-items-multifile) + (todos-regexp-items-multifile): Refactor, using corresponding + non-multifile command. + (auto-mode-alist): Add pattern for top priorities files to visit + these in Todos Filtered Items mode. + +2013-01-08 Stephen Berman + + * calendar/todos.el: Fix tabular alignment in Todos Categories mode. + (todos-adjusted-category-label-length): New function. + (todos-padded-string): Use it. + +2013-01-08 Stephen Berman + + * calendar/todos.el (todos-move-item): Allow moving done items to + done section of another category. + +2013-01-06 Stephen Berman + + * calendar/todos.el: Display numerical priority string of top + priority items in category in a distinctive face. + (todos-prefix-string): Make doc string more precise. + (todos-top-priority): New defface. + (todos-done, todos-done-sep): Use more compact face definition + \(taken from font-lock.el). + (todos-comment): Give a complete face definition, instead of + inheriting from todos-done. + (todos-font-lock-keywords): Use todos-comment-face for + todos-comment-string-matcher. + (todos-prefix-overlays): Use todos-top-priority as the face + property of top priority items; don't condition reapplying item + prefix overlay on whether the string changed, since that prevents + updating display after changing number of top priorities. + (todos-set-top-priorities): Call todos-prefix-overlays to update + display. + +2013-01-04 Stephen Berman + + * calendar/todos.el (todos-reset-global-current-todos-file) + (todos-display-categories-1): Use absolute name of + todos-default-todos-file. + +2013-01-04 Stephen Berman + + * calendar/todos.el (todos-insert-item): Fix copy and paste error + from previous change. + +2013-01-03 Stephen Berman + + * calendar/todos.el: Implement extended category completions. + (todos-default-todos-file): Change default value to correct custom + type. + (todos-category-completions-files): New defcustom. + (todos-reevaluate-category-completions-files-defcustom) + (todos-absolute-file-name, todos-category-completions): New defuns. + (todos-reevaluate-filelist-defcustoms): + Add todos-category-completions-files and + todos-reevaluate-category-completions-files-defcustom. + (todos-allcats-file, todos-all-categories-alist) + (todos-jump-to-category-other-file, todos-jump-to-any-category) + (todos-move-item-to-file): Remove (todos-all-categories-alist both + as defvar and as defun). + (todos-read-category): Rewrite using extended category completions + and better handling of completion against existing or non-existing + categories. + (todos-validate-name): Correct doc string; use local instead of + dynamic variables in function body. + (todos-insert-category-line): Adjust use of todos-jump-to-category + to new argument list. + (todos-key-bindings, todos-menu): Delete entries for removed + commands. + (todos-show): Get absolute name of todos-default-todos-file; + add `nowarn' argument to find-file-noselect; adjust use of + todos-add-category to new argument list. + (todos-jump-to-category): Rewrite using extended category + completions; reverse argument list, adapting FILE argument to new + completion mechanism; add autoload cookie; call todos-show if + there are no Todos files. + (todos-add-category): Rewrite using extended category completions; + add FILE argument to accommodate new completion mechanism. + (todos-merge-category): Adapt to extended category completions, + adding prefix argument. + (todos-insert-item): Adapt to extended category completions; use + todos-read-category instead of todos-jump-to-category in prefix + argument calls; call todos-show if there are no Todos files; if + item is inserted at end of category, recenter to ensure the items + above it are displayed in the window. + (todos-move-item): Adapt to extended category completions, making + argument prefix argument; allow moving within category (for the + sake of code simplification); add `nowarn' argument to + find-file-noselect. + (todos-archive-done-item): Prevent error when attempting to + archive not-done todo item; adjust use of todos-add-category to + new argument list. + +2012-12-15 Stephen Berman + + * calendar/todos.el (todos-archive-done-item): Fix archiving of + all done items in a category and resulting display of todo file. + +2012-12-14 Stephen Berman + + * calendar/todos.el (todos-priorities-rules): Fix customization + type to prevent mismatch error. + (todos-set-top-priorities): Fix rule construction; fix input check; + improve prompt. + +2012-12-14 Stephen Berman + + * calendar/todos.el (todos-insert-item): If user exits Calendar + before choosing a date, cancel item insertion. + (todos-set-date-from-calendar): If user exits Calendar before + choosing a date, clean up properly. + +2012-12-12 Stephen Berman + + * calendar/todos.el: Extend and improve handling of item editing, + especially of date/time header. + (todos-month-name-array, todos-month-abbrev-array): New defconsts. + (todos-date-pattern): Use explicitly numbered groups. + (todos-read-date): Optionally read and return just one of the date + string components year, month or monthname, day. + (todos-key-bindings): Add bindings for new item header editing + commands. + (todos-edit-item): Exclude date/time header from minibuffer by + default; include it by passing a prefix argument. + (todos-edit-item-header-1): New function containing the guts of + the commands for editing item date/time headers. + (todos-edit-item-header): Use it. Condition editing of time + string on value of `todos-always-add-time-string'. + (todos-edit-item-date-from-calendar): Use todos-edit-item-header-1. + (todos-edit-item-date-to-today): Rename from + todos-edit-item-date-is-today and use todos-edit-item-header-1. + (todos-edit-item-date): Remove. + (todos-edit-item-date-day-name, todos-edit-item-date-year) + (todos-edit-item-date-month, todos-edit-item-date-day): New commands. + +2012-12-02 Stephen Berman + + * calendar/todos.el (todos-show): Fix a comment. + (todos-add-category): Prompt for a new category if passed category + is the empty string, not nil. + +2012-11-26 Stephen Berman + + * calendar/todos.el (todos-make-categories-list) + (todos-convert-legacy-files, todos-jump-to-item) + (todos-move-category, todos-merge-category) + (todos-archive-done-item, todos-unarchive-items): Include end of + line in regex searches for beginning of category, in order not to + get a category whose name contains the searched for category name. + +2012-11-15 Stephen Berman + + * calendar/todos.el (todos-forward-category): Fix typo. + +2012-10-30 Stephen Berman + + * calendar/todos.el (todos-define-insertion-command): + Let generated insertion commands accept a prefix argument. + +2012-10-08 Stephen Berman + + * calendar/todos.el (todos-move-item): If user quits before + completing movement, restore display of initial category; if item + is moved to end of target category, make sure the items above it + are displayed in the window. + +2012-10-08 Stephen Berman + + * calendar/todos.el: Fixes to todos-move-item and some of its + subroutines. + (todos-move-item): When there are marked items, point need not be + on an item; remove obsolete use of todos-add-category, since this + is now already done in todos-read-category; fix typo. + (todos-diary-item-p): Exclude empty lines. + (todos-read-category): Restore point and narrowing after adding + new category, to avoid moving to beginning of file when moving + marked items to a new category. + (todos-set-item-priority): Prompt for priority only when the + category has at least one todo item; only use non-nil priority to + calculate insertion location. + (todos-read-category): Don't reset todos-categories when a new + category is added due to todos-move-item or todos-jump-to-item. + +2012-09-24 Stephen Berman + + Changes from 2012-07-14 (revision 110020). + * calendar/todos.el (todos-copy-item): New command. + (todos-insertion-map): Add key binding for it. + +2012-09-24 Stephen Berman + + Changes from 2012-07-13 (revision 110019). + * calendar/todos.el (todos-undo-item-omit-comment): New defcustom. + (todos-item-undo): Use it. + (todos-allcats-file, todos-all-categories-alist): New variables. + (todos-all-categories-alist): New function. + (todos-jump-to-any-category): New command. + (todos-move-item): Remove mark overlays from buffer items were + moved from; update todos-categories-with-marks, + +2012-09-24 Stephen Berman + + Changes from 2012-06-27 (revision 110018). + * calendar/todos.el: Further code rearrangement; further new and + revised comments. + (todos-reevaluate-filelist-defcustoms): Rename from + todos-reevaluate-defcustoms and adjust callers. + (todos-date-pattern, todos-nondiary-start, todos-nondiary-end) + (todos-date-string-start, todos-done-string-start) + (todos-item-start): Change from defvar to defconst. + (todos-set-top-priorities): Use read-number and simplify. + (todos-insert-item): Check whether date-type argument is a string. + (todos-set-date-from-calendar): Check whether + todos-date-from-calendar is a string; simplify cond clause. + (todos-archive-done-item, todos-unarchive-items): + Use buffer-substring-no-properties. + +2012-09-23 Stephen Berman + + Changes from 2012-06-25 (revision 110017). + * calendar/todos.el (todos-item-undo): Fix restoration on + cancelling; use buffer-substring-no-properties; comment out code + removing mark overlay; fix insertion of undone items; display any + remaining done items. + +2012-09-23 Stephen Berman + + Changes from 2012-06-24 (revision 110016). + * calendar/todos.el: Further significant code rearrangement; + further comment revision. + (todos-mode-display): New defgroup. + (todos-prefix, todos-number-priorities) + (todos-done-separator-string, todos-done-string) + (todos-comment-string, todos-show-with-done) + (todos-mode-line-function, todos-skip-archived-categories) + (todos-highlight-item, todos-wrap-lines) + (todos-line-wrapping-function): Use it. + (todos-item-insertion): New defgroup. + (todos-include-in-diary, todos-diary-nonmarking) + (todos-nondiary-marker, todos-always-add-time-string) + (todos-use-only-highlighted-region): Use it. + (todos-forward-button, todos-backward-button): New commands. + (todos-categories-mode-map): Use them, replacing forward-button + and backward-button. + (todos-merge-category): Fix and improve implementation; handle + archived items. + (todos-insert-item, todos-set-date-from-calendar): Handle setting + date by calling todos-insert-item-from-calendar. + (todos-delete-item): Fix overlay handling. + (todos-move-item): Highlight item to be moved. + (todos-item-undo): Handle marked items. + (todos-insert-item-from-calendar): Rewrite using + todos-date-from-calendar. + +2012-09-23 Stephen Berman + + Changes from 2012-06-21 (revision 110015). + * calendar/todos.el: Further comment revision. + (todos-sorted-column): Change default value, also taking tty into + account. + (todos-reset-done-separator): Fix faulty variable binding. + (todos-reset-and-enable-done-separator): Save match data; comment + out code that causes problems for Edebug. + (todos-item-start): Handle empty line between todo and done items + when done items are hidden. + (todos-read-date): Use a leap year for `*' to allow + calendar-last-day-of-month to return Feb. 29. + (todos-archive-mode, todos-edit-mode, todos-categories-mode) + (todos-filtered-items-mode): Delete faulty parentheses. + (todos-quit): Save Todos and archive files unconditionally. + (todos-forward-item): Accept only positive prefix argument. + (todos-backward-item): Accept only positive prefix argument; don't + move point to beginning of buffer if it is on the first item. + (todos-hide-show-date-time): Remove obsolete interactive spec. + (todos-move-category): Improve prompt string; ensure file moved to + is different from file moved from. + (todos-merge-categories): Remove. + (todos-set-category-priority): New command. + (todos-raise-category-priority, todos-lower-category-priority): + Use it to define these commands. + (todos-set-item-priority): Rewrite and generalize. + (todos-raise-item-priority, todos-lower-item-priority): Use it to + define these commands. + +2012-09-23 Stephen Berman + + Changes from 2012-06-15 (revision 110014). + * calendar/todos.el (todos-reset-done-separator) + (todos-reset-and-enable-done-separator): New functions. + (todos-reset-done-separator-string): Rewrite using + todos-reset-done-separator for string longer than 1 character. + (todos-mode): Add todos-reset-and-enable-done-separator to + window-configuration-change-hook, replacing previous anonymous + function. + (todos-unload-hook): And remove it. + +2012-09-23 Stephen Berman + + Changes from 2012-06-14 (revision 110013). + * calendar/todos.el (todos-done-separator-string): New defcustom. + (todos-done-separator): New variable replacing defcustom of the + same name. + (todos-reset-done-separator-string, todos-done-separator): + New functions. + (todos-mode): Make function added to + window-configuration-change-hook do a better job of updating the + done items separator string overlay. + (todos-unload-hook): Remove it here. + (todos-item-undo): Fix search for item's end. + +2012-09-23 Stephen Berman + + Changes from 2012-06-03 (revision 110012). + * calendar/todos.el: Further comment revision. + (todos-sorted-column): Change default value. + (todos-item-start): Handle empty category (needed in + todos-filter-items). + (todos-read-date): Don't use calendar-read; make code cleaner. + (todos-multiple-filter-files): Rename this variable from + todos-multiple-files and adjust users. + (todos-multiple-filter-files-widget): Rename from + todos-multiple-files-widget and adjust users. + (todos-multiple-filter-files): Rename this function from + todos-multiple-files and adjust callers. + (todos-filter-items): Remove unused code. + (todos-insert-category-line): Add space so highlighting of last + column is consistent with the others; adjust display of column + highlighting. + (todos-menu): Remove obsolete entry. + (todos-categories-mode-map): Add new bindings. + (todos-display-categories-alphabetically-or-by-priority): New command. + (todos-display-categories-sorted-by-todo) + (todos-display-categories-sorted-by-diary) + (todos-display-categories-sorted-by-done) + (todos-display-categories-sorted-by-archived): Restore and fix + implementation. + +2012-09-23 Stephen Berman + + Changes from 2012-06-02 (revision 110011). + * calendar/todos.el: Significant code rearrangement; further + comment revision. + (todos-filtered-items-buffer): Rename from todos-filter-buffer and + adjust users. + (todos-filtered-buffer-name): Rename from + todos-special-buffer-name and adjust users. + (todos-filtered-items-mode-map): Rename from + todos-filter-items-mode-map and adjust users. + (todos-mode-external-set): Use todos-categories instead of + todos-set-categories (and add comment to check if this DTRT). + (todos-filtered-items-mode): Rename from todos-filter-items-mode + and adjust users. + (todos-add-category): Don't call todos-validate-name, since + todos-read-category does. + (todos-edit-quit): Use todos-repair-categories-sexp. + (todos-done-item-add-edit-or-delete-comment): Rename from + todos-done-item-add-or-edit-comment and adjust users; add optional + argument to prompt to delete comment. + (todos-item-undo): Delete done item comment on undoing if user + confirms. + +2012-09-22 Stephen Berman + + Changes from 2012-06-02 (revision 110010). + * calendar/todos.el: Further code rearrangement and comment + revision. + (todos-item-start): Handle empty line between todo and done items + when done items are displayed. + (todos-key-bindings): Comment out bindings meant only for + todos-archive-mode. + (todos-archive-mode-map): Fix typo. + (todos-archive-mode): Derive from special-mode instead of + todos-mode to prevent its key bindings from being available here. + (todos-archive-done-item): Remove obsolete code; fix item count + updating. + (todos-unarchive-items): Simplify; fix unarchiving of all items in + category; fix item count updating; fix typo. + +2012-09-22 Stephen Berman + + Changes from 2012-06-01 (revision 110009). + * calendar/todos.el: Further code rearrangement and comment + revision. + (todos-add-to-buffer-list, todos-update-buffer-list): New functions. + (todos-file-buffers): New variable. + (todos-reset-global-current-todos-file): Use it to simplify + implementation of this function. + (todos-filtered): New defgroup. + (todos-filter-buffer, todos-top-priorities-buffer) + (todos-diary-items-buffer, todos-regexp-items-buffer) + (todos-priorities-rules, todos-show-priorities) + (todos-filter-files, todos-filter-done-items): Use it. + (todos-skip-archived-categories): Rename from + todos-ignore-archived-categories and adjust users. + (todos-display-as-todos-file): Rename from todos-after-find-file + and adjust callers. + (todos-reset-highlight-item, todos-mode-external-set) + (todos-jump-to-category, todos-jump-to-item) + (todos-raise-category-priority, todos-insert-item) + (todos-move-item): Use find-file-visiting. + (todos-make-categories-list): Use file-truename. + (todos-display-categories-1): Adjust title text for archive files; + use done label for item counts in archive files. + (todos-modes-set-3): Add todos-display-as-todos-file to + find-file-hook. + (todos-mode): Add todos-add-to-buffer-list to find-file-hook and + todos-update-buffer-list post-command-hook. + (todos-unload-hook): And remove them. + (todos-show): Only when interactively invoked from an archive, + switch to corresponding Todos file. + (todos-archive-done-item): Remove obsolete code; fix handling of + marked items; fix search for existing category; check whether + archive exists and write to file if not; improve display handling. + +2012-09-21 Stephen Berman + + Changes from 2012-05-29 (revision 110008). + * calendar/todos.el: Further comment revision. + (todos-item-end): Replace use of command todos-forward-item by + regexp searches using internal variables. + (todos-raise-category-priority): Improve and comment. + (todos-insert-item): Fix insertion of empty time string. + +2012-09-21 Stephen Berman + + Changes from 2012-05-29 (revision 110007). + * calendar/todos.el (todos-ignore-archived-categories): + Revert last change; remove :initialize and :set functions; change + use and change users accordingly. + (todos-reset-categories, todos-categories-full) + (todos-truncate-categories-list): Remove. + (todos-set-categories, todos-update-categories-sexp): + Use todos-categories instead of todos-categories-full; remove use + of todos-ignore-archived-categories and + todos-truncate-categories-list. + (todos-check-format, todos-repair-categories-sexp): + Use todos-categories instead of todos-categories-full. + (todos-read-category): Improve last change. + (todos-validate-name): Use completing-read. + (todos-categories-category-number): Rename from + todos-category-number and adjust users. + (todos-update-categories-display, todos-mode-external-set) + (todos-delete-category, todos-move-category, todos-merge-category) + (todos-unarchive-items): Remove use of todos-categories-full and + todos-ignore-archived-categories. + (todos-modes-set-3, todos-add-category): Remove use of + todos-categories-full. + (todos-edit-mode): Fix typo. + (todos-forward-category): Use todos-ignore-archived-categories. + +2012-09-21 Stephen Berman + + Changes from 2012-05-28 (revision 110006). + * calendar/todos.el: Doubts about todos-ignore-archived-categories. + (todos-ignore-archived-categories): Change default value. + +2012-09-21 Stephen Berman + + Changes from 2012-05-27 (revision 110005). + * calendar/todos.el: Further comment revision. + (todos-reset-global-current-todos-file): + Try to make this not slow down kill-buffer. + (todos-update-categories-sexp): Handle the case where there is no + categories sexp yet, i.e. after inserting the first item in the + file, so todos-display-categories works. + (todos-read-file-name): Improve implementation. + (todos-validate-name): Use variable todos-files. + (todos-category-number): New variable. + (todos-insert-category-line, todos-update-categories-display) + (todos-raise-category-priority): Use it. + (todos-add-file): Remove unused remnant code. + +2012-09-21 Stephen Berman + + Changes from 2012-05-25 (revision 110004). + * calendar/todos.el: Further comment revision. + (todos-set-item-top-priority): New command. + (todos-reset-global-current-todos-file): + Use todos-files-function instead of todos-files. + (todos-read-category): Add optional argument to test whether + caller adds new category; if so, don't prompt for new category and + don't restore original todos-categories list. + (todos-categories-mode-map): Update to renamed commands. + (todos-filter-items-mode-map): Add binding for new command. + (todos-mode): Fix typo. + (todos-show): If called from archive file, show corresponding + category in Todos file, if it exists. + (todos-jump-to-category): Remove code to add new category, since + todos-read-category can do that. + (todos-add-file): Remove obsolete code; visit new file in selected + window. + (todos-add-category): Simplify. + (todos-rename-category): Use force-mode-line-update instead of + setting mode-line-buffer-identification. + (todos-delete-category): Improve logic of prompts; use + todos-categories-full and check todos-ignore-archived-categories. + (todos-raise-category-priority, todos-lower-category-priority): + Rename from todos-{raise,lower}-category and adjust callers. + (todos-move-category, todos-merge-category): + Set todos-categories-full; on setting todos-categories check + todos-ignore-archived-categories. + (todos-insert-item): Let-bind use-empty-active-region and use + use-region-p instead of transient-mark-mode. + (todos-raise-item-priority): Improve implementation. + (todos-archive-done-item): Rename from + todos-archive-done-item-or-items and adjust callers; confine to + Todos mode. + (todos-unarchive-items): On setting todos-categories check + todos-ignore-archived-categories. + +2012-09-21 Stephen Berman + + Changes from 2012-05-23 (revision 110003). + * calendar/todos.el (todos-key-bindings): Remove binding of + deleted command. + (todos-menu): Remove entry of deleted command. + (todos-show-archive): Fix last change. + (todos-done-item-add-or-edit-comment): Rename from + todos-comment-done-item and adjust callers; prompt to edit an + existing comment. + +2012-09-21 Stephen Berman + + Changes from 2012-05-22 (revision 110002). + * calendar/todos.el (todos-set-show-current-file): Rename from + todos-toggle-show-current-file and adjust callers. + (todos-number-priorities): Rename from todos-number-prefix and + adjust users. + (todos-update-count): Rename from todos-set-count and adjust + callers. + (todos-hide-show-item-numbering): Rename from + todos-toggle-item-numbering and adjust callers. + (todos-hide-show-done-items): Rename from + todos-toggle-view-done-items and adjust callers. + (todos-show-done-only): Rename from todos-toggle-show-done-only. + (todos-view-archived-items): Comment out. + (todos-show-archive): Prompt to choose another archive file if + current Todos file lacks an archive; prompt to visit archive + anyway when current category has no archived items. + +2012-09-21 Stephen Berman + + Changes from 2012-05-21 (revision 110001). + * calendar/todos.el: Further comment revision and code + rearrangement. + (todos-item-end): Revert last change. + (todos-key-bindings, todos-menu, todos-archive-mode-map) + (todos-filter-items-mode-map): Use renamed commands. + (todos-hide-show-date-time): Rename from + todos-toggle-display-date-time. + (todos-mark-unmark-item): Rename from todos-toggle-mark-item and + adjust caller. + (todos-backward-item): Exempt special handling only from + todos-regexp-items-buffer instead of todos-filter-items-mode. + (todos-raise-item-priority): Don't allow item reprioritizing in + Todos filter items mode except for top priority items. + +2012-09-21 Stephen Berman + + Changes from 2012-05-19 (revision 110000). + * calendar/todos.el: Add and revise further doc strings and + comments. + (todos-filter-function, todos-custom-items) + (todos-custom-items-multifile): Remove. + (todos-filter-done-items): New defcustom. + (todos-item-end, todos-backward-item): Handle todos-filter-items-mode. + (todos-filter-items): Check return value of caller first; tag + archived items for todos-jump-to-item; delete categories sexp + before processing filter; check todos-filter-done-items for + whether to leave done items; remove custom filter; fix regexp for + file and category tags; don't invoke buffer fontification. + (powerset-recursive): Fix typo. + (todos-key-bindings): Remove unused bindings. + (todos-top-priorities-multifile, todos-diary-items-multifile) + (todos-regexp-items-multifile): Use variable todos-multiple-files. + (todos-jump-to-item): Fix regexp; handle archive tags; take + todos-filter-done-items into account. + (todos-insert-item-from-calendar): Relocate to end of file + together with key-binding as addition to calendar.el. + +2012-09-20 Stephen Berman + + Changes from 2012-05-17 (revision 109999). + * calendar/todos.el: Add and revise further doc strings and + comments; major code rearrangement. + (todos-merged-files, todos-prompt-merged-files) + (todos-print-priorities, todos-tmp-buffer-name) + (todos-top-priorities-widgets, todos-update-merged-files) + (todos-merged-top-priorities, todos-merged-diary-items) + (todos-merged-regexp-items, todos-merged-custom-items) + (todos-raw-mode, todos-change-default-file) + (todos-toggle-diary-inclusion, todos-toggle-item-diary-nonmarking) + (todos-toggle-diary-nonmarking, todos-validate-category-name): + Remove. + (todos-category-string-matcher): Comment out. + (todos-categories): New defgroup. + (todos-initial-file, todos-filter-buffer) + (todos-top-priorities-buffer, todos-categories-category-label) + (todos-diary-items-buffer, todos-regexp-items-buffer) + (todos-custom-items-buffer, todos-filter-files) + (todos-highlight-item, todos-todo-mode-date-time-regexp): + New defcustoms. + (todos-diary-expired): New face. + (todos-print-buffer, todos-multiple-files) + (todos-multiple-files-widget, todos-key-bindings): New variables. + (todos-short-file-name, todos-reevaluate-default-file-defcustom) + (todos-special-buffer-name) + (todos-reevaluate-filter-files-defcustom) + (todos-reset-highlight-item, todos-reevaluate-defcustoms) + (todos-nondiary-marker-matcher, todos-diary-nonmarking-matcher) + (todos-diary-expired-matcher, todos-category-string-matcher-1) + (todos-category-string-matcher-2, todos-repair-categories-sexp) + (todos-validate-name, todos-multiple-files) + (todos-display-categories-1, todos-update-categories-display) + (todos-modes-set-3, todos-mode-external-set): New functions. + (todos-set-top-priorities-in-file) + (todos-set-top-priorities-in-category) + (todos-top-priorities-multifile, todos-diary-items-multifile) + (todos-regexp-items-multifile, todos-custom-items-multifile) + (todos-convert-legacy-files, todos-jump-to-item) + (todos-edit-multiline-item, todos-edit-item-date-from-calendar) + (todos-edit-item-diary-inclusion) + (todos-edit-category-diary-inclusion) + (todos-edit-item-diary-nonmarking) + (todos-edit-category-diary-nonmarking): New commands. + (todos, todos-faces): Update :version. + (todos-done-separator, todos-completion-ignore-case): + Change default value. + (todos-done-separator): Change :set function. + (todos-indent-to-here): Add :validate function to :type. + (todos-prefix-string, todos-mark, todos-button) + (todos-sorted-column, todos-archived-only, todos-search) + (todos-done, todos-done-sep): Provide full face definitions + instead of inheriting. + (todos-edit-buffer, todos-categories-buffer): Change from + defcustom to defvar. + (todos-category-beg, todos-category-done): Change from defvar to + defconst. + (todos-files): Check if todos-files-directory exists. + (todos-default-todos-file, todos-mode-line-control, todos-print): + Use todos-short-file-name. + (todos-font-lock-keywords): Use todos-nondiary-marker-matcher, + todos-diary-nonmarking-matcher, todos-category-string-matcher-1, + todos-category-string-matcher-2, todos-diary-expired-matcher. + (todos-category-select): Use todos-done-string-start, and + condition search on todos-show-with-done; don't make display + overlay for done items separator string if there already is one; + use todos-highlight-item, require hl-line and activate + hl-line-mode here in order to avoid a hang if done in todos-mode + or the mode hook. + (todos-update-categories-sexp): Use todos-categories-full if set, + otherwise todos-categories. + (todos-make-categories-list): Don't test for archive file when + processing a legacy todo-mode file. + (todos-check-format): Add check for todos-categories sexp. + (todos-diary-item-p): Use todos-nondiary-start instead of + todos-date-pattern. + (todos-marked-item-p): Rename from todos-item-marked-p. + (todos-read-file-name): Don't accept empty name; validate. + (todos-read-category): Validate new name before prompting whether + to add new category; force quit if user answers no. + (todos-filter-items): Improve implementation. + (todos-set-top-priorities): Rewrite as a noninteractive function + using minibuffer input instead of widgets. + (todos-insert-sort-button): Call todos-display-sorted with + argument nil to display categories in numerical order, instead of + calling todos-display-categories. + (powerset-recursive): Borrow and slightly reformulate the (GDFL'd) + Common Lisp powerset function at + http://rosettacode.org/wiki/Power_set#Common_Lisp. + (powerset-bitwise): Implement in Emacs Lisp the (GDFL'd) C + powerset function at http://rosettacode.org/wiki/Power_set#C. + (todos-powerset): Defalias to powerset-bitwise. + (todos-mode-map): Generate from todos-key-bindings instead of + listing each key definition. + (todos-categories-mode-map): Add two bindings. + (todos-filter-items-mode-map): Add some bindings, remove others. + (todos-mode): Derive from special-mode; use todos-modes-set-3; add + function setting todos-done-separator to + window-configuration-change-hook. + (todos-unload-hook): Remove function setting todos-done-separator + from window-configuration-change-hook. + (todos-archive-mode): Derive from todos-mode; use todos-modes-set-3. + (todos-edit-mode): Derive from text-mode; use todos-mode-external-set. + (todos-categories-mode): Derive from special-mode; use + todos-mode-external-set. + (todos-filter-items-mode): Derive from special-mode. + (todos-quit): Save archive file if it hasn't yet been saved. + (todos-display-categories): Delegate all functionality to + todos-display-categories-1 and todos-update-categories-display. + (todos-toggle-view-done-items): Improve implementation. + (todos-highlight-item): Require hl-line. + (todos-toggle-display-date-time): Remove argument and make it + apply only to whole file. + (todos-top-priorities, todos-diary-items, todos-regexp-items) + (todos-custom-items): Use todos-special-buffer-name. + (todos-add-file): Use todos-short-file-name and + todos-reevaluate-defcustoms; remove validation, since it's now + done in todos-read-file-name. + (todos-add-category): Also update todos-categories-full if non-nil. + (todos-delete-category): Delete file after confirmation if only + category is deleted. + (todos-move-category): Use todos-short-file-name and + todos-reevaluate-defcustoms. + (todos-insert-item): Fix getting date from the calendar and + insertion of time string. + (todos-set-date-from-calendar): Enter calendar buffer, suppressing + display of diary entries. + (todos-edit-multiline): Add optional argument to restrict editing + buffer to current item, otherwise make entire buffer (i.e. whole + file) editable. + (todos-edit-quit): When whole file is editable, check file format + validity before killing buffer, and if valid, recalculate + categories sexp to be safe. + (todos-edit-item-header): Allow choosing date from calendar. + (todos-item-done): Handle marked items. + +2012-09-19 Stephen Berman + + Changes from 2011-12-03 (revision 109998). + * calendar/todos.el (todos-item-start): Restore commented out code + to prevent wrongly moving point in widened buffer. + +2012-09-19 Stephen Berman + + Changes from 2011-12-02 (revision 109997). + * calendar/todos.el: Remove old commentary from todo-mode.el; add + and revise further doc strings and comments; require cl.el at + compile time for remove-duplicates; use function powerset from + http://rosettacode.org/wiki/Power_set#Common_Lisp (GFDL); further + code rearrangement. Add adapted version of diary-goto-entry as comment. + (todos-file-top, todos-archived-categories-buffer) + (todos-save-top-priorities-too, todos-toggle-item-diary-inclusion) + (todos-save-top-priorities, todos-reset-separator) + (todos-switch-todos-file, todos-item-string-start, todos-counts) + (todos-string-count-lines, todos-string-multiline-p) + (todos-display-categories-alphabetically): Remove. + (todos-insert-item-ask-date, todos-insert-item-ask-date-time) + (todos-insert-item-ask-date-time-for-diary) + (todos-insert-item-ask-date-time-for-diary-here) + (todos-insert-item-ask-date-time-here) + (todos-insert-item-ask-date-maybe-notime) + (todos-insert-item-ask-date-maybe-notime-for-diary) + (todos-insert-item-ask-date-maybe-notime-for-diary-here) + (todos-insert-item-ask-date-maybe-notime-here) + (todos-insert-item-ask-date-for-diary) + (todos-insert-item-ask-date-for-diary-here) + (todos-insert-item-ask-date-here, todos-insert-item-ask-dayname) + (todos-insert-item-ask-dayname-time) + (todos-insert-item-ask-dayname-time-for-diary) + (todos-insert-item-ask-dayname-time-for-diary-here) + (todos-insert-item-ask-dayname-time-here) + (todos-insert-item-ask-dayname-maybe-notime) + (todos-insert-item-ask-dayname-maybe-notime-for-diary) + (todos-insert-item-ask-dayname-maybe-notime-for-diary-here) + (todos-insert-item-ask-dayname-maybe-notime-here) + (todos-insert-item-ask-dayname-for-diary) + (todos-insert-item-ask-dayname-for-diary-here) + (todos-insert-item-ask-dayname-here, todos-insert-item-ask-time) + (todos-insert-item-ask-time-for-diary) + (todos-insert-item-ask-time-for-diary-here) + (todos-insert-item-ask-time-here) + (todos-insert-item-maybe-notime) + (todos-insert-item-maybe-notime-for-diary) + (todos-insert-item-maybe-notime-for-diary-here) + (todos-insert-item-maybe-notime-here) + (todos-insert-item-for-diary, todos-insert-item-for-diary-here) + (todos-insert-item-here): Remove; all of these are now generated + on loading (some with the same name, most with other names.) + (todos-item-counts, todos-display-categories-alphabetically) + (todos-display-categories-sorted-by-todo) + (todos-display-categories-sorted-by-diary) + (todos-display-categories-sorted-by-done) + (todos-display-categories-sorted-by-archived): Comment out. + (todos-comment-string, todos-mode-line-function) + (todos-filter-function, todos-priorities-rules) + (todos-visit-files-commands, todos-categories-totals-label) + (todos-use-only-highlighted-region, todos-diary-nonmarking): + New defcustoms. + (todos-mark, todos-comment): New faces. + (todos-comment-face): Corresponding new variable. + (todos-categories-full, todos-global-current-todos-file) + (todos-first-visit, todos-insertion-commands-args-genlist) + (todos-insertion-commands-args, todos-insertion-commands-names) + (todos-insertion-commands, todos-insertion-commands-arg-key-list) + (todos-top-priorities-widgets, todos-date-from-calendar) + (todos-item-mark, todos-categories-with-marks): New variables. + (todos-mode-line-control, todos-reset-global-current-todos-file) + (todos-gen-arglists, todos-insertion-command-name) + (todos-insertion-key-bindings, todos-unload-hook) + (todos-filter-items, todos-set-date-from-calendar) + (todos-comment-string-matcher, todos-after-find-file) + (todos-reset-nondiary-marker, todos-reset-done-string) + (todos-reset-comment-string, todos-show-current-file) + (todos-item-marked-p, todos-total-item-counts): New functions. + (todos-define-insertion-command): New macro. + (todos-toggle-mark-item, todos-mark-category) + (todos-unmark-category, todos-set-top-priorities) + (todos-merged-diary-items, todos-regexp-items) + (todos-merged-regexp-items, todos-custom-items) + (todos-merged-custom-items, todos-comment-done-item) + (todos-archive-category-done-items, todos-unarchive-items) + (todos-print-to-file): New commands. + (todos-done-separator): Change :set function. + (todos-done-string): Uncomment :initialize and :set functions. + (todos-files): Use file-truename. + (todos-show-current-file): Rename from + todos-auto-switch-todos-file and change :set function accordingly. + (todos-font-lock-keywords): Use todos-comment-string-matcher; + change names of other matcher functions to new *-matcher. + (todos-category-number): Change initial value. + (todos-insertion-map): Use todos-insertion-key-bindings to + generate key definitions. + (todos-mode-map): Don't suppress digit keys, so they can supply + prefix arguments; add new and change some existing bindings. + (todos-archive-mode-map): Change a key binding. + (todos-categories-mode-map): Comment out a key binding. + (todos-filter-items-mode-map): Rename from + todos-top-priorities-mode-map. + (todos-mode): Make todos-current-todos-file, + todos-categories-full, todos-categories, todos-first-visit, + todos-category-number, todos-show-done-only, + todos-categories-with-marks local variables and set them; add + todos-show-current-file to pre-command-hook, todos-after-find-file + to post-command-hook and todos-reset-global-current-todos-file to + kill-buffer-hook. + (todos-archive-mode): Make todos-current-todos-file, + todos-categories and todos-category-number local variables and set + them; add todos-after-find-file to post-command-hook. + (todos-raw-mode): New derived major mode. + (todos-categories-mode): Don't set font-lock-defaults and + buffer-read-only; make todos-current-todos-file and + todos-categories local variables and set them. + (todos-filter-items-mode): Rename from todos-top-priorities-mode-map. + (todos-quit): Don't reset todos-categories on quitting + todos-categories-mode; handle quitting todos-filter-items-mode. + (todos-show): Simplify; when visiting an archive file switch to + corresponding Todos file; use todos-first-visit. + (todos-view-archived-items): Simplify; call todos-category-number. + (todos-show-archive): Rename from todos-switch-to-archive and + adjust callers; simplify. + (todos-toggle-display-date-time): Add optional argument to toggle + display in entire file. + (todos-top-priorities): Use todos-filter-items, which now contains + the previous core of this command. + (todos-merged-top-priorities, todos-diary-items): + Use todos-filter-items. + (todos-forward-category): Add optional argument to go to the + previous category. + (todos-backward-category): Use todos-forward-category. + (todos-jump-to-category): Refine implementation. + (todos-forward-item, todos-backward-item): Fix movement from todo + to done item and vice versa. + (todos-add-file): Remove argument and simplify. + (todos-rename-category): Use todos-current-todos-file and + todos-mode-line-function; set todos-categories with + todos-set-categories. + (todos-delete-category): Ask what to do if category has archived items. + (todos-raise-category): Ensure modified todos-categories is added + to file's categories sexp. + (todos-move-category): Improve implementation, especially handling + of archived categories. + (todos-merge-category): Tweak; set item counts. + (todos-insert-item): Improve handling of various argument values; + add new argument values to control marking of diary items and to + use region for item body. + (todos-insert-item-from-calendar): Use todos-global-current-todos-file. + (todos-delete-item, todos-edit-item-header): Handle marked items. + (todos-edit-item): Incorporate functionality of removed + todos-string-multiline-p. + (todos-edit-multiline): Use set-window-buffer instead of + switch-to-buffer. + (todos-edit-quit): Don't save on quitting; use todos-show instead + of todos-category-select. + (todos-raise-item-priority): Add argument to lower priority; + improve handling of top priority items in todos-filter-items-mode; + restore marks. + (todos-lower-item-priority): Use todos-raise-item-priority. + (todos-set-item-priority): Increment maximum number if item is new. + (todos-move-item): Handle marked items; delay changing category + moved from till after movement to avoid restoring if user cancels + before insertion. + (todos-item-done): Add optional argument to insert comment; fix + item counts and update sexp. + (todos-item-undo): Fix item counts and update. + (todos-archive-done-item-or-items): Rename from + todos-archive-done-items; add optional argument to archive all + items in category; handle marked items. + (todos-unarchive-category): Use todos-unarchive-items. + (todos-toggle-diary-inclusion): Incorporate functionality of + removed todos-toggle-item-diary-inclusion; handle marked items. + (todos-print): Add optional argument to print to file. + (todos-done-string-start): Don't use todos-nondiary-start. + (todos-date-string-matcher, todos-time-string-matcher) + (todos-done-string-matcher, todos-category-string-matcher): Rename + from *-match and adjust callers. + (todos-wrap-and-indent): Use set instead of setq for local variables. + (todos-prefix-overlays): Improve overlay handling. + (todos-reset-categories): Fix and complete implementation. + (todos-toggle-show-current-file): Rename from + todos-toggle-switch-todos-file-noninteractively. + (todos-category-select): Use todos-mode-line-function. + (todos-item-start): Comment out code used by removed function. + (todos-remove-item): Handle presence of both prefix/number and + mark overlays. + (todos-get-count): Simplify. + (todos-set-count): Change argument list and adjust callers; simplify. + (todos-set-categories): Handle new archive files; use + todos-categories-full and todos-ignore-archived-categories. + (todos-truncate-categories-list): Use todos-categories-full. + (todos-update-categories-sexp): Use kill-region instead of + kill-line; use todos-categories-full. + (todos-read-file-name): Add argument to require existing file and + adjust callers; use file-truename. + (todos-read-category): Remove argument to require existing + category and delegate it to completing-read in function body. + (todos-validate-category-name): Make empty string prompt only for + initial category name. + (todos-read-date): Use = instead of eq for testing if month = 13, + and if it is, set monthname to *. + (todos-display-categories): Use todos-global-current-todos-file; + use set-window-buffer instead of switch-to-buffer; add a line + showing item count totals. + (todos-padded-string): Use the longest of category name or label. + (todos-descending-counts): Rename from + todos-descending-counts-store and adjust users. + (todos-insert-category-line): Adjust format; use mapconcat; kill + buffer after jumping to category. + 2012-09-18 Stephen Berman + Changes from 2011-05-16 (revision 109996). * calendar/todos.el Add and revise various doc strings, remove further commented out code; add further comments; further code rearrangement. @@ -87,7 +1114,7 @@ Todos files; change display to include category (and file) name as part of item header; use todos-top-priorities-mode. (todos-diary-items): Reimplement using only todos-top-priorities. - (todos-forward-category, todos-backward-category): Accommodate to + (todos-forward-category, todos-backward-category): Adjust to 1-based numbering of categories; move point to top of category. (todos-jump-to-category): Rewrite, adding optional arguments to provide a category in non-interactive uses and to prompt for which @@ -104,8 +1131,8 @@ (todos-delete-category): Use todos-get-count and todos-update-categories-sexp, let-bind variable that were mistakenly global; use delete-region instead of kill-region; - accommodate to 1-based numbering of categories; move point to top - of category. + adjust to 1-based numbering of categories; move point to top of + category. (todos-raise-category): Handle item count vectors; use todos-insert-category-line and todos-update-categories-sexp. (todos-insert-item): Use nil time-string argument to omit time @@ -169,7 +1196,7 @@ (todos-item-done): Handle diary items; simplify handling of insertion in done items section. (todos-item-undo): Handle diary items. - (todos-archive-done-items): Accommodate to new handling of archive + (todos-archive-done-items): Adjust to new handling of archive files (in parallel with Todos files); handle diary items; use todos-done-string-start. (todos-toggle-item-diary-inclusion): Use todos-nondiary-start, @@ -192,8 +1219,7 @@ (todos-reset-separator): Handle archive files. (todos-category-number): Make category number one more than its list index. - (todos-current-category): Accommodate to 1-based numbering of - categories. + (todos-current-category): Adjust to 1-based numbering of categories. (todos-category-select): Simplify handling of done items and done separator string overlay. (todos-item-start): Use todos-date-string-start and @@ -225,6 +1251,7 @@ 2012-09-14 Stephen Berman + Changes from 2010-07-09 (revision 109995). * calendar/todos.el Remove lots of commented out code; add various comments; further code rearrangement. (todos-insert-item-here-ask-date-time) @@ -290,6 +1317,7 @@ 2012-09-13 Stephen Berman + Changes from 2010-06-18 (revision 109994). * calendar/todos.el: Numerous spelling and comment fixes, doc string fixes to conform with checkdoc, further rearrangement of definitions, etc. @@ -385,6 +1413,7 @@ 2012-09-13 Stephen Berman + Changes from 2010-05-25 (revision 109993). * calendar/todos.el: Comment out calendar require, since diary-lib requires calendar. Rearrange file to group definitions according to their use (types of commands, internal functions, etc.) @@ -479,6 +1508,7 @@ 2012-09-12 Stephen Berman + Changes from 2009-11-07 (revision 109992). * calendar/todos.el: Comment out time-stamp require; require calendar and diary-lib. (todos-prefix): Change default value and doc string to reflect new @@ -537,6 +1567,7 @@ 2012-09-12 Stephen Berman + Changes from 2009-07-04 (revision 109991). * calendar/todos.el (todos-window-configuration): Comment out. (todos-display-categories): Comment out use of todos-window-configuration; use switch-to-buffer instead of @@ -550,6 +1581,7 @@ 2012-09-12 Stephen Berman + Changes from 2009-06-26 (revision 109989). * calendar/todos.el (todos-file-do, todos-file-done): Change default location to directory "~/.emacs.d/". (todos-completion-ignore-case, todos-categories-buffer): @@ -573,11 +1605,13 @@ 2012-09-12 Stephen Berman + Changes from 2009-02-16 (revision 109988). * calendar/todos.el (todos-list-categories): Fix typos. (todos-show): Ensure file is in todos-mode. 2012-09-12 Stephen Berman + Changes from 2009-02-12 (revision 109987). * calendar/todos.el (todos-header): Remove defvar. (todos-add-category): Comment out code that inserts and updates the file local variables first line of the file todos-file-do. @@ -586,6 +1620,7 @@ 2012-09-11 Stephen Berman + Changes from 2009-02-12 (revision 109986). * calendar/todos.el: New file. This is a copy of todo-mode.el from revision 94343 except for the following changes: replace all occurrences of the namespace prefix "todo-" with "todos-", delete