tinymist/editors/emacs
Myriad-Dreamin 483de6f00d
build: generate docs with internal links (#1831)
* build: generate docs with internal links

* build: detect link kind
2025-06-22 15:28:27 +08:00
..
README.md build: generate docs with internal links (#1831) 2025-06-22 15:28:27 +08:00

Tinymist Emacs Support for Typst

Run and configure tinymist in Emacs 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

(with-eval-after-load 'eglot
  (with-eval-after-load 'typst-ts-mode
    (add-to-list 'eglot-server-programs
                 `((typst-ts-mode) .
                   ,(eglot-alternatives `(,typst-ts-lsp-download-path
                                          "tinymist"
                                          "typst-lsp"))))))

Above code adds tinymist downloaded by typst-ts-lsp-download-binary, tinymist in your PATH and typst-lsp in your PATH to the typst-ts-mode entry of eglot-server-programs.

Extra Settings

Configuring Language Server

You can either use eglot-workspace-configuration or specifying launch arguments for tinymist.

eglot-workspace-configuration

For example, if you want to export PDF on save:

  (setq-default eglot-workspace-configuration
                '(:tinymist (:exportPdf "onSave")))

You can also have configuration per directory. Be sure to look at the documentation of eglot-workspace-configuration by describe-symbol..

See Tinymist Server Configuration for references.

Launch Arguments

For example:

(with-eval-after-load 'eglot
  (with-eval-after-load 'typst-ts-mode
    (add-to-list 'eglot-server-programs
                 `((typst-ts-mode) .
                   ,(eglot-alternatives `((,typst-ts-lsp-download-path "--font-path" "<your-font-path>")
                                          ("tinymist" "--font-path" "<your-font-path>")
                                          "typst-lsp"))))))

You can run command tinymist help lsp to view all available launch arguments for configuration.