Skip to content

mrodalgaard/atom-todo-show

Repository files navigation

Todo Show Package Build Status

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.

todo-show-package

Search Scopes

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.

Configuration

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)

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

To extend the default todo types and search regex, the existing config needs to be copied into your config.cson.

Other Features

  • 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

Credits

Originally created by Jamis Charles

Now maintained by Martin Rodalgaard