🗒 To-do Lists are often cluttered with small items you will never get to, especially regarding tech debt in large code repositories. When working on a topic, you should focus on the subject and not be distracted by many smaller changes that might improve the code. This also applies to writing this website.
The solution is to quickly save these items and be able to get back to them when you are in that same context again and have the time to focus on it.
Features
- Integration with major editors (for now, focusing on IntelliJ and 🧑💻️ VSCode for code and 🪨 Obsidian for writing)
- Integration with major task-tracking tools (Linear, Jira)
Design decisions
- To-do items should not be part of your version control and hence not be part of the text file they belong to.
Technical discovery
Written in Kotlin because that is my programming language of choice.
- Git to track where changes belong in case changes happen in the file.
- Hierarchical view of tickets:
- Line
- File
- Folder
First, focus on dog-feeding this tool by creating an Obsidian extension that writes to a local database.
Track changes using git
Create functional tests that set up an actual Git repository and make file changes. Track if the tool can follow along with the changes and to-do items still end up in the right context.
This is too complex for an initial phase, so focus on to-do items per file or folder.
Obsidian Plugin
See 🔌 Obsidian Plugin Development for more details on how to develop Obsidian Plugins.
The initial version appends, as in changes, the file to which the to-do items are related. An improvement on this would be to use decorations.
Minimal Viable Product
- Obsidian plugin that allows me to create a to-do item from within the Obsidian UI.
- Items are stored in a local JSON file.
- It is possible to see all to-do items for a file and folder.
- Items are moved with the file in case of a file rename.