336 lines
11 KiB
TOML
336 lines
11 KiB
TOML
[workspace]
|
|
resolver = "2"
|
|
members = ["crates/askpass", "crates/assets", "crates/clock", "crates/collections", "crates/fs", "crates/fsevent", "crates/git", "crates/gpui", "crates/gpui_macros", "crates/http_client", "crates/http_client_tls", "crates/icons", "crates/media", "crates/migrator", "crates/net", "crates/paths", "crates/proto", "crates/refineable", "crates/release_channel", "crates/reqwest_client", "crates/rope", "crates/scheduler", "crates/settings", "crates/settings_json", "crates/settings_macros", "crates/sum_tree", "crates/text", "crates/theme", "crates/util", "crates/util_macros", "crates/zlog", "crates/ztracing", "crates/ztracing_macro", "tooling/perf"]
|
|
|
|
[workspace.package]
|
|
publish = false
|
|
edition = "2024"
|
|
|
|
|
|
[workspace.dependencies.windows]
|
|
version = "0.61"
|
|
features = [
|
|
"Foundation_Numerics",
|
|
"Storage_Search",
|
|
"Storage_Streams",
|
|
"System_Threading",
|
|
"UI_ViewManagement",
|
|
"Wdk_System_SystemServices",
|
|
"Win32_Globalization",
|
|
"Win32_Graphics_Direct3D",
|
|
"Win32_Graphics_Direct3D11",
|
|
"Win32_Graphics_Direct3D_Fxc",
|
|
"Win32_Graphics_DirectComposition",
|
|
"Win32_Graphics_DirectWrite",
|
|
"Win32_Graphics_Dwm",
|
|
"Win32_Graphics_Dxgi",
|
|
"Win32_Graphics_Dxgi_Common",
|
|
"Win32_Graphics_Gdi",
|
|
"Win32_Graphics_Imaging",
|
|
"Win32_Graphics_Hlsl",
|
|
"Win32_Networking_WinSock",
|
|
"Win32_Security",
|
|
"Win32_Security_Credentials",
|
|
"Win32_Security_Cryptography",
|
|
"Win32_Storage_FileSystem",
|
|
"Win32_System_Com",
|
|
"Win32_System_Com_StructuredStorage",
|
|
"Win32_System_Console",
|
|
"Win32_System_DataExchange",
|
|
"Win32_System_IO",
|
|
"Win32_System_LibraryLoader",
|
|
"Win32_System_Memory",
|
|
"Win32_System_Ole",
|
|
"Win32_System_Performance",
|
|
"Win32_System_Pipes",
|
|
"Win32_System_SystemInformation",
|
|
"Win32_System_SystemServices",
|
|
"Win32_System_Threading",
|
|
"Win32_System_Variant",
|
|
"Win32_System_WinRT",
|
|
"Win32_UI_Controls",
|
|
"Win32_UI_HiDpi",
|
|
"Win32_UI_Input_Ime",
|
|
"Win32_UI_Input_KeyboardAndMouse",
|
|
"Win32_UI_Shell",
|
|
"Win32_UI_Shell_Common",
|
|
"Win32_UI_Shell_PropertiesSystem",
|
|
"Win32_UI_WindowsAndMessaging",
|
|
]
|
|
|
|
[profile.dev]
|
|
split-debuginfo = "unpacked"
|
|
# https://github.com/rust-lang/cargo/issues/16104
|
|
incremental = false
|
|
codegen-units = 16
|
|
|
|
# mirror configuration for crates compiled for the build platform
|
|
# (without this cargo will compile ~400 crates twice)
|
|
[profile.dev.build-override]
|
|
codegen-units = 16
|
|
|
|
[profile.dev.package]
|
|
# proc-macros start
|
|
gpui_macros = { opt-level = 3 }
|
|
derive_refineable = { opt-level = 3 }
|
|
settings_macros = { opt-level = 3 }
|
|
sqlez_macros = { opt-level = 3, codegen-units = 1 }
|
|
ui_macros = { opt-level = 3 }
|
|
util_macros = { opt-level = 3 }
|
|
quote = { opt-level = 3 }
|
|
syn = { opt-level = 3 }
|
|
proc-macro2 = { opt-level = 3 }
|
|
# proc-macros end
|
|
|
|
taffy = { opt-level = 3 }
|
|
resvg = { opt-level = 3 }
|
|
wasmtime = { opt-level = 3 }
|
|
# Build single-source-file crates with cg=1 as it helps make `cargo build` of a whole workspace a bit faster
|
|
activity_indicator = { codegen-units = 1 }
|
|
assets = { codegen-units = 1 }
|
|
breadcrumbs = { codegen-units = 1 }
|
|
collections = { codegen-units = 1 }
|
|
command_palette = { codegen-units = 1 }
|
|
command_palette_hooks = { codegen-units = 1 }
|
|
feature_flags = { codegen-units = 1 }
|
|
file_icons = { codegen-units = 1 }
|
|
fsevent = { codegen-units = 1 }
|
|
image_viewer = { codegen-units = 1 }
|
|
edit_prediction_ui = { codegen-units = 1 }
|
|
install_cli = { codegen-units = 1 }
|
|
journal = { codegen-units = 1 }
|
|
json_schema_store = { codegen-units = 1 }
|
|
lmstudio = { codegen-units = 1 }
|
|
menu = { codegen-units = 1 }
|
|
notifications = { codegen-units = 1 }
|
|
ollama = { codegen-units = 1 }
|
|
outline = { codegen-units = 1 }
|
|
paths = { codegen-units = 1 }
|
|
prettier = { codegen-units = 1 }
|
|
project_symbols = { codegen-units = 1 }
|
|
refineable = { codegen-units = 1 }
|
|
release_channel = { codegen-units = 1 }
|
|
reqwest_client = { codegen-units = 1 }
|
|
session = { codegen-units = 1 }
|
|
snippet = { codegen-units = 1 }
|
|
snippets_ui = { codegen-units = 1 }
|
|
story = { codegen-units = 1 }
|
|
supermaven_api = { codegen-units = 1 }
|
|
telemetry_events = { codegen-units = 1 }
|
|
theme_selector = { codegen-units = 1 }
|
|
time_format = { codegen-units = 1 }
|
|
ui_input = { codegen-units = 1 }
|
|
zed_actions = { codegen-units = 1 }
|
|
|
|
[profile.release]
|
|
debug = "limited"
|
|
lto = "thin"
|
|
codegen-units = 1
|
|
|
|
[profile.release.package]
|
|
zed = { codegen-units = 16 }
|
|
|
|
[profile.release-fast]
|
|
inherits = "release"
|
|
debug = "full"
|
|
lto = false
|
|
codegen-units = 16
|
|
|
|
[workspace.lints.rust]
|
|
unexpected_cfgs = { level = "allow" }
|
|
|
|
[workspace.lints.clippy]
|
|
dbg_macro = "deny"
|
|
todo = "deny"
|
|
|
|
declare_interior_mutable_const = "deny"
|
|
|
|
redundant_clone = "deny"
|
|
disallowed_methods = "deny"
|
|
|
|
# We currently do not restrict any style rules
|
|
# as it slows down shipping code to Zed.
|
|
#
|
|
# Running ./script/clippy can take several minutes, and so it's
|
|
# common to skip that step and let CI do it. Any unexpected failures
|
|
# (which also take minutes to discover) thus require switching back
|
|
# to an old branch, manual fixing, and re-pushing.
|
|
#
|
|
# In the future we could improve this by either making sure
|
|
# Zed can surface clippy errors in diagnostics (in addition to the
|
|
# rust-analyzer errors), or by having CI fix style nits automatically.
|
|
style = { level = "allow", priority = -1 }
|
|
|
|
# Individual rules that have violations in the codebase:
|
|
type_complexity = "allow"
|
|
let_underscore_future = "allow"
|
|
|
|
# Motivation: We use `vec![a..b]` a lot when dealing with ranges in text, so
|
|
# warning on this rule produces a lot of noise.
|
|
single_range_in_vec_init = "allow"
|
|
|
|
# in Rust it can be very tedious to reduce argument count without
|
|
# running afoul of the borrow checker.
|
|
too_many_arguments = "allow"
|
|
|
|
# We often have large enum variants yet we rarely actually bother with splitting them up.
|
|
large_enum_variant = "allow"
|
|
|
|
# Boolean expressions can be hard to read, requiring only the minimal form gets in the way
|
|
nonminimal_bool = "allow"
|
|
|
|
[workspace.dependencies]
|
|
anyhow = "1.0.86"
|
|
ashpd = { version = "0.11", default-features = false, features = ["async-std"] }
|
|
askpass = { path = "crates/askpass" }
|
|
assets = { path = "crates/assets" }
|
|
async-compression = { version = "0.4", features = ["gzip", "futures-io"] }
|
|
async-fs = "2.1"
|
|
async-tar = "0.5.1"
|
|
async-task = "4.7"
|
|
async-trait = "0.1"
|
|
async_zip = { version = "0.0.18", features = ["deflate", "deflate64"] }
|
|
backtrace = "0.3"
|
|
bitflags = "2.6.0"
|
|
blade-graphics = { version = "0.7.0" }
|
|
blade-macros = { version = "0.3.0" }
|
|
blade-util = { version = "0.3.0" }
|
|
bytes = "1.0"
|
|
chrono = { version = "0.4", features = ["serde"] }
|
|
circular-buffer = "1.0"
|
|
clock = { path = "crates/clock" }
|
|
cocoa = "=0.26.0"
|
|
cocoa-foundation = "=0.2.0"
|
|
collections = { path = "crates/collections", version = "0.1.0" }
|
|
convert_case = "0.8.0"
|
|
core-foundation = "=0.10.0"
|
|
core-foundation-sys = "0.8.6"
|
|
core-video = { version = "0.4.3", features = ["metal"] }
|
|
criterion = { version = "0.5", features = ["html_reports"] }
|
|
ctor = "0.4.0"
|
|
derive_more = "0.99.17"
|
|
derive_refineable = { path = "crates/refineable/derive_refineable" }
|
|
dirs = "4.0"
|
|
ec4rs = "1.1"
|
|
env_logger = "0.11"
|
|
fs = { path = "crates/fs" }
|
|
fsevent = { path = "crates/fsevent" }
|
|
futures = "0.3"
|
|
futures-lite = "1.13"
|
|
git = { path = "crates/git" }
|
|
git2 = { version = "0.20.1", default-features = false }
|
|
globset = "0.4"
|
|
gpui = { path = "crates/gpui", default-features = false }
|
|
gpui_macros = { path = "crates/gpui_macros" }
|
|
heck = "0.5"
|
|
http = "1.1"
|
|
http-body = "1.0"
|
|
http_client = { path = "crates/http_client" }
|
|
http_client_tls = { path = "crates/http_client_tls" }
|
|
icons = { path = "crates/icons" }
|
|
ignore = "0.4.22"
|
|
image = "0.25.1"
|
|
indexmap = { version = "2.7.0", features = ["serde"] }
|
|
indoc = "2"
|
|
inventory = "0.3.19"
|
|
itertools = "0.14.0"
|
|
libc = "0.2"
|
|
log = { version = "0.4.16", features = ["kv_unstable_serde", "serde"] }
|
|
mach2 = "0.5"
|
|
media = { path = "crates/media" }
|
|
metal = "0.29"
|
|
migrator = { path = "crates/migrator" }
|
|
naga = { version = "25.0", features = ["wgsl-in"] }
|
|
net = { path = "crates/net" }
|
|
nix = "0.29"
|
|
objc = "0.2"
|
|
palette = { version = "0.7.5", default-features = false, features = ["std"] }
|
|
parking_lot = "0.12.1"
|
|
paths = { path = "crates/paths" }
|
|
perf = { path = "tooling/perf" }
|
|
postage = { version = "0.5", features = ["futures-traits"] }
|
|
pretty_assertions = { version = "1.3.0", features = ["unstable"] }
|
|
proc-macro2 = "1.0.93"
|
|
profiling = "1"
|
|
prost = "0.9"
|
|
prost-build = "0.9"
|
|
proto = { path = "crates/proto" }
|
|
quote = "1.0.9"
|
|
rand = "0.9"
|
|
rayon = "1.8"
|
|
refineable = { path = "crates/refineable" }
|
|
regex = "1.5"
|
|
release_channel = { path = "crates/release_channel" }
|
|
reqwest = { git = "https://github.com/zed-industries/reqwest.git", rev = "c15662463bda39148ba154100dd44d3fba5873a4", default-features = false, features = [
|
|
"charset",
|
|
"http2",
|
|
"macos-system-configuration",
|
|
"multipart",
|
|
"rustls-tls-native-roots",
|
|
"socks",
|
|
"stream",
|
|
], package = "zed-reqwest", version = "0.12.15-zed" }
|
|
reqwest_client = { path = "crates/reqwest_client" }
|
|
rope = { path = "crates/rope" }
|
|
rust-embed = { version = "8.4", features = ["include-exclude"] }
|
|
rustc-hash = "2.1.0"
|
|
rustls = { version = "0.23.26" }
|
|
rustls-platform-verifier = "0.5.0"
|
|
scap = { git = "https://github.com/zed-industries/scap", rev = "4afea48c3b002197176fb19cd0f9b180dd36eaac", default-features = false, package = "zed-scap", version = "0.0.8-zed" }
|
|
schemars = { version = "1.0", features = ["indexmap2"] }
|
|
semver = { version = "1.0", features = ["serde"] }
|
|
serde = { version = "1.0.221", features = ["derive", "rc"] }
|
|
serde_json = { version = "1.0.144", features = ["preserve_order", "raw_value"] }
|
|
serde_json_lenient = { version = "0.2", features = [
|
|
"preserve_order",
|
|
"raw_value",
|
|
] }
|
|
serde_path_to_error = "0.1.17"
|
|
serde_repr = "0.1"
|
|
serde_urlencoded = "0.7"
|
|
settings = { path = "crates/settings" }
|
|
settings_json = { path = "crates/settings_json" }
|
|
settings_macros = { path = "crates/settings_macros" }
|
|
sha2 = "0.10"
|
|
shlex = "1.3.0"
|
|
slotmap = "1.0.6"
|
|
smallvec = { version = "1.6", features = ["union", "const_new"] }
|
|
smol = "2.0"
|
|
stacksafe = "0.1"
|
|
streaming-iterator = "0.1"
|
|
strum = { version = "0.27.2", features = ["derive"] }
|
|
sum_tree = { path = "crates/sum_tree" }
|
|
syn = { version = "2.0.101", features = ["full", "extra-traits", "visit-mut"] }
|
|
take-until = "0.2.0"
|
|
tempfile = "3.20.0"
|
|
text = { path = "crates/text" }
|
|
theme = { path = "crates/theme" }
|
|
thiserror = "2.0.12"
|
|
time = { version = "0.3", features = [
|
|
"macros",
|
|
"parsing",
|
|
"serde",
|
|
"serde-well-known",
|
|
"formatting",
|
|
"local-offset",
|
|
] }
|
|
tokio = { version = "1" }
|
|
tracing = "0.1.40"
|
|
tree-sitter = { version = "0.26", features = ["wasm"] }
|
|
tree-sitter-json = "0.24"
|
|
unicase = "2.6"
|
|
unicode-segmentation = "1.10"
|
|
unindent = "0.2.0"
|
|
url = "2.2"
|
|
urlencoding = "2.1.2"
|
|
util = { path = "crates/util" }
|
|
util_macros = { path = "crates/util_macros" }
|
|
uuid = { version = "1.1.2", features = ["v4", "v5", "v7", "serde"] }
|
|
walkdir = "2.5"
|
|
which = "6.0.0"
|
|
windows-core = "0.61"
|
|
zeroize = "1.8"
|
|
zlog = { path = "crates/zlog" }
|
|
ztracing = { path = "crates/ztracing" }
|
|
ztracing_macro = { path = "crates/ztracing_macro" }
|