First I have to admit that I love TaskPaper (both, the file format and the macOS app)! And because I love it so much and wanted to use my TaskPaper files on Windows and Linux machines at work, I created TaskPaper mode for Emacs, my editor of choice. The project is still in its early stages, but I consider it now to be quite stable and very useful, at least for me, working on different platforms other than macOS desktop.
Outstanding features include:
Incremental and non-incremental searching
In incremental searching mode query results are updated instantly as you type, creating a sparse tree with all matches. Non-incremental searching requires you to type the entire query string before searching begins. This form of static, one-time querying (as opposed to incremental, on-the-fly querying) may be preferable in some situations, such as over slow network connections.
Fast selection interface for tags and search queries
Fast selection interface allows you to save your commonly used tags and search queries and later select them with just a single key press.
Selective archiving under internal archive project or in external file
The archiving behavior can be flexibly configured. The default archive location is a file in the same directory as the current file, with the name derived from the current file name. You can also choose what item to file archived items under.
You can toggle the inline display of linked images.
For querying a collection of TaskPaper files, TaskPaper mode includes a powerful agenda mode. In this mode items from different TaskPaper files can be collected based on search queries and displayed in an organized way in a special agenda view, which can be further searched, inspected, and saved as a new TaskPaper document.
API for scripting and automation (Emacs Lisp)
Users can automate and extend the functionality of TaskPaper mode using predefined hooks and API functions.
Full documentation and source code available on GitHub. Any comments, suggestions and improvements are welcome. Finally I would thank Jesse Grosjean for writing TaskPaper app, whose functionality and sleekness I wanted to bring to Emacs.