Instead of simulating ratatui's word wrapping algorithm, scan the rendered buffer to find the actual cursor position. This correctly handles word wrapping, unicode widths, and any other rendering nuances that ratatui applies. The old code computed wrapped_height() and cursor position based on simple character counting, which diverged from ratatui's WordWrapper that respects word boundaries. Now we render first, then walk the buffer counting visible characters until we reach self.cursor. This is O(area) but the input area is small (typically < 200 cells), so it's negligible.
61 lines
1.2 KiB
TOML
61 lines
1.2 KiB
TOML
[package]
|
|
name = "poc-memory"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
|
|
[dependencies]
|
|
capnp = "0.20"
|
|
uuid = { version = "1", features = ["v4"] }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
bincode = "1"
|
|
regex = "1"
|
|
chrono = "0.4"
|
|
clap = { version = "4", features = ["derive"] }
|
|
libc = "0.2"
|
|
faer = "0.24.0"
|
|
rkyv = { version = "0.7", features = ["validation", "std"] }
|
|
memmap2 = "0.9"
|
|
rayon = "1"
|
|
peg = "0.8"
|
|
paste = "1"
|
|
jobkit = { git = "https://evilpiepirate.org/git/jobkit.git/" }
|
|
jobkit-daemon = { git = "https://evilpiepirate.org/git/jobkit-daemon.git/" }
|
|
poc-agent = { path = "../poc-agent" }
|
|
tokio = { version = "1", features = ["rt-multi-thread"] }
|
|
redb = "2"
|
|
log = "0.4"
|
|
ratatui = "0.30"
|
|
skillratings = "0.28"
|
|
crossterm = { version = "0.28", features = ["event-stream"] }
|
|
|
|
[build-dependencies]
|
|
capnpc = "0.20"
|
|
|
|
[lib]
|
|
name = "poc_memory"
|
|
path = "src/lib.rs"
|
|
|
|
[[bin]]
|
|
name = "poc-memory"
|
|
path = "src/main.rs"
|
|
|
|
[[bin]]
|
|
name = "memory-search"
|
|
path = "src/bin/memory-search.rs"
|
|
|
|
[[bin]]
|
|
name = "poc-hook"
|
|
path = "src/bin/poc-hook.rs"
|
|
|
|
[[bin]]
|
|
name = "merge-logs"
|
|
path = "src/bin/merge-logs.rs"
|
|
|
|
[[bin]]
|
|
name = "diag-key"
|
|
path = "src/bin/diag-key.rs"
|
|
|
|
[[bin]]
|
|
name = "find-deleted"
|
|
path = "src/bin/find-deleted.rs"
|