New Projects and lost children


That title sounds so dramatic, sorry. This is really a philosophical question about the UI of TaskPaper.

Let me start with an empty document. I create a Project, give it a name. With my cursor still on the Project name I create a task using “New Task” or ⌘-enter.

A new task appears, but it is a Sibling of the Project, not a Child. This really confused me at first - I entered a bunch of Tasks, but when I clicked on the Project name in the sidebar, they were nowhere to be seen. I had to go to the top level of the document, find the Tasks and move them into the appropriate Project.

I’m not sure I understand the reasoning behind this default behavior. It makes sense to me that creating a Task in that context should automatically place the Task within the Project, but am I missing something?


This has come up before, I’m still not sure.

First, generally I would like to keep text editing item type neutral. Note here I’m going to talk about just pressing the Enter key, which isn’t quite what you are asking… I’ll address that at the end.

So for example when you press Enter I want it to do the same thing for all types… note that this default Enter behavior will already insert the new item as a child of the current item has a visible child. So the problem case is only when a project is collapsed or when it has no children.

In the case where an item is collapsed I think it doesn’t make sense to insert items as a child, even if the current item is a project and the new item is a note. Let me know if you disagree, but it seems to me that “collapsed” means “stay out!”

That leads to the case of pressing Enter when you are in an empty project. It’s true that much of the time you are planning to create a new item “In” the project. But it’s also true that you might be just creating a quick list of sibling projects. And if that’s the case auto-indent in this case would be a big headache. So again I think the uniform (insert at the level of the current items first visible descendent, or insert at the level of the current item) is best.

Your actual question

So that’s my logic for how the Enter key should behave.

It’s a little trickier when talking about the New Task and New Note commands. In those cases I agree the context is more constrained and it does seem like it would make sense to insert as a child of the current project.

But still the rules get sorta messy once I break the default behavior. For example if the current project is folded what should the behavior be… Also what should the New Project command do? I guess I could just special case New Note and New Task for when an empty project is selected… but that seems messy too.

Anyway, your thoughts are welcome, but overtime I start thinking about the details of this issue things get messy and so I leave the current default behavior.


I can see where the aspect of “folding” and “collapsing” comes into play here - the use case in my head is far more constrained, involving only a project and nothing hidden or collapsed. With that, the default behavior of the Enter key (by itself) really does seem to make sense.

In order for my particular use case to make any sense, it must be tightly prescribed:

  • Insertion point in Project name
  • Project not collapsed or folded
  • If above, then ⌘-enter creates indented Task

I can see how this all starts to undo the simplicity sought in this plaintext format.

I really appreciate you taking the time to compose such thoughtful responses, and do not wish to monopolize your time.