Files
wordcraft/docs/parity-checklist.md
T
e71e2d1c52 Draw tab: draw with pen, pencil and highlighter, erase ink, and hide ink (#315)
* Draw Table and Eraser: draw tables and split or merge cells with a pen (#303)

Insert › Tables › Draw Table and Table Layout › Draw › Draw Table / Eraser.
table.draw takes a pen stroke in page points: a rectangle outside a table
inserts a one-cell table of that size at the paragraph under its start; a
straight vertical or horizontal line inside a table splits the cells it
crosses (new grid column or row; untouched cells span it). table.eraser
merges the two cells beside the border nearest a point. Each stroke is one
undo step. In the app the buttons toggle pen and eraser modes with a live
preview, a crosshair with the tool's icon, and Esc to stop; canvas clicks
don't move the caret while a tool is on. Splitting through part of a
vertically merged cell and erasing beside one are refused with a clear
error. Catalog 384/430 -> 387/430.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Draw tab: pen, pencil and highlighter ink, stroke eraser and Hide Ink (#307)

Ink strokes are floating freeform shapes: a new Freeform geometry (paths in
shape-local coordinates, opacity, and the pen that drew it) on
InlineObject::Shape with ShapeKind::Freeform. draw.stroke inserts one
anchored to the paragraph under the first point (one undo step; points
capped per stroke, strokes capped per page, NaN dropped); draw.erase /
draw.eraser with a point deletes the stroke under it; draw.pen, draw.pencil,
draw.highlighter, draw.eraser and draw.select set the Draw tab's tool in the
session view state; review.hideInk toggles showing ink on screen.

The canvas draws a live stroke while a pen is dragged and commits it on
release; the eraser deletes strokes it passes over (one undo step per drag);
Esc or Select goes back to selecting. Draw tab buttons show the tool in use,
with colour and thickness menus; Review gets an Ink group with Hide Ink.
Ink renders with round caps and joins on screen and in PDF; highlighters are
translucent and behind the text. DOCX writes freeforms as wps:wsp with
a:custGeom (moveTo/lnTo) in a wp:anchor and reads them back, along with
simple custom-geometry freeforms from other files.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* #315 review fixes: eraser undo test, sanitized tap dots, custGeom path cap, ink docs

- draw.eraser with a point erases through draw.erase: test that it is one
  undo step (undo/redo) and marks the document dirty.
- Render and PDF: a single-point stroke's dot is drawn at the sanitized
  point, not the raw first one.
- DOCX custGeom reading stops once MAX_PATHS paths (subpaths included) are
  collected, across a:path elements.
- docs/file-format-parity.md: ink is saved as custom geometry, not InkML, so
  Word shows it as a freeform.
- widgets test: theme::apply takes an Appearance (#317).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fmt

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Draw tab: pen, pencil and highlighter ink, stroke eraser and Hide Ink (#307)

Ink strokes are floating freeform shapes: a new Freeform geometry (paths in
shape-local coordinates, opacity, and the pen that drew it) on
InlineObject::Shape with ShapeKind::Freeform. draw.stroke inserts one
anchored to the paragraph under the first point (one undo step; points
capped per stroke, strokes capped per page, NaN dropped); draw.erase /
draw.eraser with a point deletes the stroke under it; draw.pen, draw.pencil,
draw.highlighter, draw.eraser and draw.select set the Draw tab's tool in the
session view state; review.hideInk toggles showing ink on screen.

The canvas draws a live stroke while a pen is dragged and commits it on
release; the eraser deletes strokes it passes over (one undo step per drag);
Esc or Select goes back to selecting. Draw tab buttons show the tool in use,
with colour and thickness menus; Review gets an Ink group with Hide Ink.
Ink renders with round caps and joins on screen and in PDF; highlighters are
translucent and behind the text. DOCX writes freeforms as wps:wsp with
a:custGeom (moveTo/lnTo) in a wp:anchor and reads them back, along with
simple custom-geometry freeforms from other files.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Brandon Thomas <echelon@gmail.com>
2026-10-10 18:50:37 -04:00

2.3 KiB
Raw Blame History

WordCraft feature parity

Generated by cargo xtask parity (wordcraft-cli parity --markdown): the word-processor feature catalog (crates/engine/src/catalog.rs) compared with the live command registry.

402 of 434 catalog features have commands (92.6%).

Tab Live Total
File 20 20
Quick Access 4 4
Home 99 102
Insert 43 53
Draw 5 11
Design 10 10
Layout 19 19
References 24 24
Mailings 17 17
Review 28 30
View 25 29
Table Design 8 8
Table Layout 30 30
Equation 21 22
Picture Format 14 14
Shape Format 3 6
Header & Footer 5 5
Editing 24 24
Tools 3 6

Missing

Home

  • Font › Phonetic Guide (format.phonetic)
  • Font › Enclose Characters (format.enclose)
  • Voice › Dictate (tools.dictate)

Insert

  • Illustrations › Online Pictures (insert.onlinePicture)
  • Illustrations › Icons (insert.icon)
  • Illustrations › 3D Models (insert.model3d)
  • Illustrations › SmartArt (insert.smartArt)
  • Illustrations › Chart (insert.chart)
  • Illustrations › Screenshot (insert.screenshot)
  • Illustrations › Drawing Canvas (insert.canvas)
  • Add-ins › Get Add-ins (addins.get)
  • Media › Online Video (insert.video)
  • Symbols › Ink Equation (insert.inkEquation)

Draw

  • Tools › Lasso Select (draw.lasso)
  • Pens › Add Pen (draw.addPen)
  • Convert › Ink to Shape (draw.inkToShape)
  • Convert › Ink to Math (draw.inkToMath)
  • Insert › Drawing Canvas (insert.canvas)
  • Replay › Ink Replay (draw.replay)

Review

  • Language › Translate (review.translate)
  • Protect › Block Authors (review.blockAuthors)

View

  • Window › Arrange All (view.arrangeAll)
  • Window › View Side by Side (view.sideBySide)
  • Window › Synchronous Scrolling (view.syncScroll)
  • Window › Switch Windows (view.switchWindows)

Equation

  • Tools › Ink Equation (insert.inkEquation)

Shape Format

  • Text › Text Direction (shape.textDirection)
  • Text › Align Text (shape.alignText)
  • Text › Create Link (shape.link)

Tools

  • Customize › Customize Ribbon (tools.customizeRibbon)
  • Customize › Customize Keyboard (tools.customizeKeyboard)
  • Templates › Templates and Add-ins (tools.templates)