mirror of
https://github.com/Myriad-Dreamin/tinymist.git
synced 2025-12-23 08:47:50 +00:00
* fix: update copilot instructions for offline testing * efat: add PR title convention * feat: add PR title convention * feat: add PR title convention
2.2 KiB
2.2 KiB
This is a Rust+JavaScript repository. It builds:
- A Rust binary serves language features:
lsp: Runs language serverdap: Runs debug adapterpreview: Runs preview server
- The JavaScript VS Code extension.
- The lua plugin for Neovim.
It is primarily responsible for providing integrated typst language service to various editors like VS Code, Neovim, Emacs, and Zed. Please follow these guidelines when contributing:
Code Standards
Keep Good PR Title
Determine a good PR prefix only by the PR description before work. Add a prefix to indicate what kind of release this pull request corresponds to. For reference, see https://www.conventionalcommits.org/
Available types:
- dev
- feat
- fix
- docs
- style
- refactor
- perf
- test
- build
- ci
- chore
- revert
Required Before Each Commit
- Run
yarn fmtto format Rust/JavaScript files - This will run formatters on all necessary files to maintain consistent style
Development Flow
- Build Server:
cargo build - Build VS Code Extension:
cd editors/vscode && yarn build - Full CI check:
cargo clippy --workspace --all-targets - Test Server:
cargo test --workspace -- --skip=e2eNote that, in the envoironment where network is not available (copilot or nix actions), we should also skip following tests:completion::tests::test_pkgs docs::package::tests::cetz docs::package::tests::fletcher docs::package::tests::tidy docs::package::tests::touying
Repository Structure
crates/: rust crates for the server and related functionalityeditors/vscode/: VS Code extension codeeditors/neovim/: Lua plugin for Neovimtools/editor-tools: utility GUI tools for typsttools/typst-preview-frontend: Preview GUI for typstdocs/: documentation for the projectlocales/: localization files for the entire projecttests/: integration tests for the server and editorssyntaxes/: textmate syntax definitions for typst
Key Guidelines
- Follow Rust and JavaScript best practices and idiomatic patterns
- Maintain existing code structure and organization
- Write unit tests for new functionality. Use snapshot-based unit tests when possible.
- Document public APIs and complex logic in code comments