Working Draft
A VSCode extension for creating and managing structured TODO comments with emojis following the TODO NUKEM Convention. Features interactive comment generation, TODO overview with filtering, and quick snippets for maximum productivity.
Install this extension from the VSCode Marketplace
This extension offers two ways to create TODO NUKEM comments:
Open the Command Palette (Cmd+Shift+P or Ctrl+Shift+P) and search for:
TODO NUKEM Comment
Follow the guided prompts:
- Priority: π© Low / πΆ Medium / π΄ High
- Type: β¨ Feature / π Fix
- Context: π¨ Design / π Doc / π§ͺ Test / β‘ Perf / etc.
- Message: Your TODO description
- Meta Blocks (optional): π¬ TBD / π― Scope / π« Ticket / π Until / etc.
Example in source code:
// TODO: [high] [feature] [design] Refactor button component [ticket: JIRA-123] [until: 2025-12-31]Visual display (with decorations):
The extension decorates the keys with emojis in the editor:
// TODO: π΄ β¨ π¨ Refactor button component π« JIRA-123 π
2025-12-31
Note: You can customize the display mode in
todonukem.json(emoji, text, or emoji-text combination). Alternatively, click the eye icon (ποΈ) in the status bar to quickly toggle between display modes.
In supported languages, type todo or fixme and press Tab to activate snippet templates:
todo β₯
fixme β₯
This provides pre-defined templates for quick TODO insertion.
Defined in the package.json file, the following languages are supported with either line or block comments:
TypeScript, JavaScript
CSS, PostCSS, SCSS, Less, HTML, Python, Java, C#, C++, Ruby, Swift, PHP, Go, Rust, Dart, Perl, Lua, Shell Script
For example, CSS uses block comments like /* ... */.
And TypeScript could use line comments like // ....
If a language you need is missing, feel free to open a PR and contribute!
How can I enable snippet suggestions in comments in VSCode?
By default, snippet suggestions are not active in comments in VSCode. If you want to enable this feature, you need to adjust your settings.
In User Settings search for quickSuggestions and enable the following options:
"editor.quickSuggestions": {
"comments": true,
"strings": true
}The green emoji (π©) doesn't display on older Windows 10 versions
Older Windows 10 versions don't support the green square emoji (π©). To fix this, create a todonukem.json file in your workspace root with the following content:
{
"emojis": {
"priority": {
"low": "π΅"
}
}
}This replaces the green square with a blue circle (π΅).
After creating the file, press Ctrl+Shift+P (or Cmd+Shift+P on Mac), type reload, and select "Developer: Reload Window" to apply the changes.
How can I customize the display mode?
You can customize how TODOs are displayed by creating a todonukem.json file in your workspace root:
Emoji only (default):
{
"displayMode": "emoji"
}Displays: π΄ β¨ π¨
Text only:
{
"displayMode": "text"
}Displays: High Feature Design
Emoji-text combination:
{
"displayMode": "emoji-text"
}Displays: π΄-high β¨-feature π¨-design
After creating or modifying the file, reload the window with Ctrl+Shift+P β reload β "Developer: Reload Window".
How can I configure ticket links?
You can make ticket references clickable by configuring a ticketBaseUrl in your todonukem.json file:
{
"ticketBaseUrl": "https://jira.example.com/browse"
}Now when you use [ticket: JIRA-123] in your TODO comments, the ticket ID becomes a clickable link that opens in your browser:
// TODO: [high] [feature] Fix login bug [ticket: JIRA-123]Clicking on JIRA-123 will open https://jira.example.com/browse/JIRA-123.
After creating or modifying the file, reload the window with Ctrl+Shift+P β reload β "Developer: Reload Window".
For more questions and answers, please visit our Q&A Discussions.
For best results, combine this extension with the TODO NUKEM ESLint plugin to enforce the convention in your codebase:
The ESLint plugin validates that your TODO comments follow the TODO NUKEM Convention and can auto-fix formatting issues.
npm install --save-dev @jolution/eslint-plugin-todo-nukemLearn more:
GitHub Repository
npm Package
If you find this project helpful, please consider giving it the Convention Repo a star on GitHub.
We do not currently offer direct support for this project.
We appreciate the support from Atos, helping us continue our open source work.
See the LICENSE file for details.
Please note that this project, TODO NUKEM, is not officially associated with or endorsed by the Duke Nukem franchise or its creators. It is an independent project developed by the open-source community and does not claim any rights to the Duke Nukem trademark or any related materials.
Thanks goes to these wonderful people (emoji key):
Jochen Simon π¨ |
Julian Kasimir π€ π» |
This project follows the all-contributors specification. Contributions of any kind welcome!