You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added
Live preview that updates as you type. The preview pane can now render through tinymist's own preview engine
instead of exporting a PDF and displaying it. Edits appear in the pane within a few milliseconds of the keystroke — no
save, no export, and only the changed part of the page is redrawn. A Live / PDF toggle in the preview toolbar
chooses the renderer per editor tab, so several .typ files can be open in different modes; the new Default preview
mode setting picks what a freshly opened tab starts in. Live preview is the default. If it cannot start — an old
tinymist, a refused port — the pane falls back to the PDF renderer on its own and says so in the Typst Output console. Compile and Export write a PDF and report to the console whichever renderer the pane is using, and never
switch it: a pane in PDF mode reloads, a pane in Live mode carries on rendering live (issue #109).
Editors showing the same document share one live preview. With a main entry pinned, every open chapter compiles
through that main, so they all display the same document — one render serves them all, started when the first such tab
opens and stopped when the last one closes. With no main entry pinned, every file gets its own live preview, as do .typ files outside the project (issue #109).
The live preview follows the cursor. It scrolls to the part of the document you are editing, keeps up as you move
around, and re-syncs when you switch back to a tab — so the preview shows the passage you are working on rather than
wherever you last left it. Turn it off with Scroll the live preview to follow the cursor in Settings > Tools >
Typst. Two things to know: editors sharing one live preview scroll together, because the scroll belongs to the shared
render rather than to a pane; and a file opened for the very first time has its cursor at the start, so the preview
begins at the top of the document until you move it (issue #109).
Click the preview to jump to the source. Clicking a spot in the live preview takes the editor to the matching
place in the .typ file that produced it, opening the file if it is not already open — useful in a multi-file
project, where the passage you are looking at often lives in a chapter you do not have in front of you (issue #109).
Pin a main entry file for multi-file projects. In a project where main.typ#includes a tree of chapter files,
opening a chapter on its own used to compile it in isolation, so every cross-file reference (@ch:cases pointing at a
label declared elsewhere) reported "label does not exist" — errors that vanished only when main.typ was reopened.
Right-click a .typ file and choose Pin as Typst Main File (or set it in Settings > Tools > Typst > Project
Overrides) and the whole project is compiled through that entry instead: cross-references resolve, the editor stops
reporting phantom errors, and the preview shows the complete document while you edit any chapter. Unpin Typst Main
File reverts to compiling whichever file is focused. The pin is re-applied automatically whenever the language
server restarts (issue #97).
Fixed
tinymist is no longer re-downloaded after every plugin update. The managed binary was kept inside the plugin's
own installation folder, which an update deletes and replaces, so each upgrade silently threw it away and downloaded
it again. It now lives alongside the IDE's other cached data and survives updates. Upgrading to this version
downloads it once more, into the new location.
The preview no longer gets stuck on "Compiling…" after a compile fails. A failed compile now keeps its error pane on
screen until the next successful compile, instead of being painted over by the waiting splash and hiding the
diagnostic (issue #98).
.typ files outside the project are compiled as themselves even when a main entry is pinned, rather than being
redirected to the project's document (issue #99).
Several reliability problems on the compile path (issue #101):
Compiling no longer fails with "failed to persist temporary file: Access is denied" when several editor tabs refresh
at once; simultaneous compiles of the same document are now merged into one.
Compile requests are no longer sent to the wrong language server, which reported "file not found" for files that
exist — most visibly after a file was created or replaced outside the IDE.
Applying a project setting no longer leaves out-of-project .typ files without a language server until their editor
is closed and reopened.
Compile now saves modified files first, so it no longer produces a PDF of the previously saved text while
reporting success.
A language server that stops unexpectedly is restarted automatically, instead of leaving the preview waiting
indefinitely.
Changed
Saving no longer writes a PDF while the preview is in Live mode. Previously the preview refreshed by exporting, so
every save left an updated PDF in the export directory (target/ by default) as a side effect. A live preview renders
without producing a file, so with the new default the PDF on disk is written only when you ask for one — Compile
(Ctrl+Shift+T) or Export. If you relied on save-writes-a-PDF (a build script watching target/, an external viewer open on the file), switch the preview toolbar toggle to PDF, or set Default preview
mode to PDF to restore the previous behaviour everywhere.
The preview follows your typing rather than your saves. In Live mode the pane no longer waits for Ctrl+S. It can be put back on a save cadence with the Update live preview on every keystroke setting
without leaving Live mode.
A compile error leaves the Live preview showing the last good version, not an error page. The live renderer keeps
the most recent successful render, so a document that has never compiled shows an empty pane instead of a message.
The errors themselves are unaffected — they appear in the editor gutter and in the Typst Output console as
before. Switch the pane to PDF for the previous behaviour, where a failed compile replaces the preview with an
error page.
Jumping from the preview to the source does not move the keyboard focus when the target file is already open in
front of you: the line is highlighted, but the cursor stays where it was and typing still goes to the preview. Click
into the editor to carry on. Jumping to a file that is not already open behaves normally, placing the cursor and
moving focus with it. This is the IDE's handling of the language server's request rather than a limit of Typst
itself, and it is being tracked for a follow-up.
The bundled tinymist language server is now pinned to v0.15.2 (from v0.14.18). Users who already have an
auto-downloaded tinymist keep their existing binary — the new pin applies to fresh downloads.