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.lockto help manage documents and their dependencies on large multiple-files projects. This is still experimental and disabled by default. - The
tinymist.lockalong 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
ccto v1.2.11 (#1162) in #1258 - Downgraded
tempfileto 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-cliandtypst-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, andvfsin #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.statusBarFormatin the settings.
- You can customize it by setting
Drop and Paste
- Added support to drag and drop
.xlsxfiles by @hongjr03 in #1100 and #1166 - Added support to drag and drop
.odsfiles 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
typliteraw 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
bibliographyand 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.lockwith toml language in #1143 - Initiating
lockDatabaseproject resolution in #1201 - Resolving projects by
lockDatabasein #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-lspcrate 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)