Typstry v0.4.0
Pre-release
Pre-release
Typstry v0.4.0 introduces permanent tab pinning for the main workspace document, automated editor sync with the sidebar explorer, and security improvements for file deletions and non-redistributable font assets.
Highlights
- Added pinned main-document support to anchor the active main file permanently to the first tab position.
- Implemented automatic file revealing and folder expansion in the sidebar explorer tree upon tab switches.
- Added delete protection to block accidental deletion of the pinned main file or its parent directories.
- Rewrote PDF preview export to guarantee that exported PDFs visually match active live previews (including template wraps and Khmer grapheme adjustments).
- Isolated standalone preview compilations to prevent document leakage or cache corruption in multi-file workspaces.
- Fixed Khmer selection midpoint-rounding errors that caused drag-selections to omit the first grapheme of a line.
- Resolved Hunspell spellcheck popups interfering with Typst LSP autocomplete options in code contexts.
- Polished settings UI and welcome screen with a project import icon and provider stability status labels.
Preview and synchronization
- Standardized cached rendering mirrors to correctly copy hidden
.typstry-previewcompilation files to prevent Tinymist "file not found" failures. - PDF preview exports now bundle and check personal dictionaries, Khmer zero-width spacing (ZWS), and dirty drafts to output a perfect visual copy.
- Separated preview session states so standalone preview tabs do not inherit or pollute main file build records.
- Improved tab bar scroll-viewport calculations so scrolled-into-view tabs are never covered by the sticky pinned tab.
Complex-script editing
- Grapheme-snapping boundary calculations now use
<and<=comparisons correctly, preventing keyboard/mouse selections from omitting initial Khmer characters. - Disabled spellcheck triggers inside Typst code hashes (e.g.
#align), ensuring the autocomplete popup falls back smoothly to LSP syntax completions.
Project workflow
- The pinned main file tab is placed at index
0of the tab list, has its close (x) button removed, and is protected against close actions. - Unsetting a file as the main file instantly renders the tab back to a normal closeable, scrollable element.
- Added
getPinnedMainFilepath comparisons inside the workspace explorer context menu to throw a"The active main document cannot be deleted."native warning if deletion is triggered on the main document. - Cleaned up unused imports and duplicate esbuild variable declarations that caused Vite build failures.