Skip to content

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 04 Nov 07:07
· 93 commits to main since this release

.gtui format 9 (reads v1..v9). Crate 0.8.0.

Changed

  • Keyboard cursor movement scrolls like nvim: the view stays put until the cursor reaches a
    two-cell margin, then every further step scrolls the picture by exactly one cell immediately
    while the cursor keeps its screen line (only its logical cell advances). Scrolling here is
    not eased — an animation would move the cursor down one cell and then pull it back, which reads
    as a jump. Jumps (search, n / N, click, jump history) stay animated, and all mouse gestures
    are unchanged.

Fixed

  • A point-node edge no longer routes straight along an edge that is already drawn: two edges that
    occupy the same cells collapse into one stroke, so the later edge looks invisible while the
    earlier one's arrowhead sits on it, which makes the selected edge read as bidirectional. The L
    now picks the other corner when the first one would duplicate an existing run of the same axis
    (crossings still share a single cell, as before).

  • Edges keep their shape while the view moves: routing now looks at the whole document
    (every node is an obstacle, and the "this cell already has a stroke" state is kept outside the
    viewport too) instead of only at the visible cells, so panning and cursor scrolling are a pure
    translation of the picture and a long edge whose node has left the screen still shows the part
    that is on screen.

  • Ctrl-o / Tab (Ctrl-i) walk a proper jump list: besides search hits, n / N and mouse
    clicks, every edit records its position — creating a box, editing text, changing a style — while
    plain cursor moves do not. Ctrl-o from anywhere first notes where you are and then goes back to
    the last place you worked.

Added

  • Six hand-placed joke graphs under examples/fun/ (owl, left-pad, git-graph, unix,
    invaders, dynasties), listed in docs/examples.md. They use geo layout, so the stored
    coordinates are the picture; invaders is pure pixel art built from 46 single-cell text boxes,
    and dynasties is a 44-regime top-down Chinese-dynasty DAG of point nodes with one-line CJK
    labels placed around them: edges branch where regimes coexisted and merge where one power
    reunified, with no edge labels. The
    native example test walks examples/fun/ as well.
  • <|new box|> inside the text prompt splits one box into several: the text before the marker
    stays in the box, each following segment becomes a new box to its right (top aligned, one cell
    apart, nudged right/down when the space is taken) that copies the source box style, colours,
    fill, text alignment and layer. Edges and notes stay on the original box; the cursor does not
    move and the whole split is one undo step. Only single plain boxes split: multi-selections, edge
    notes and point nodes keep the marker as ordinary text, and so do :text and headless text.
    \<|new box|> is a literal.