tinymist/editors/emacs
Myriad-Dreamin 1210b54515
Some checks are pending
tinymist::ci / publish-vscode (push) Blocked by required conditions
tinymist::ci / build-vsc-assets (push) Blocked by required conditions
tinymist::ci / build-vscode (push) Blocked by required conditions
tinymist::ci / build-vscode-others (push) Blocked by required conditions
tinymist::ci / Duplicate Actions Detection (push) Waiting to run
tinymist::ci / Check Clippy, Formatting, Completion, Documentation, and Tests (Linux) (push) Waiting to run
tinymist::ci / Check Minimum Rust version and Tests (Windows) (push) Waiting to run
tinymist::ci / E2E Tests (darwin-arm64 on macos-latest) (push) Blocked by required conditions
tinymist::ci / E2E Tests (linux-x64 on ubuntu-22.04) (push) Blocked by required conditions
tinymist::ci / E2E Tests (linux-x64 on ubuntu-latest) (push) Blocked by required conditions
tinymist::ci / E2E Tests (win32-x64 on windows-2022) (push) Blocked by required conditions
tinymist::ci / E2E Tests (win32-x64 on windows-latest) (push) Blocked by required conditions
tinymist::ci / prepare-build (push) Waiting to run
tinymist::ci / build-binary (push) Blocked by required conditions
tinymist::gh_pages / build-gh-pages (push) Waiting to run
feat: finally directly generate markdown files (#1881)
* feat: finally directly generate markdown files

* fix: trim

* fix: await
2025-07-07 13:11:23 +08:00
..
README.md feat: finally directly generate markdown files (#1881) 2025-07-07 13:11:23 +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.