Dylan M. Taylor
a2435388e5
Refactor engine for strict Clippy checks
2026-10-28 01:06:48 +00:00
NetterSilver and Claude Opus 5.5
8cdc172171
Lay out the paragraph after a kept heading once
...
A paragraph with keep with next measures the paragraph after it before it is
placed (next_first_line). That measurement called layout_para directly, so
every paragraph following a heading was laid out twice in each layout pass:
once to measure it and once, through the cache, when it was placed.
The measurement now goes through the layout cache under the key
para_labelled uses (Ctx::para_ahead) when its inputs are the same: no
proofing, no typed word, not inside a text box, no inline text boxes that
resize, the body's tracked-deletion view. Otherwise it is laid out on its
own as before. It counts nothing (list labels, equation numbers and the
page-total flag are restored), so pagination is unchanged.
Adds crates/engine/examples/export_bench.rs, which saves a long generated
document (the sample document 200 times, 259 pages) through io::save_bytes
and prints wall times:
cargo run --release -p wordcraft-engine --example export_bench -- pdf 200 9
PDF export on that document, interleaved with main (Ryzen, 16 threads):
median 286 ms -> 256 ms (-10.6 %). The PDF bytes are identical.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-27 13:39:09 +01:00
aiongg
0404b4199a
test: file_access scan stops only at inline test modules
2026-10-26 22:10:26 +00:00
aiongg
835704f870
refactor(engine): move session::ime_state to the crate root as ime
2026-10-26 21:16:49 +00:00
aiongg
39336fe844
refactor(engine): move session::snapshot_types to the crate root as snapshot
2026-10-26 21:16:49 +00:00
aiongg
5a311f4615
refactor(engine): move session::prefs to the crate root as prefs
2026-10-26 21:16:49 +00:00
aiongg
8f1f3c6132
refactor(engine): move session::view to the crate root as view
2026-10-26 21:16:49 +00:00
aiongg
e027a4244b
refactor(engine): move session::doc_state to the crate root as doc_state
2026-10-26 21:16:49 +00:00
aiongg
3c4d7adc87
refactor(engine): move session::locale to the crate root as locale
2026-10-26 21:16:49 +00:00
aiongg
cfa90220d9
refactor(engine): split session.rs into session/
2026-10-26 21:16:49 +00:00
aiongg
8f10bd1b9f
refactor(engine): split cmd/table.rs into table/
2026-10-26 21:16:49 +00:00
aiongg
a82063e50a
refactor(engine): split cmd/insert.rs into insert/
2026-10-26 21:16:49 +00:00
aiongg
342de16153
refactor(engine): split cmd/text.rs into text/
2026-10-26 21:16:49 +00:00
aiongg
d66f34b774
refactor(engine): split cmd/references.rs into references/
2026-10-26 21:16:49 +00:00
aiongg
0a6c7605f6
refactor(engine): split cmd/para.rs into para/
2026-10-26 21:16:49 +00:00
aiongg
fbc95e1e10
refactor(engine): split cmd/citations.rs into citations/
2026-10-26 21:16:49 +00:00
aiongg
fac4b550c1
refactor(engine): split cmd/mailings.rs into mailings/
2026-10-26 21:16:49 +00:00
aiongg
cc728757f5
refactor(engine): split cmd/review.rs into review/
2026-10-26 21:16:49 +00:00
aiongg
3d458a08b6
refactor(engine): split cmd/tools.rs into tools/
2026-10-26 21:16:49 +00:00
aiongg
dabc31eb83
refactor(engine): move cmd/tools tests to tools/tests.rs
2026-10-26 21:16:49 +00:00
aiongg
03f5df4bba
refactor(engine): split cmd/objects.rs into objects/
2026-10-26 21:16:49 +00:00
aiongg
fb09da5dc4
refactor(engine): move tests_*.rs files to tests/
2026-10-26 20:54:02 +00:00
aiongg
13f42b0a9d
refactor(engine): move cmd/insert tests to cmd/insert/tests.rs
2026-10-26 20:54:02 +00:00
aiongg
f7c3f3d564
refactor(engine): move speech tests to speech/tests.rs
2026-10-26 20:54:02 +00:00
aiongg
1d06547f06
refactor(engine): move cmd/page tests to cmd/page/tests.rs
2026-10-26 20:54:02 +00:00
aiongg
e911006f2d
refactor(engine): move cmd/draw tests to cmd/draw/tests.rs
2026-10-26 20:54:02 +00:00
aiongg
fbf8340132
refactor(engine): move cmd/table_resize tests to cmd/table_resize/tests.rs
2026-10-26 20:54:02 +00:00
aiongg
f2f25f9363
refactor(engine): move cmd/ink_shape tests to cmd/ink_shape/tests.rs
2026-10-26 20:54:02 +00:00
aiongg
6e63f6cb28
refactor(engine): move cmd/references tests to cmd/references/tests.rs
2026-10-26 20:54:02 +00:00
aiongg
a2d1ec38b7
refactor(engine): move cmd/equation tests to cmd/equation/tests.rs
2026-10-26 20:54:02 +00:00
aiongg
7bf497b392
refactor(engine): move recovery/desktop tests to recovery/desktop/tests.rs
2026-10-26 20:54:02 +00:00
aiongg
ebce2b4d49
refactor(engine): move cmd/mailings tests to cmd/mailings/tests.rs
2026-10-26 20:54:02 +00:00
aiongg
a1d7b85a27
refactor(engine): move cmd/table_mouse tests to cmd/table_mouse/tests.rs
2026-10-26 20:54:02 +00:00
aiongg
c94f586da2
refactor(engine): move cmd/citations tests to cmd/citations/tests.rs
2026-10-26 20:54:02 +00:00
aiongg
49c1b35fec
refactor(engine): move cmd/protect tests to cmd/protect/tests.rs
2026-10-26 20:54:02 +00:00
aiongg
e8692c4aff
refactor(engine): move cmd/review tests to cmd/review/tests.rs
2026-10-26 20:54:02 +00:00
aiongg
3a3d4f60e2
refactor(engine): move cmd/objects tests to cmd/objects/tests.rs
2026-10-26 20:54:02 +00:00
aiongg
5dd48bc7a0
refactor(engine): move crates/engine/src/cmd/mod.rs to crates/engine/src/cmd.rs
2026-10-26 20:54:01 +00:00
aiongg
33350b3833
test: scan source directories recursively
2026-10-26 20:54:01 +00:00
Dylan M. Taylor
02120c84f7
Sonar: reduce cognitive complexity in replace parser and reroute tests
2026-10-26 16:52:04 -04:00
Dylan M. Taylor
d859c673c1
Sonar: reduce cognitive complexity in highlight, review and outline commands
2026-10-26 16:01:36 -04:00
Dylan M. Taylor
ab0eccd254
Merge pull request #4377 from storytold/sonar/newcode-s3776-a
...
Sonar: reduce cognitive complexity in four engine commands
2026-10-26 01:14:55 -04:00
aiongg
503a533e65
Merge branch 'w3' into w6
...
# Conflicts:
# crates/engine/src/lib.rs
2026-10-26 03:40:48 +00:00
aiongg
27068500dd
Merge branch 'w2' into w3
...
# Conflicts:
# crates/ui-egui/Cargo.toml
# crates/ui-egui/src/panes.rs
2026-10-26 03:40:18 +00:00
aiongg
16f6145cd3
Merge branch 'w1' into w2
2026-10-26 03:38:38 +00:00
aiongg
7d512a6905
Merge remote-tracking branch 'upstream/main' into w1
...
# Conflicts:
# Cargo.lock
# Cargo.toml
# NOTICE
# apps/wordcraft/Cargo.toml
# crates/engine/src/lib.rs
# crates/ui-egui/Cargo.toml
# docs/control-protocol.md
# docs/shared-pdf.md
2026-10-26 03:38:36 +00:00
aiongg
b9c074a543
W6: a window's input method joins and equation session stay with that window
2026-10-26 03:26:01 +00:00
aiongg
e900513104
Merge branch 'w3' into w6
...
# Conflicts:
# ROADMAP.md
# crates/engine/src/lib.rs
# crates/engine/src/session.rs
# crates/ui-egui/Cargo.toml
# crates/ui-egui/src/lib.rs
# docs/gaps.md
# docs/parity-checklist.md
# docs/ui-parity.md
2026-10-26 03:22:33 +00:00
aiongg
15090b9d81
Merge pull request #3109 from aiongg/panes-trial
...
Task panes: draw them with craft_ui::panes; Styles docks left or right or floats
2026-10-25 23:13:49 -04:00
aiongg
5632755be4
Merge branch 'w2' into w3
...
# Conflicts:
# Cargo.lock
# ROADMAP.md
# apps/wordcraft/src/main.rs
# crates/ui-egui/Cargo.toml
# crates/ui-egui/src/backstage.rs
# crates/ui-egui/src/control.rs
# crates/ui-egui/src/dialogs.rs
# crates/ui-egui/src/keys.rs
# crates/ui-egui/src/lib.rs
# crates/ui-egui/src/panes.rs
# crates/ui-egui/src/previews.rs
# docs/ui-parity.md
2026-10-26 03:09:46 +00:00