Atom package that shows a list of todos from your project.
CoffeeScript CSS
Latest commit eb24f33 Jan 7, 2017 @mrodalgaard Prepare 1.9.0 release

README.md

Todo Show Package Build Status

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.

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.

todo-show-package

Search Scopes

Four different scopes are available to narrow down your search for todos. Change scope using the button at the top of the todo tab 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.

Configuration

Name Default Description
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/'] 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
openListInDirection 'right' Defines where the todo list is shown
rememberViewSize true Remember the todo list width or split in the middle
saveOutputAs 'List' Choose which format to use for saved markdown
statusBarIndicator false Show todo count in status bar (this is only shown and updated when the 'Todo Show' tab is open)

Regular Expression Search

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 with findTheseTodos)
  • [:;.,]? 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

Todos can be tagged using hashtag (e.g. TODO: do this #object #profile), which is presented in the tags column.

To extend the default todo types and search regex, the existing config needs to be copied into your config.cson. See show-todo.coffee for current defaults.

Credits

Originally created by Jamis Charles

Now maintained by Martin Rodalgaard