DEPRECATED: This package will no longer be maintained by me since I have switched permanently to VSCode.
Finds all TODO, FIXME, CHANGED, XXX, IDEA, HACK, NOTE, REVIEW, NB, BUG, QUESTION, COMBAK, TEMP comments in your project and shows them in a nice overview list.
Attention: This package searches for todos. For todo word highlighting see language-todo.
Open todo list using command palette Todo Show: Find In Workspace
, Todo Show: Find In Project
or Todo Show: Find In Open Files
. Keyboard shortcuts CTRL + SHIFT + T on Mac OSX or ALT + SHIFT + T on Windows and Linux.
Install with apm install todo-show
or use Install Packages from Atom Settings.
Five different scopes are available to narrow down your search for todos. Change scope using the button at the top of the todo view or use the corresponding command.
- Workspace: Searches all open projects.
- Project: Searches active project (a project is marked as active when you open a file it contains).
- Open Files: Searches currently open files.
- Active File: Searches last active file only.
- Custom: Tree view has a context menu to search for todos in the selected folder or file.
Name | Default | Description |
---|---|---|
autoRefresh | true |
Automatic refresh of todo list after saving |
findTheseTodos | ['FIXME', 'TODO', 'CHANGED', 'XXX', 'IDEA', 'HACK', 'NOTE', 'REVIEW', 'NB', 'BUG', 'QUESTION', 'COMBAK', 'TEMP'] |
An array of todo types used by the search regex |
findUsingRegex | See 'Regular Expression Search' section | Regex string used to find all your todos. ${TODOS} is replaced with FindTheseTodos from above |
ignoreThesePaths | ['node_modules', 'vendor', 'bower_components', '*.pdf'] |
An array of files / folders to exclude (syntax according to scandal used internally by Atom). ⚬ globally: Ignored Names from atom core settings. ⚬ locally: Ignores anything in your .gitignore file, if the current project is a valid git repository and atom core setting Exclude VCS Ignored Paths is checked. |
showInTable | ['Text', 'Type', 'Path'] |
An array of properties to show for each todo in table |
sortBy | 'Text' |
Sort table by this todo property |
sortAscending | true |
Sort table in ascending or descending order |
exportAs | 'List' |
Choose which format to use for exported markdown |
statusBarIndicator | false |
Show todo count in status bar (this is only shown and updated when the 'Todo Show' tab is open) |
The regexes in findTheseRegexes
are used for searching the workspace for todo matches. They are configurable to match the users specific needs.
Default regex string: '/\\b(${TODOS})[:;.,]?\\d*($|\\s.*$|\\(.*$)/g'
\b
start at word boundary${TODOS}
todo type match (is replaced withfindTheseTodos
)[:;.,]?
optional separator after type\d*
optional digits for supporting imdone sorting$
to end todos without additional text (newline)- Or
\s.*$
to match the todo text with a non-optional space in front - Or an immediate parentheses,
\(.*$
, to support Google style guide IDs - Because Atom config only accepts strings all
\
characters are also escaped
To extend the default todo types and search regex, the existing config needs to be copied into your config.cson
.
- Configurable Columns: You can define which columns you want to see in your todo list: Text, Type, Path, Tags, Range, Line, Regex, File, Id, Project
- Sortable Columns: All columns in the todo list can be sorted ascending or descending.
- TODO tags: Todos can be tagged using hashtags (e.g.
TODO: do this #object #profile
), which are presented in the "Tags" column. - Live search: You can search within your todo list. Note: This feature is temporarily disabled due to a bug, see #198
Originally created by Jamis Charles
Now maintained by Martin Rodalgaard