- A preview that a menu or script edits or saves while the window is open
becomes a document of its own: Close keeps it and gives it its Untitled
number. document.list and the control inspect mark the preview.
- Close shows the previously active document again only if the preview was
still active; a document opened meanwhile stays active.
- Create refuses invalid fields with a status beside the buttons, keeping
the window and the preview. When the settings are the previewed ones, the
preview document becomes the new document; otherwise file.new makes it,
and a failure puts the window back with the error.
- The preview is rebuilt once the fields have stayed the same for 200 ms,
and refused settings are not retried until they change.
- No recovery discard for preview documents, which are never written.
- The window's key is _previewedDoc, distinct from the interaction preview
key, and ending the preview is a no-op without one.
A Preview checkbox beside Close and Create shows a document with the
window's settings in the workspace and rebuilds it as they change: size,
orientation, pages, facing pages, margins, columns, gutter, bleed and slug.
It is off by default and kept for the session. Fields that don't hold a
value yet, and sizes file.new refuses, keep the last preview.
The engine keeps the preview document (Session::preview_new_document,
end_new_document_preview): it replaces itself in its tab, takes no
Untitled number and is never written as recovery data. Create removes it
and makes the document with file.new, so it starts with a clean undo
history. Close, Escape, ui.dialog.cancel, turning Preview off or another
dialog replacing the window remove it and show the previously active
document again, unchanged.
Round cached doubles to 15 significant digits, so =0.1+0.2 reads 0.3,
and write very large or small values with an exponent (1E+300).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Keep small and high-precision numbers intact in table placement and data merge. Honor cached formula strings as text, including leading zeros and whitespace.
Co-Authored-By: OpenAI Codex <noreply@openai.com>