Runic
REORDER

Move a block, the picture follows

Drag a step and its children travel with it. Tab and Shift+Tab indent a whole selection at once.

Try it free →Read the docs

What it is

Structure in Runic is indentation, so moving a step means moving a run of lines and fixing their indent. The editor does both: block drag for reordering, block indent for nesting. No boxes to re-align and no arrows to re-route, because the diagram is rebuilt from the text.

How it works

A block is a line plus every deeper-indented line under it; for an .if it includes the matching .end. Hover a line and the ⋮⋮ handle appears with the tooltip “Drag to move this block”, while the block tints faintly. Drag: a card reads “Moving N lines” and a violet insertion line shows the drop point. Dropping inside the block itself does nothing.

On drop, the block re-indents to match the line it lands in front of. When it lands after the last line, it takes the indent of the line above, two spaces deeper if that line is a .then or .if. Relative indentation inside the block is kept and the moved lines flash green. With a live multi-line selection, grabbing any handle inside it moves the whole selection, expanded so no decision is split; rubber-band cards in the diagram to build that selection visually.

Tab indents, Shift+Tab outdents. A multi-line selection shifts every touched line by one level (two spaces), skipping whitespace-only lines, and the selection follows the text. A selection ending exactly at a line start leaves that line out. A lone caret indents its own line, even an empty one.

Why it matters

Moving a decision with two branches on a canvas is several boxes, several arrows and a realignment. Here it is one drag that cannot orphan a .then or leave an .end behind, and one Tab to change which branch a step belongs to.

Limits

Handles are hidden in the folded view. On a view-only team document a drop changes nothing. When a ghost suggestion is showing, Tab accepts it first; press Esc, then Tab to indent.

How to use it

  1. Hover a line
    The ⋮⋮ handle appears at the left edge of the editor and the block that would move tints light violet.
  2. Drag
    Hold the handle and move. A card reads “Moving N lines” and a violet insertion line tracks the drop point between lines.
  3. Drop
    Release. The block moves, re-indents to its new neighbor, and flashes green. The diagram reflows.
  4. Move a selection
    Select several lines (in the text, or by dragging a box over cards in the diagram), then drag the handle of any line inside it. The whole selection moves together.
  5. Indent a block
    Select the lines and press Tab to nest them one level deeper, or Shift+Tab to pull them out. The selection stays on the same lines.

Commands & shortcuts

⋮⋮ handleHover a line; drag to move the block (line + children + matching .end)
TabIndent the line or every selected line by two spaces
Shift+TabOutdent by up to two spaces
EnterNew line at the same indent; deeper after .then or .if
⌘Z / ⇧⌘ZUndo / redo the move or indent

Tips

  • Grab the .if line to move the whole decision; the .end comes along.
  • Rubber-band cards in the diagram, then drag one handle: the picture is often the easier place to see what belongs together.
  • Use Shift+Tab on a step to pull it out of a branch and back onto the main path.
  • The footer reminds you: “Drag the ⋮⋮ handle to move a block · hover to locate”.

Questions

Why did the block change indentation when I dropped it?

It matched the line it landed in front of, so it joins that level. Inside a .then it nests; on the main path it flattens. Relative indentation inside the block is kept.

Can I drop a block inside itself?

No. Drop points inside the dragged range are ignored and the block stays where it was.

Does Tab insert a tab character?

No. Runic indents with two spaces per level; Tab adds two spaces and Shift+Tab removes up to two.