- Displays tags, such as TODO and FIXME, within a sidebar tree view.
- 2973 Installs
This extension is allowed to:
- Read Files
- Launch Subprocesses
TODO Extension for Panic's Nova Code Editor
Displays tags, such as TODO and FIXME, within a sidebar tree view in Panic's macOS code editor, Nova.
The extension offers many configuration options that can be set both globally for all workspaces and overridden for individual workspaces. For example, the extension can be configured to find additional tags, such as BUG, NOTE and INFO. See the "Configuration" section below for more information.
Enable the extension in the extension library within Nova.
Global configuration preferences apply to all workspaces unless they are overridden by the workspace configuration. To make changes to the global configuration, go to the extension library in Nova, select the TODO extension in the left hand side panel, and click on "Preferences". Configurable options are described below.
- Global Tag Case Matching - Detect only upper case (only TODO) or both upper case and lower case tags (TODO and todo).
- Global Included Tags - TODO and FIXME tags are always matched by the extension. However, additional tags can also be detected, including BROKEN, BUG, DEBUG, DEPRECATED, EXAMPLE, ERROR, ERR, FAIL, FATAL, FIX, HACK, IDEA, INFO, NOTE, OPTIMIZE, QUESTION, REFACTOR, REMOVE, REVIEW, TASK, TRACE, UPDATE, WARN, and WARNING. Keep in mind that detecting a larger number of tags might cause slower performance in larger workspaces.
- Global Ignored File and Directory Names - Exclude file and directory names. This setting accepts a comma separated list of names that should not be surrounded by any form of quotation marks. File names must include the file extension. Several names are ignored by default, including node_modules, tmp, .git, vendor, .nova, and .gitignore.
- Global Ignored File Extensions - Exclude specific file extensions from being searched. This setting accepts a comma separated list of extension names that should not be surrounded by any form of quotation marks. While the extension can be preceded by a period, it is not necessary.
Workspace configuration preferences only apply to the current workspace. In most cases these settings can override the global preferences. To make changes to the workspace configuration, go to the "Project" menu in Nova and select "Project Settings...". In the subsequent dialog window, click on "TODO" under the "Extensions" header in the left hand side panel. Configurable options are described below.
- Workspace Tag Case Matching - By default, this is set to the global preference.
- Workspace Included Tags - Select any additional tags to be detected in the current workspace and change the "Included Tags" setting to "Use Workspace Preferences". Additional tags will not be detected until this change is made.
- Workspace Ignored File and Directory Paths - Exclude file and directory paths in the workspace. This accepts a comma separated list of paths that should not be surrounded by any form of quotation marks. It is easiest to "Choose..." the path from the input above, then click on "Ignore Above Path". This will append the chosen file or directory to the list of ignored paths.
- Workspace Ignored File and Directory Names - This setting does not override the global preferences, but adds additional file and directory names to be excluded.
- Workspace Ignored File Extensions - This setting does not override the global preferences, but adds additional file extensions to be excluded.
- Updates to text field preferences are not always saved. As a temporary workaround, click into another text box in the preferences window to trigger the save event, prior to clicking "Done". This forces the input to lose focus and save. This issue should be fixed in a future Nova update.
Planned Future Features
- Tag highlighting within the code.
- Tag notification in the sidebar icon.
- Improvements to tag detection performance when file changes are made in the workspace.
Report a Bug or Feature Request
To report a bug or request a feature, please add an issue to the GitHub repository. Thanks!
- Fixed configuration issue preventing extension submission.
- Added additional screenshots.
- Overhauled the extension's preferences to provide global and workspace specific configurations.
- Added the "FIX" tag.
- Added a preference to match on upper case (default) or upper and lower case tags.
- Updated the README to better explain the configuration options available.
- Added exclusion for files without file extensions.
- Fixed issue causing the expansion icon to appear next to tag items in the sidebar.
- Fixed issue causing the sidebar to be blank, instead of a "monitoring workspace" message when no tag results were found.
- Updated extension to set the cursor position when opening a tag item.
- Added the ability to sort by file or tag.
- Added markdown files to the default exclusions.
- Improved the recognition of tag comments.
- Fixed incorrect recognition of the warn tag in some situations.
- Added tag count to the tree view for each file.
- Changed message displayed in the sidebar when no tags are found.
- Added global preference recognition in non-workspace environments.
- Polished extension icons.
- Added the ability to search for additional keyword tags, such as ERROR, INFO, and NOTE, in preferences (Issue #4).
- Fixed issue causing extension to fail when in an environment without a workspace (Issue #6).
- Modified tree view to display file names alphabetically.
- Fixed double loading of tree view items occurring in some situations.
- Updated the file searching method to eliminate the number of files limitation.
- Fixed issue preventing tag elements from loading in the tree view.
- Fixed issue causing the tree view to fail to update after file and extension configuration changes.
- Added MIT license file.
- Increased the maximum number of files that can be processed to 300. Too many files currently cause the extension to temporarily stop responding.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.