Files
cumulus/Cargo.toml
T
skkeyeandClaude Opus 5.5 13a603837e Tidy a branch and line nodes up (stage 9a)
The first small part of stage 9 (v1.1). <Space>= then m, c or g (the
user's pick: leader menus), or :tidy map|chart|grid, lays out the
cursor's branch while its top node stays put: a mind map puts each node
in the middle of its children (the user's pick), an org chart puts them
side by side below, and a grid makes a block of cards beside the node
(the user's pick), a card's own branch going along as a mind map. Every
node of the branch gets a place, folded away or not (the user's pick),
as one undo step, and the message says when the branch now covers nodes
outside it.

The lines follow the layouts: a parent whose children are all below it
sends its branches down to a shared bend, and a new child of it goes
beside the last one; a grid card behind another isn't joined by a line,
which would look like it joins the two cards.

In visual mode, <Space>a then h, l, k, j or c lines the selection up on
the box around it, each node bringing its branch along, and : opens the
command line on the selection: :align and :tidy take it, and so do
:color, :border, :style, :tag and :fold, as one undo step. The layouts
are pure functions in view::canvas::arrange, applied as one
EditOp::Reposition. Layout and Side moved from the parser to the model
so keys can name them.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-02 10:42:00 -04:00

46 lines
1.8 KiB
TOML

[package]
name = "cumulus"
version = "1.0.0"
edition = "2024"
# The version cumulus is built and tested with (pinned in rust-toolchain.toml).
rust-version = "1.90"
description = "Brainstorm in the terminal: idea graphs on a 2D canvas, with vim keys and the mouse."
publish = false
[dependencies]
# Document files are RON (Rust Object Notation), read and written through serde.
serde = { version = "1", features = ["derive"] }
ron = "0.12"
# Config files are TOML: keys.toml so far, config.toml and themes later.
toml = "1"
# Error types with readable messages, for the parts that report problems.
thiserror = "2"
# Terminal user interface. The crossterm backend works on Windows, Linux and
# macOS. Default features are off to skip widgets cumulus doesn't use.
ratatui = { version = "0.30", default-features = false, features = ["crossterm_0_29", "layout-cache"] }
# How many terminal columns text takes (accents, Asian scripts, emoji), for
# sizing node boxes.
unicode-width = "0.2"
# Where one character ends and the next begins, so the cursor steps over an
# accented letter or an emoji in one go.
unicode-segmentation = "1"
# Where each OS keeps settings and app data: %APPDATA% on Windows,
# ~/.config and ~/.local/share on Linux.
directories = "6"
# The system clipboard, for the "+ register: Windows, and X11 or Wayland on
# Linux. Images are left out (default features off): cumulus copies text.
arboard = { version = "3", default-features = false, features = ["wayland-data-control"] }
[lints.rust]
unsafe_code = "forbid"
[lints.clippy]
all = { level = "warn", priority = -1 }
[profile.release]
# A smaller, faster program: optimize across all crates at once (lto, in one
# piece with codegen-units = 1), and leave out the debug symbols (strip).
lto = true
codegen-units = 1
strip = true