Files
cumulus/Cargo.toml
T
skkeyeandClaude Opus 5.5 7bec5bf3fc Add visual mode, node registers, search and the jump list (stage 8c)
The rest of vim, on nodes. Visual mode takes in what lies between where
it started and the cursor: on the canvas, every node the rectangle from
one end's box to the other's touches; in the outline and the Note view,
the nodes in between in reading order. V takes whole branches, Ctrl+click
and Ctrl+drag pick with the mouse, and the operators take exactly what's
selected: d, y, > and <, M, and the pickers on every node at once.

Registers now hold text or nodes, so yy, dd and x keep what they take and
p, P and ]p paste it, layout and links included. "+ is the system
clipboard through arboard: nodes go there as Markdown in the user's
format (## headings, a --- tag list, the body), and come back whole while
the clipboard still holds them. clipboard = "unnamedplus" makes plain
yanks use it, as in vim.

. repeats the last change made with keys, with the text typed after it.
/ opens a Telescope-style search: fuzzy matches over titles, tags and
bodies, best first, with the note of the one you're on beside them; n
and N go on with it, and :find searches straight away. Each pane keeps a
jump list for Ctrl-o and Ctrl-i that crosses documents and reopens closed
ones. Capital marks lead into any document and, like the small ones, are
kept in memory.ron. gd follows a cross-link, and :marks, :jumps and
:registers list what they hold.

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

46 lines
1.8 KiB
TOML

[package]
name = "cumulus"
version = "0.1.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