tinymist/CONTRIBUTING.md
Myriad-Dreamin bf739d8367
build: bump version to 0.11.1 (#106)
* build: bump version to 0.11.1

* build: add changelog for v0.11.1

* fix: wrong changelog

* docs: update readme

* docs: update changelog
2024-03-27 10:30:50 +08:00

1.5 KiB
Raw Blame History

Contributing

Tinymist provides a single integrated language service for Typst.

Multiple Actors The main component, tinymist, starts as a thread or process, obeying the Language Server Protocol. tinymist will bootstrap multiple actors, each of which provides some typst feature.

Multi-level Analysis The most critical features are lsp functions, built on the tinymist-query crate. To achieve low latency, functions are classified into different levels of analysis.

  • query_token_cache TokenRequest locks and accesses token cache.
  • query_source SyntaxRequest locks and accesses a single source unit.
  • query_world SemanticRequest locks and accesses multiple source units.
  • query_state StatefulRequest acquires to accesses a specific version of compile results.

Optional Features All rest features in tinymist are optional. The significant features are enabled by default, but you can disable them with feature flags. For example, tinymist provides preview server features powered by typst-preview.

Editor Frontends Leveraging the interface of LSP, tinymist provides frontends to each editor, located in the editor folder.

Build and run

To build tinymist LSP:

git clone https://github.com/Myriad-Dreamin/tinymist.git
cargo build

To run VS Code extension locally, open the repository in VS Code and press F5 to start a debug session to extension.