Move Branch Smoothness

Continuing the discussion from TaskPaper 3.0 Preview (154):

Basically, the idea is to recover the same transparency of movement as in TP2, which i think is one of TP’s main selling points. (just try doing this kind of thing in OmniOutliner…terrible.)

First please remember (or for other readers reading this) you can get TaskPaper 2’s exact behavior if you use “Move but Line” commands. They will move text around just as you would expect in a normal text editor.

Regarding “Move by Branch” …

The constraint that I have to work with is that when moving items by branch I never want items to be lost/added to the branch that’s being moved. To maintain that constrain there are cases where I need to adjust the indent level of the branch when moving it up/down. For example say I have the text cursor on line “two” in the following outline:

  - one
- tw^o
  - three

If I move by branch up without adjusting the indent level then at the end of the move I have:

- tw^o
  - three
  - one

So a side effect of moving “two” up would be that “one” becomes a child of two. And then would move along with the “two” branch if you continued moving… definitely not wanted.

So I’ll always have to constrain some moves (by adjusting indent level) so that won’t happen…

With that said right now I’m constraining all moves in a “consistent” way. Always adjusting the moved branch level to match the level of the item that it will be inserted before. This means there are some cases when I’m shifting the branch left when it wouldn’t need to be to maintain the moved branches integrity. I could look for those case and avoid a move then, but I sorta feel like it’s diminishing returns. I think better to have a simple run (match level of item that branch is getting inserted before) then to add more special cases.

I understand what you mean by Two capturing One as a child, but in TP2, this already happens, and it still works, because the branch being moved remains visibly selected, and thus differentiable from any new children.

Anyway, a long as folded branches remain folded during these Up and Down moves, then it will be possible to use TP3 the way that you have it.

Left and Right, however, remain confusing to me. In the following, let each Subhead have subsubheads folded underneath.

Heading1:

  • Subhead1
    – Subsubhead1
    – Subsubhead2
  • Subhead2
  • Subhead3

If I Select Subsubhead2 and Move Branch left, it also jumps down below Subhead3, whereas i think the more obvious thing should just be to promote in place, creating a new Subhead directly above Subhead2.

Heading1:

  • Subhead1
    – Subsubhead1
  • Subsubhead2
  • Subhead2
  • Subhead3

The point here being that i should be in charge of the order of items as much as possible. Having things jump up and down when i’m just trying to move right and left can be very confusing and a bit dangerous to the integrity of the outline.

(by the way, i do the above with Move Branch Left. If i instead use Shift-tab, TP3 behaves quite messily. Hard to describe, but if you want i can email you a file)