tinymist/Cargo.toml
Myriad-Dreamin 81ebc8a635
feat: implement expression checker (#714)
* feat: implements expression checker

* dev: resolve information

* dev: delete def_use

* stage

* stage

* stage

* stage concurrent

* stage concurrent

* dev: better concurrency

* dev: final constant evaluation improvement

* dev: change reference site

* dev: handle comments

* dev: remove indirect import structure

* dev: adjust linked_def impl

* dev: finalize goto definition impl

* dev: replace all old import and def_use analyses with expr analysis

* dev: update expr_of snapshots

* dev: split def/expr, refactor definition

* dev: more consistent definition solver

* dev: rename definition crate

* dev: references work again

* dev: resolve root decl

* dev: resolve root decl

* dev: resolve global definitions

* dev: resolve tokens with world

* feat: render semantic tokens with expression information

* dev: loop detection

* dev: recover type checking

* dev: recover more type checking

* dev: refactor analysis context

* fix: process case of spread left

* dev: label inference

* dev: recover more signature checking

* dev: recover more ident reference checking

* dev: pass all tests

* Revert "dev: dirty changes"

This reverts commit 9ae2dacd0c96851e088feea76c61c184a1cf9722.

* test: update snapshot

* fix: bad cached signatures

* fix: slash problem
2024-10-25 23:52:11 +08:00

211 lines
6.6 KiB
TOML

[workspace.package]
description = "An integrated language service for Typst."
authors = ["Myriad-Dreamin <camiyoru@gmail.com>", "Nathan Varner"]
version = "0.12.0"
edition = "2021"
readme = "README.md"
license = "Apache-2.0"
homepage = "https://github.com/Myriad-Dreamin/tinymist"
repository = "https://github.com/Myriad-Dreamin/tinymist"
rust-version = "1.80"
[workspace]
resolver = "2"
members = ["crates/*", "contrib/typlite", "tests"]
[workspace.dependencies]
# Basic Infra
anyhow = "1"
if_chain = "1"
itertools = "0.13"
once_cell = "1"
paste = "1.0"
cfg-if = "1.0"
strum = { version = "0.26.2", features = ["derive"] }
quote = "1"
syn = "2"
triomphe = { version = "0.1.10", default-features = false, features = ["std"] }
# Asynchoronous and Multi-threading
async-trait = "0.1.77"
futures = "0.3"
rayon = "1.10.0"
tokio = { version = "1.36.0", features = [
"macros",
"rt-multi-thread",
"io-std",
] }
tokio-util = { version = "0.7.10", features = ["compat"] }
# System
open = { version = "5.1.3" }
parking_lot = "0.12.1"
walkdir = "2"
chrono = "0.4"
dirs = "5"
# Networking
hyper = { version = "1", features = ["full"] }
hyper-util = { version = "0.1.7", features = ["tokio"] }
hyper-tungstenite = "0.14.0"
# Algorithms
base64 = "0.22"
regex = "1.10.5"
rustc-hash = { version = "2", features = ["std"] }
siphasher = "1"
# Data Structures
comemo = "0.4"
# We need to freeze the version of the crate, as the raw-api feature is considered unstable
dashmap = { version = "=5.5.3", features = ["raw-api"] }
ecow = "0.2.2"
ena = "0.14.2"
hashbrown = { version = "0.14", features = [
"inline-more",
], default-features = false }
indexmap = "2.1.0"
rpds = "1"
# Data/Text Format and Processing
biblatex = "0.9"
pathdiff = "0.2"
percent-encoding = "2"
rust_iso639 = "0.0.1"
rust_iso3166 = "0.1.4"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde_yaml = "0.9"
toml = { version = "0.8", default-features = false, features = [
"parse",
"display",
] }
ttf-parser = "0.20.0"
unicode-script = "0.5"
unscanny = "0.1"
yaml-rust2 = "0.8"
# Logging
codespan-reporting = "0.11"
env_logger = "0.11.3"
log = "0.4"
# Typst
reflexo = { version = "0.5.0-rc8", default-features = false, features = [
"flat-vector",
] }
reflexo-world = { version = "0.5.0-rc8", features = ["system"] }
reflexo-typst = { version = "0.5.0-rc8", features = [
"system",
], default-features = false }
reflexo-vec2svg = { version = "0.5.0-rc8" }
reflexo-typst-shim = { version = "0.5.0-rc8", features = ["nightly"] }
typst = "0.12.0"
typst-timing = "0.12.0"
typst-svg = "0.12.0"
typst-render = "0.12.0"
typst-pdf = "0.12.0"
typst-syntax = "0.12.0"
typst-assets = "0.12.0"
typstfmt_lib = { git = "https://github.com/astrale-sharp/typstfmt", tag = "0.2.7" }
typstyle = { version = "0.12.0", default-features = false }
typlite = { path = "./crates/typlite" }
typst-shim = { path = "./crates/typst-shim", features = ["nightly"] }
# LSP
crossbeam-channel = "0.5.12"
lsp-server = "0.7.6"
lsp-types = { version = "=0.95.0", features = ["proposed"] }
sync-lsp = { path = "./crates/sync-lsp", features = ["clap"] }
# CLI
clap = { version = "4.5", features = ["derive", "env", "unicode", "wrap_help"] }
clap_builder = { version = "4.5", features = ["string"] }
clap_complete = "4.5"
clap_complete_fig = "4.5"
clap_complete_nushell = "4.5.3"
clap_mangen = { version = "0.2.22" }
vergen = { version = "8.3.1", features = [
"build",
"cargo",
"git",
"gitcl",
"rustc",
] }
# Testing
dhat = "0.3.3"
divan = "0.1.14"
insta = { version = "1.39", features = ["glob"] }
# Our Own Crates
typst-preview = { path = "./crates/typst-preview" }
tinymist-assets = { version = "0.12.0" }
tinymist = { path = "./crates/tinymist/" }
tinymist-derive = { path = "./crates/tinymist-derive/" }
tinymist-analysis = { path = "./crates/tinymist-analysis/" }
tinymist-query = { path = "./crates/tinymist-query/" }
tinymist-world = { path = "./crates/tinymist-world/" }
tinymist-render = { path = "./crates/tinymist-render/" }
[profile.dev.package.insta]
opt-level = 3
[profile.dev.package.similar]
opt-level = 3
[profile.release]
# lto = true # Enable link-time optimization
codegen-units = 1 # Reduce number of codegen units to increase optimizations
panic = "abort" # Abort on panic
[profile.gh-release]
inherits = "release"
debug = true
[workspace.lints.rust]
missing_docs = "warn"
[workspace.lints.clippy]
uninlined_format_args = "warn"
# missing_errors_doc = "warn"
# missing_panics_doc = "warn"
missing_safety_doc = "warn"
undocumented_unsafe_blocks = "warn"
[patch.crates-io]
# tinymist-assets = { path = "./crates/tinymist-assets/" }
typst = { git = "https://github.com/Myriad-Dreamin/typst.git", tag = "tinymist-v0.12.0" }
typst-timing = { git = "https://github.com/Myriad-Dreamin/typst.git", tag = "tinymist-v0.12.0" }
typst-svg = { git = "https://github.com/Myriad-Dreamin/typst.git", tag = "tinymist-v0.12.0" }
typst-render = { git = "https://github.com/Myriad-Dreamin/typst.git", tag = "tinymist-v0.12.0" }
typst-pdf = { git = "https://github.com/Myriad-Dreamin/typst.git", tag = "tinymist-v0.12.0" }
typst-syntax = { git = "https://github.com/Myriad-Dreamin/typst.git", tag = "tinymist-v0.12.0" }
# typst = { path = "../typst/crates/typst" }
# typst-timing = { path = "../typst/crates/typst-timing" }
# typst-svg = { path = "../typst/crates/typst-svg" }
# typst-pdf = { path = "../typst/crates/typst-pdf" }
# typst-render = { path = "../typst/crates/typst-render" }
# typst-syntax = { path = "../typst/crates/typst-syntax" }
reflexo = { git = "https://github.com/Myriad-Dreamin/typst.ts/", rev = "c52a054ca31989e13eddc6f2cffb6db2ba5faa5d" }
reflexo-world = { git = "https://github.com/Myriad-Dreamin/typst.ts/", rev = "c52a054ca31989e13eddc6f2cffb6db2ba5faa5d" }
reflexo-typst = { git = "https://github.com/Myriad-Dreamin/typst.ts/", rev = "c52a054ca31989e13eddc6f2cffb6db2ba5faa5d" }
reflexo-typst2vec = { git = "https://github.com/Myriad-Dreamin/typst.ts/", rev = "c52a054ca31989e13eddc6f2cffb6db2ba5faa5d" }
reflexo-vec2svg = { git = "https://github.com/Myriad-Dreamin/typst.ts/", rev = "c52a054ca31989e13eddc6f2cffb6db2ba5faa5d" }
reflexo-typst-shim = { git = "https://github.com/Myriad-Dreamin/typst.ts/", rev = "c52a054ca31989e13eddc6f2cffb6db2ba5faa5d" }
# reflexo = { path = "../typst.ts/crates/reflexo/" }
# reflexo-world = { path = "../typst.ts/crates/reflexo-world/" }
# reflexo-typst = { path = "../typst.ts/crates/reflexo-typst/" }
# reflexo-typst2vec = { path = "../typst.ts/crates/conversion/typst2vec/" }
# reflexo-vec2svg = { path = "../typst.ts/crates/conversion/vec2svg/" }
# reflexo-typst-shim = { path = "../typst.ts/crates/reflexo-typst-shim/" }
# typstyle = { path = "../typstyle" }