thombruce / toodles

✅ A super simple todo app
https://toodles.thombruce.com/
GNU General Public License v3.0
0 stars 0 forks source link

[Feature]: Add support for done/archived file types #113

Closed thombruce closed 3 months ago

thombruce commented 3 months ago

Feature request

We already support done.txt alongside todo.txt, but we presently have no specification for handling the archiving of list items in *.todo, *.shop or *.list documents.

Consider a list of documents:

For each, come up with a standard way to archive items that have been marked as completed (and possibly obsolete), so that each list retains its name and has its own archiving document(s).

This could be something as simple as:

Though I was already thinking of using `` to mark template files._

Or maybe it's something more complex, like:

Knowing, as we do, that tilde comes last alphabetically on most systems, maybe:

This would have the benefit of shifting the items to the bottom of the filesystem list, whereas starting with an x would still appear above x, y and z. It also somewhat reflects our usage of the tilde in documents for a "obsolete" status. AND... it would take no extra effort to support in highlighting, since they maintain the standard set of extensions.

BUT, one of my gripes with todo.txt and done.txt is that "done" comes before "todo" alphabetically (and so moves up a file list), and the documents no longer sit together in that list.

So maybe we support the ~ at the start of a document name, as well as... something else like *.done.todo, *.x.todo or something like that. These too should already work, since they still end with the standard extensions. By default, when we implement sorting, I expect we'll go with the tilde for "done" and "obsolete" list items:

Code of Conduct

thombruce commented 3 months ago

Having created two documents in VS Code to test sorting, it looks like tilde is sorting above:

~aardvark.todo
aardvark.todo

This is the opposite of my intention behind using the tilde. Looking into whether other options may exist now...

thombruce commented 3 months ago

Incidentally, however, aardvark.x.todo DOES sort beneath aardvark.todo. It maintains its place above other files, alphabetically, of course but... I dunno... Might be preferable to tilde to do that.

I've tested every character easily accessible from a keyboard. Certain characters, like _, sort before period, most sort after but before letters... and nothing sorts after letters. Meaning our best option is like... z.[filename].todo

z isn't particularly indicative of purpose, however, and so I would still prefer x.[filename].todo, even though it sorts above x, y and z.

ANY letter has the same problem though. x.xylophone.todo will sort above xylophone.todo, y.yacht.todo will sort above yacht.todo and z.zoo.todo will sort above zoo.todo, so...

If you want to use this approach to sort todo and done lists for your xylophone repairs, yacht holidays or trips to the zoo, you're shit out of luck. And of these, I do think z is the most likely character to be visited - I mean a trip to the zoo is more common than a yacht experience or xylophone repairs (or that you'd need a todo list for your x-ray), soooooo...

This is me justifying the use of x.[filename].todo as the recommended and default approach. With the additional recommendation that lists be titled starting with characters which precede x alphabetically:

It sucks but the attraction of using x. over any other character far outweighs the downsides of doing so.

thombruce commented 3 months ago

Another argument for using x. and certainly no earlier a character alphabetically:

X is the latest character alphabetically for which there is no month or day which begins with the character:

Apr
Aug
Dec
Feb
Fri
Jan
Jul
Jun
Mar
May
Mon
Nov
Oct
Sat
Sep
Sun
Thu
Tue
Wed

Wednesday is the last "date value" alphabetically, in English at least. And there is a strong case to be made for supporting monthly and daily todo lists.

_Again, y or z would certainly be better, but neither also has the benefit of being indicative of done status, which we already use x for within the documents themselves. Thus... x.[filename].todo remains my preferred approach.

thombruce commented 3 months ago

That said, given that ~ indicates obsolete status, it is also a viable option even though it sorts above the alphabet in VS Code and certain other places. For this reason, I recommend both approaches:

We'll try to keep this in mind, so that we can eventually add a config option should the user prefer the tilde approach over what I'm considering to be the default.

thombruce commented 3 months ago

With all of that said, we do in fact already have highlighting support for such documents, because they still end with the extensions .todo, .shop and .list.

This can be closed.

It was opened in case we wanted to support additional extensions like .done or .got, but as well as being extension "greedy" this also presents the challenge of coming up with a brief adjective for .list as well that isn't confusingly similar to .done, so that we could maintain clear separation of each type. In short, I much prefer the prefix approach.