All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
2.13.0 - 2024-12-25
- listpri action allows concatenation of multiple priorities [-ranges]
- replace action completely merges any combination of priority / date with existing (#386)
- Check for broken symlinks to custom actions and complain (#359)
- Add .sh extension to completion script
- Reuse the todo.sh alias for completion
- Return from user prompt without requiring Enter (#354)
- Default to user writable directory in config (#148)
- Fix problem with spaces in directory path (#276)
- pri action takes multiple items + priorities on single run (#346)
2.12.0 - 2020-08-11
- Added default priority variable
TODOTXT_PRIORITY_ON_ADD
(#246) - Added
done
option as alias ofdo
(#169) - Added macOS 10.15.x support (#300)
- Highlighting of dates, metadata and item numbers (#264)
- Minimal config file / default filenames (todo.txt, done.txt, report.txt) (#289)
- Enable file completion for add-on actions via
_todo_file{1,2,3}_actions
(#270) - Allow to customize what can be before / inside / after
+project
and@context
(#271)
- Read the task's name and uses as default (#249)
- Updated interpreter reference to use environment variable (#160)
- Allow setting of bash completion path (#301)
- Fixed no end-of-line bug. Supports todos with no end-of-line. (#295)
2.11.0 - 2018-03-26
- Added support for
$XDG_CONFIG_HOME
config file/actions location - Created CODE_OF_CONDUCT.md (#217)
- Created CHANGELOG.md (#218)
- Updated
add
command to accept lowercase priority (#230) - Clean tests and version file in Makefile. Don't ignore errors in tests.
- Updated README.md (#219)
- Update Downloads links to point at the Releases page (#228)
- Set the executable bit when preparing releases (#156)
- Update links to use https
- Suppress todo.sh error messages when invoked during completion (#8)
2.10.0 - 2013-12-06
- Enable term filtering for listcon.
- Add make install command.
- Enable use of global config file in
/etc/todo/config
.make install
installs a global config file. - Allow use of
post_filter_command
forlistall
andlistpri
. - Print usage help for custom action and all passed actions.
- Allow configuring null data files (done.txt and report.txt) and don't create them.
- Color contexts and projects without an add-on, just by setting vars in the config file.
- Place add-ons in subfolders (for easier git clone).
- Improve code commenting/documentation.
- Refactor code for speed/better organization.
- Improve test coverage and test library.
- Removed add date from line completion, ie,
todo.sh ls 10[tab]
.
- Properly replace date when replacing task with priority and date.
- Handle
-h
,shorthelp
, andhelp
when a Fatal Error happens. - Fix
todo_completion
problem with Bash 3.1.
2.9.0 - 2012-04-08
- Added tab auto-completion of projects and contexts from
todo.txt
anddone.txt
. Type@<Tab>
or+<Tab>
while entering a task. - Added new listaddons command displays installed addons.
- List priorities within a range using listpri. For example, to see tasks prioritized A-B, use
todo.sh listpri A-B
- Fixed various cosmetic issues, bugs, and added developer test library enhancements.
2.8.0 - 2011-09-13
listpri
/lsp
now filters by term. For example,todo.sh lsp A book
will only return tasks prioritizedA
with the word book in them.- Added support for todo directory paths with spaces in them.
- Tasks with priority included and auto prepend date on (
-t
) get the date where expected. - Smarter action completion messaging:
do
,pri
, anddepri
all let you know if a task is already done, prioritized, or deprioritized. - Made more parameters available to offer more control to custom actions (
-c
,-A
,-N
,-T
)
- Improved portability for Dropbox or USB key users. If not specified, todo.sh checks for a config file in its own directory; default todo.txt location is todo.sh's directory.
- Improved script performance thanks to optimized code
- Exposed
cleaninput()
for use in addons - Improved testing framework:
- Better escaped input handling
- Abstracted make_action function to test custom action behavior
- Added tests for source code compliance
- Cleaner, simpler, modernized, optimized code
- Custom action output no longer prefaced by
TODO:
so it's easier to see when the core script vs. addon is performing an action listpri
complains if specified priority is invalid- Don't abort task listing when items contain certain escape sequences (
\c \033
) - Condense whitespace ONLY whe task is quoted; automatically convert CRLF to space
- Don't delete
|
(pipe) from task input -+
and-@
no longer break task coloring if context or project appears at the end of the line
2.7.0 - 2010-08-03
- Added generalization of the PRI_X color support to all priorities
- Added highlighting of done, but not yet archived tasks via COLOR_DONE
- Color map (BLACK, ...) now supports spaces in the color definitions, making it possible to override the default ANSI escape codes with e.g. Conky tags (
${color black}
)
- Cleanup: help messages, consistent output messages
- Exporting
die()
function for use in custom commands prepend
andreplace
actions keep prepended date,append
considers sentence delimiters- Tests: several regression tests added
2.6.0 - 2010-05-11
- Added a case for the fixed replace command.
- Changed odd tabs to spaces.
- Faster help/usage document outputs.
- Consolidated
TODOTXT_VERBOSE
tests. - Refactored various add functionality to one function.
- Updated
_list()
output to match updatedaddto
.
- Quoting regexp to parse properly.
- Fixed erroneous hide/show comments.
- Correctly fixed regexp quoting issue for bash v3.1.x and v3.2.x.
- Old versions of bash do not have
=~
- Fix line endings.
- Fixed bug for replace command.
2.5.0 - 2010-05-05
- Support use of
$HOME/.todo/
for all todo.sh configuration - Added new multiple do capability to help message
- Added option to disable final filter
- Added a new variable
$TODO_FULL_SH
- Added new action
addm
- Added support PAGER pipe for help output
- Added some additional mappings, plus a project context
- Added 'silent' to a bunch of calls
- Fixing prepend and priority issue.
- Replace with
priority
set - Multiple
do
items prepend
not correct on prioritized tasks- Invalid date range. Changed regex
[ -~]
to[ ~-]
. do
: no safeguard todo
twice. Tests item is not marked done before attempting to mark item as "done".- Fixed
add
does not escape line breaks append
andreplace
unexpected behavior if there's an&
in task (even in quotes)- Tasks whose
ID
begins with0
ought to be ignored. - Fixed auto-complete function name for contexts
2.4.0 - 2009-05-11
- Added support for
TODOTXT_FINAL_FILTER
to provide a final custom list filter. - Added support for custom sorting (can set in
todo.cfg
) - Added parameterize for
.todo.actions.d
directory
- Removed annoying trailing space on
pri
tasks - Don't set colors in default
todo.cfg
. - Don't set sort command in default
todo.cfg
.
listcon
andlistproj
now work correctly on Mac OS X 10.5pri
accepted priorities of more than a single letter- Support commands combination for
TODOTXT_SORT_COMMAND
; e.g. piped commands can be used:export TODOTXT_SORT_COMMAND=" env LC_COLLATE=C sort -f -k2 - | grep -m 10 ."
- Replace now echoes old item AND new item, like it used to.
depri
no longer wipes out tasks with more than just the priority in parentheses- Now throws an error if you try to prioritize with more than one letter, ie,
todo.sh pri AA
doesn't work any more.
2.3.0 - 2009-04-02
- Added hide priority, context, and projects options now enabled
-P
,-@
and-+
- Enabled recursive call of todo.sh from add-ons
- Exported variables for use in add-ons
- Added
-vv
option for debugging output - Added short usage statement (that fits on one screen) with
-h
- Added Makefile dist infrastructure for versioned releases in Downloads area on GitHub
- Separated
_list
function for reuse by various versions of list command to reduce duplicate code - Set
ls
as the default action
2.2.0 - 2009-03-??
- For awhile here during the GitHub transition, we stripped the version number from todo.sh and updated it kind of willy-nilly, so we're back-versioning all unversioned copies v 2.2.
2.1.0 - 2009-02-23
- Added "pluggability" with
~/.todo.actions.d/
support (via Tammy and Ed) - Added
-t
param, off by default. When specified, it automatically prepends the current date to new todo's on add - Searches for more Unix-y
~/.todo.cfg
if~/todo.cfg
doesn't exist (via Ed)
- Corrected "ambiguous redirect" bug with done file (via Jeff)
- Corrected usage and help message with new params
- Corrected config file miscomment about colors
2.0.1 - 2009-02-17
- Restored
-d
parameter functionality broken in 2.0 (d'oh, thanks Jason, you made the changelog! )
2.0.0 - 2009-02-17
- Added
addto [DEST] "Text to add"
will append text to any file in the todo directory, likeideas.txt
ormaybelater.txt
. - Added
mv # [DEST]
will move a task fromtodo.txt
to another file[DEST]
in the todo directory, like if you decide your"Learn French"
task should go into yourmaybelater.txt
file. depri #
removes priority from a task.rm # [TERM]
ordel # [TERM]
will delete just the[TERM]
from the task on line # in todo.txt.listfile [SRC] [TERM]
orlf [SRC] [TERM]
will list the contents of any text file in the todo directory, and filter by keyword[TERM]
.listcon
(lsc
) andlistproj
(lsprj
) lists contexts and projects, respectively, that appear in todo.txt. (Requiresgawk
)- On task deletion, line number preservation is on by default (known issue, leaves blank lines). Optional, can be turned off with
-n
option. - Auto-archive on task completion is now on by default; can be turned off with
-a
parameter.
- Separated config file into a non hidden dot file.
- Better error handling throughout for all commands.
- Archive now defrags the file (removes blank lines; see line preservation option.)
- Using
/bin/bash
instead of/bin/sh
1.7.3 - 2006-07-29
- Added short action aliases –
add/a
,list/ls
,listpri/lsp
,listall/lsa
,prepend/prep
,append/app
,del/rm
1.7.2 - 2006-07-28
listpri
automatically capitalizes lowercase prioritieslistpri
now displays friendly error message, and the # of tasks returned in verbose mode
do
action removes priority from task automatically Update:
- Actions are now case-insensitive (ie,
todo.sh Add
will work)
1.7.1 - 2006-07-21
- I'm a big dummy and didn't keep track of what I fixed here. Sorry!
1.7.0 - 2006-07-19
- Interactive
add
,append
,prepend
, andreplace
(tx, Ben!) - Action
listall
displays tasks from both todo.txt and done.txt - Option
-f
forces delete action and disables interactive input (for todobot.pl) - Option
-h
displays full help message.
- Option
-q
deprecated; Use-v
to turn on verbose mode
- A very short version of usage message displays by default instead of the long version.
- Comment in info about
.todo
file being required
- No colors display for done tasks (tx, Tanja!)
- Sort is now case-insensitive (tx, Lonnie!)
1.6.3 - 2006-07-06
- Line numbers now padded, up to 100 characters. (tx, Tanja!)
1.6.2 - 2006-07-05
- Windows config files with spaces now work (tx Ron)
1.6.1 - 2006-07-05
- The default location of your
.todo
file is now$HOME/.todo
- No colors mode (
-p
) now works as expected
1.6.0 - 2006-07-04
- Action
prepend
adds text to an item at the beginning of the line. - Configuration file is now separated from script into
.todo
file - Specify a config file other than
.todo
using the-d
option - Option
-q
quiets todo.sh's chattiness. - Option
-V
shows version and license information.
- The option to turn off colors is now
-p
(no longer-nc
as in 1.5.2)
1.5.2 - 2006-06-26
- Items that start with
x
(an x with a space after) are archived now to avoid lines that start with a word likexander
from being archived. (tx, Tannie!) - Report now only archives items that start with
x
as well.
1.5.1 - 2006-06-26
- Items with an
x
in them at all were being deleted on archive with 1.5; all fixed now.
1.5.0 - 2006-06-24
- Option to turn off colors (to avoid characters in piped text files or IM bot), ie
todo.sh -nc [COMMAND]
- A date is added to a completed todo, ie
x 2006-06-24
(tx SETH) - Action
remdup
removes exact duplicate lines from todo.txt (tx Tannie) - Action
del
removes any blank lines from todo.txt (tx Tannie)
- Using
sed -i
instead of copying tmp file (tx Tannie)
- Colors show in OS/X 10.4 (tx SETH & misha)
1.4.0 - 2006-06-17
- Tasks are color-coded by priority in Cygwin (Thanks, Abraham, Manuel and Luis!)
- Switched endless
if-then
to acase
statement, and tightened upwc -l
regex. (Thanks, Sash!)
- If you
replace
/do
/append
to a non-existent task, your todo.txt is no longer overwritten and the error is handled gracefully. (Thanks, Scott!)
1.3.0 - 2006-05-29
- Displays the number of newly added todo (Thanks, Amy!)
- Confirms whether or not you really want to delete a todo
- Displays success messages and confirmations on
append
,replace
,do
, etc. - Added licensing information in comments. GPL, baby!
- Alphabetized command workflow in if/then construction
- Tightened up
sed
commands, removed unnecessarygrep
s andcat
s (Thanks, Sash!) - Stripped whitespace around number lines from wc results
- Removed filenames from
report.txt
format, for easier graphing or Excel imports.
- Todos are now sorted alphabetically when listed by a term. (ie: `todo list flowers)
1.2.0 - 2006-05-15
list
is case insensitive. ie,todo list Mac
will match lines with "mac" and "Mac"
todo list
matches multiple [TERM]s. ie,todo list mac offline
will match all lines that contain the words "mac" and "offline"repri
andpri
actions combined intopri
action (Thanks Mike!)- Quotes no longer required with
add
andreplace
(Thanks Karl!) - Any priority added to a todo must be uppercase to preserve sort order, enforced now. ie
todo pri 1 a
will return a usage error.
- File "sanity checks" and cleanup function, test script and various fantastic stylistic improvements added. Extra big thanks to Karl!
1.1.0 - 2006-05-12
- Supports file paths with spaces (ie
C:\Documents and Settings\gina\todo.txt
)
- Consolidated into one master script with usage notes and released.