https://github.com/fornever/todosaurus
IntelliJ Plaform plugin to manage TODO comments in the code.
https://github.com/fornever/todosaurus
intellij-plugin issues
Last synced: 4 months ago
JSON representation
IntelliJ Plaform plugin to manage TODO comments in the code.
- Host: GitHub
- URL: https://github.com/fornever/todosaurus
- Owner: ForNeVeR
- License: mit
- Created: 2024-02-24T19:25:14.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2026-03-08T13:40:40.000Z (4 months ago)
- Last Synced: 2026-03-08T17:25:17.253Z (4 months ago)
- Topics: intellij-plugin, issues
- Language: Kotlin
- Homepage: https://plugins.jetbrains.com/plugin/23838
- Size: 2.78 MB
- Stars: 19
- Watchers: 1
- Forks: 3
- Open Issues: 27
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
Todosaurus [![Status Ventis][status-ventis]][andivionian-status-classifier]
==========
Todosaurus is a tool that helps to work with [TODO][wiki.todo] notes in software development projects.
It will help you to connect any TODO with an issue in the issue tracker, and make sure that no TODOs in the whole project's source code are left unattended.
The following components, useable separately, are included into Todosaurus:
1. [Todosaurus plugin for IntelliJ-based IDEs][docs.intellij] — allows to quickly create tracker issues from TODO notes.
2. [Todosaurus CLI][docs.cli] — helps to verify the TODO notes from the command line.
3. [Todosaurus GitHub action] — conveniently runs the CLI on GitHub.
Quick Installation Links
------------------------
- **IntelliJ Plugin:** [![Download IntelliJ Plugin][badge.plugin]][marketplace.plugin]
- **CLI:** [![FVNever.Todosaurus.Cli on nuget.org][nuget.badge]][nuget]
- **GitHub Action:** see [the installation guide][action].
Read the documentation of each Todosaurus component if you want to know more.
TODO Format Specification
-------------------------
Both Todosaurus components share a common TODO format.
### Unresolved TODOs
A TODO is considered **unresolved** if it matches the regex pattern:
```
\b(?i)TODO(?-i)\b:?(?!\[.*?\])
```
That is, a case-insensitive word `TODO` (with an optional colon) that is **not** immediately followed by a bracketed issue reference like `[#123]`.
### Resolved TODOs
Appending `[#]` **immediately** after `TODO` marks it as resolved:
```
// TODO[#123]: Fix this code
```
A space before the bracket does **not** resolve the TODO — `TODO [#123]` is still considered unresolved.
### Multiple TODOs on One Line
Multiple TODOs on the same line are allowed. Each is matched independently — a `[#issue]` resolves only the TODO it immediately follows. The line is flagged if **any** unresolved TODO remains. For example:
- `// TODO[#1]: done TODO fix` — flagged (second TODO is unresolved)
- `// TODO[#1]: done TODO[#2]: also done` — not flagged
### IgnoreTODO Markers
Regions of a file can be excluded from scanning using marker comments:
```
// IgnoreTODO-Start
// TODO: this will not be reported
// IgnoreTODO-End
```
Lines between `IgnoreTODO-Start` and `IgnoreTODO-End` are skipped. The marker lines themselves are not scanned for TODOs.
The following are **errors** (non-zero exit code in the CLI):
- Unclosed `IgnoreTODO-Start` (no matching `IgnoreTODO-End` before end of file)
- Nested `IgnoreTODO-Start` (opening a new region while one is already open)
- `IgnoreTODO-End` without a matching `IgnoreTODO-Start`
- Multiple IgnoreTODO markers on the same line
- An IgnoreTODO marker and a TODO on the same line
Documentation
-------------
- [Changelog][docs.changelog]
- [IntelliJ Plugin][docs.intellij]
- [CLI][docs.cli]
- [Contributor Guide (General)][docs.contributing]
- [Contributor Guide (IntelliJ Plugin)][docs.contributing.intellij]
- [Contributor Guide (CLI)][docs.contributing.cli]
- [Maintainer Guide][docs.maintaining]
License
-------
The project is distributed under the terms of [the MIT license][docs.license] (unless a particular file states otherwise).
The license indication in the project's sources is compliant with the [REUSE specification v3.3][reuse.spec].
[action]: action/README.md
[andivionian-status-classifier]: https://andivionian.fornever.me/v1/#status-ventis-
[badge.plugin]: https://img.shields.io/jetbrains/plugin/v/23838.svg
[docs.changelog]: CHANGELOG.md
[docs.cli]: cli/README.md
[docs.contributing.cli]: cli/CONTRIBUTING.md
[docs.contributing.intellij]: intellij/CONTRIBUTING.md
[docs.contributing]: CONTRIBUTING.md
[docs.intellij]: intellij/README.md
[docs.license]: LICENSE.txt
[docs.maintaining]: MAINTAINING.md
[marketplace.plugin]: https://plugins.jetbrains.com/plugin/23838
[nuget.badge]: https://img.shields.io/nuget/v/FVNever.Todosaurus.Cli
[nuget]: https://www.nuget.org/packages/FVNever.Todosaurus.Cli
[reuse.spec]: https://reuse.software/spec-3.3/
[reuse]: https://reuse.software/
[status-ventis]: https://img.shields.io/badge/status-ventis-yellow.svg
[wiki.todo]: https://en.wikipedia.org/wiki/TODO_(tag)