tinymist/editors/helix
Myriad-Dreamin 2c38695b6f
docs: maintain readme and command docs (#733)
* docs: maintain readme and command docs

* docs: update inline images

* test: update snapshot

* test: update baseline

* test: update baseline
2024-10-26 22:47:12 +08:00
..
README.md docs: maintain readme and command docs (#733) 2024-10-26 22:47:12 +08:00

Tinymist Helix Support for Typst

Run and configure tinymist in helix for Typst.

Features

See Tinymist Features for a list of features.

Finding Executable

To enable LSP, you must install tinymist. You can find tinymist by:

  • Night versions available at GitHub Actions.

  • Stable versions available at GitHub Releases.

    If you are using the latest version of typst-ts-mode, then you can use command typst-ts-lsp-download-binary to download the latest stable binary of tinymist at typst-ts-lsp-download-path.

  • Build from source by cargo. You can also compile and install latest tinymist by Cargo.

    cargo install --git https://github.com/Myriad-Dreamin/tinymist --locked tinymist
    

Setup Server

Update .config/helix/languages.toml to use tinymist.

[language-server.tinymist]
command = "tinymist"

[[language]]
name = "typst"
language-servers = ["tinymist"]

Tips

Working with Multiple-File Projects

There is a way in Neovim, but you cannot invoke related commands with arguments by :lsp-workspace-command in helix. As a candidate solution, assuming your having following directory layout:

├── .helix
│   └── languages.toml
└── main.typ

You could create .helix/languages.toml in the project folder with the following contents:

[language-server.tinymist.config]
typstExtraArgs = ["main.typ"]

Then all diagnostics and autocompletion will be computed according to the main.typ.

Note: With that configuration, if youre seeing a file that is not reachable by main.typ, you will not get diagnostics and autocompletion correctly in that file.

Extra Settings

To configure language server, you can edit the language-server.tinymist section. For example, if you want to export PDF on typing and output files in $root_dir/target directory:

[language-server.tinymist]
command = "tinymist"
config = { exportPdf = "onType", outputPath = "$root/target/$dir/$name" }

See Tinymist Server Configuration for references.