v0.12.20
We massively changed the internal world implementation. This unblocks many new features:
- It computes dependencies of compilation accurately. It was not correct because compilations and analyzers runs on a same world at the same time.
- It only compiles documents when file changes really affect the compilation, because we now tracks dependencies correctly.
- It now adds new project model with a
tinymist.lock
to help manage documents and their dependencies on large multiple-files projects. This is still experimental and disabled by default. - The
tinymist.lock
along with the browsing preview is expected to greatly help people work on large and complex projects using any of their faviorite editors.
For tinymist.lock
feature, please check the tinymist.projectResolution = "lockDatabase". This is still experimental for multiple-files projects.
- Bumped
cc
to v1.2.11 (#1162) in #1258 - Downgraded
tempfile
to v3.15.0 in #1259 - Bumped typstyle to v0.12.15 by @Eric-Song-Nop in #1260 and #1324
CLI
-
Added CLI compile command in #1193 and #1218
- The compile command is mainly used for compiling documents with updating lock file. Using:
tinymist compile --save-lock tinymist.lock
- This could also be used for comparing the coompile performance of
tinymist-cli
andtypst-cli
.
-
Generating shell build script according to the lock file in #1219
Compiler
- (Fix) Fixed a panic when getting font index which is hit by comemo in #1213
- This could be true when the fonts are hot reloaded.
- (Fix) Emiting latest status and artifact with correct signals (#1294) in #1330
- Because of this, the compile status bar was not updated correctly.
- (Perf) Detecting compilation-related vfs changes in #1199
- (Perf) Scatter-gathering the editor diagnostics in #1246
- Moved world implementation to tinymist in #1177, #1183, #1185, #1186, and #1187
- Reduced size of the watch entry in #1190 and #1191
- Tracking fine-grained revisions of
font
,registry
,entry
, andvfs
in #1192- This prepares for better configuration hot reloading in future.
- Triggering project compilations on main thread in #1197
- This helps apply more advanced compilation strategy with sync and mutable state on the main thread. For example, Filtering out unreleated file changes has been applied.
Editor
- Showing name of the compiling file in the status bar in #1147
- You can customize it by setting
tinymist.statusBarFormat
in the settings.
- You can customize it by setting
Drop and Paste
- Added support to drag and drop
.xlsx
files by @hongjr03 in #1100 and #1166 - Added support to drag and drop
.ods
files by @hongjr03 in #1217 - Added more known image extensions to the drop provider in #1308
- Added
.avif
,.jpe
,.psd
,.tga
,.tif
, and.tiff
, which are copied from the markdown extension.
- Added
- Added support to paste media files (images, audios, and videos) into typst documents in #1306
- Canceling codelens if any picker is cancelled in #1314
2025-02-17.22-38-22.mp4
Label View
Typlite
- Evaluating table and grid by @hongjr03 in #1300
- Embedding Markdown codes by
typlite
raw block by @hongjr03 in #1296 and #1323 - Rendering context block contextually by @hongjr03 in #1305
Preview
- (Fix) Logging error on channel closed instead of panicking in #1347
- This may happen when the preview is broadcasting and the clients hasn't connected to the server.
- Rescaling with Ctrl+=/- in browser (in addition to ctrl+wheel) by @tmistele in #1110
- Prevented malicious websites from connecting to http / websocket server by @tmistele and @Myriad-Dreamin in #1157 and #1337
- Browsing preview in #1234
2025-02-18.20-13-00.mp4
Code Analysis
- (Fix) Capturing docs before check init in #1195
- (Fix) Considering interpret mode when classifying dot accesses in #1302
- Added
depended_{paths,{source_,}files}
methods in #1150 - Preferring to select the previous token when cursor is before a marker in #1175
- Support more path types and add path parameters (#1312) in #1331
- Completes mutiple paths on
bibliography
and completes wasm files onplugin
.
- Completes mutiple paths on
Crityp (New)
- Added micro benchmark support in #1160
- For example, the benchmark shows that
fib(20)
on rust (16us) is 40 times faster than that on typst (940us). - Check crityp for usage.
- For example, the benchmark shows that
Codelens
- Moved less used codelens into a single "more" codelens in #1315
Wasm
tinymist.lock
- Copied flock implementation from cargo in #1140
- Generating and updating declarative project lock file in #1133, #1149, #1151, #1152, #1153, #1154
- Modeling project tasks in #1202
- Associating
tinymist.lock
with toml language in #1143 - Initiating
lockDatabase
project resolution in #1201 - Resolving projects by
lockDatabase
in #1142 - Executing export and query on the task model in #1214
Misc
- Revised neovim's install section by @SylvanFranklin and @YDX-2147483647 in #1090 and #1276
- Added release instruction by @ParaN3xus and @Myriad-Dreamin in #1163, #1169, #1173, and #1212
- Documenting
sync-lsp
crate in #1155 - CI used newest deploy-pages, upload-pages-artifact, and configure-pages actions in #1249 and #1251
- Documenting Myriad-Dreamin's workspace setting in #1264
- CI Added release crates action in #1298
- Published {tinymist-{derive,analysis,std,vfs,world,project},typlite,crityp} crates in #1310
Full Changelog: v0.12.18...v0.12.20
Download Binary
Install tinymist 0.12.20
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/Myriad-Dreamin/tinymist/releases/download/v0.12.20/tinymist-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/Myriad-Dreamin/tinymist/releases/download/v0.12.20/tinymist-installer.ps1 | iex"
Download tinymist 0.12.20
File | Platform | Checksum |
---|---|---|
tinymist-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
tinymist-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
tinymist-aarch64-pc-windows-msvc.zip | ARM64 Windows | checksum |
tinymist-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
tinymist-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
tinymist-loongarch64-unknown-linux-gnu.tar.gz | LOONGARCH64 Linux | checksum |
tinymist-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
tinymist-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
tinymist-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
tinymist-loongarch64-unknown-linux-musl.tar.gz | LOONGARCH64 MUSL Linux | checksum |
tinymist-riscv64gc-unknown-linux-musl.tar.gz | RISCV MUSL Linux | checksum |
tinymist-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
tinymist-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
tinymist-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum |
Download VS Code Extension
Download tinymist VS Code Extension 0.12.20
File | Platform | Assets |
---|---|---|
tinymist-win32-x64.vsix | x64 Windows | Binary, Debug Symbols |
tinymist-win32-arm64.vsix | ARM64 Windows | Binary, Debug Symbols |
tinymist-linux-x64.vsix | x64 Linux | Binary, Debug Symbols |
tinymist-linux-arm64.vsix | ARM64 Linux | Binary, Debug Symbols |
tinymist-linux-armhf.vsix | ARMv7 Linux | Binary, Debug Symbols |
tinymist-darwin-x64.vsix | Intel macOS | Binary, Debug Symbols |
tinymist-darwin-arm64.vsix | Apple Silicon macOS | Binary, Debug Symbols |
tinymist-alpine-x64.vsix | x64 Alpine Linux | Binary, Debug Symbols |
tinymist-alpine-arm64.vsix | ARM64 Alpine Linux | Binary, Debug Symbols |
tinymist-web.vsix | Browser (Web) | |
tinymist-universal.vsix | Other Platforms (Universal) |