Add workspace-hack (#27277)

This adds a "workspace-hack" crate, see
[mozilla's](https://hg.mozilla.org/mozilla-central/file/3a265fdc9f33e5946f0ca0a04af73acd7e6d1a39/build/workspace-hack/Cargo.toml#l7)
for a concise explanation of why this is useful. For us in practice this
means that if I were to run all the tests (`cargo nextest r
--workspace`) and then `cargo r`, all the deps from the previous cargo
command will be reused. Before this PR it would rebuild many deps due to
resolving different sets of features for them. For me this frequently
caused long rebuilds when things "should" already be cached.

To avoid manually maintaining our workspace-hack crate, we will use
[cargo hakari](https://docs.rs/cargo-hakari) to update the build files
when there's a necessary change. I've added a step to CI that checks
whether the workspace-hack crate is up to date, and instructs you to
re-run `script/update-workspace-hack` when it fails.

Finally, to make sure that people can still depend on crates in our
workspace without pulling in all the workspace deps, we use a `[patch]`
section following [hakari's
instructions](https://docs.rs/cargo-hakari/0.9.36/cargo_hakari/patch_directive/index.html)

One possible followup task would be making guppy use our
`rust-toolchain.toml` instead of having to duplicate that list in its
config, I opened an issue for that upstream: guppy-rs/guppy#481.

TODO:
- [x] Fix the extension test failure
- [x] Ensure the dev dependencies aren't being unified by Hakari into
the main dependencies
- [x] Ensure that the remote-server binary continues to not depend on
LibSSL

Release Notes:

- N/A

---------

Co-authored-by: Mikayla <mikayla@zed.dev>
Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
This commit is contained in:
Julia Ryan 2025-04-02 13:26:34 -07:00 committed by GitHub
parent 07a77792c5
commit 01ec6e0f77
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
185 changed files with 2091 additions and 693 deletions

40
.config/hakari.toml Normal file
View file

@ -0,0 +1,40 @@
# This file contains settings for `cargo hakari`.
# See https://docs.rs/cargo-hakari/latest/cargo_hakari/config for a full list of options.
hakari-package = "workspace-hack"
resolver = "2"
dep-format-version = "4"
workspace-hack-line-style = "workspace-dotted"
# this should be the same list as "targets" in ../rust-toolchain.toml
platforms = [
"x86_64-apple-darwin",
"aarch64-apple-darwin",
"x86_64-unknown-linux-gnu",
"aarch64-unknown-linux-gnu",
"x86_64-pc-windows-msvc",
"x86_64-unknown-linux-musl", # remote server
]
[traversal-excludes]
workspace-members = [
"remote_server",
]
[final-excludes]
workspace-members = [
"zed_extension_api",
# exclude all extensions
"zed_emmet",
"zed_glsl",
"zed_html",
"perplexity",
"zed_proto",
"zed_ruff",
"slash_commands_example",
"zed_snippets",
"zed_test_extension",
"zed_toml",
]

View file

@ -110,6 +110,37 @@ jobs:
input: "crates/proto/proto/"
against: "https://github.com/${GITHUB_REPOSITORY}.git#branch=${BUF_BASE_BRANCH},subdir=crates/proto/proto/"
workspace_hack:
timeout-minutes: 60
name: Check workspace-hack crate
needs: [job_spec]
if: github.repository_owner == 'zed-industries'
runs-on:
- buildjet-8vcpu-ubuntu-2204
steps:
- name: Checkout repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- name: Add Rust to the PATH
run: echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- name: Install cargo-hakari
uses: clechasseur/rs-cargo@8435b10f6e71c2e3d4d3b7573003a8ce4bfc6386 # v2
with:
command: install
args: cargo-hakari@0.9.35
- name: Check workspace-hack Cargo.toml is up-to-date
run: |
cargo hakari generate --diff || {
echo "To fix, run script/update-workspace-hack";
false
}
- name: Check all crates depend on workspace-hack
run: |
cargo hakari manage-deps --dry-run || {
echo "To fix, run script/update-workspace-hack"
false
}
style:
timeout-minutes: 60
name: Check formatting and spelling
@ -432,6 +463,7 @@ jobs:
- job_spec
- style
- migration_checks
- workspace_hack
- linux_tests
- build_remote_server
- macos_tests

1813
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -192,6 +192,7 @@ members = [
# Tooling
#
"tooling/workspace-hack",
"tooling/xtask",
]
default-members = ["crates/zed"]
@ -590,6 +591,7 @@ wasmtime = { version = "29", default-features = false, features = [
wasmtime-wasi = "29"
which = "6.0.0"
wit-component = "0.221"
workspace-hack = "0.1.0"
zed_llm_client = "0.4"
zstd = "0.11"
metal = "0.29"
@ -660,6 +662,9 @@ real-async-tls = { git = "https://github.com/zed-industries/async-tls", rev = "1
notify = { git = "https://github.com/zed-industries/notify.git", rev = "bbb9ea5ae52b253e095737847e367c30653a2e96" }
notify-types = { git = "https://github.com/zed-industries/notify.git", rev = "bbb9ea5ae52b253e095737847e367c30653a2e96" }
# Makes the workspace hack crate refer to the local one, but only when you're building locally
workspace-hack = { path = "tooling/workspace-hack" }
[profile.dev]
split-debuginfo = "unpacked"
codegen-units = 16
@ -771,4 +776,4 @@ let_underscore_future = "allow"
too_many_arguments = "allow"
[workspace.metadata.cargo-machete]
ignored = ["bindgen", "cbindgen", "prost_build", "serde", "component", "linkme"]
ignored = ["bindgen", "cbindgen", "prost_build", "serde", "component", "linkme", "workspace-hack"]

View file

@ -25,6 +25,7 @@ smallvec.workspace = true
ui.workspace = true
util.workspace = true
workspace.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
editor = { workspace = true, features = ["test-support"] }

View file

@ -86,6 +86,7 @@ uuid.workspace = true
vim_mode_setting.workspace = true
workspace.workspace = true
zed_actions.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
buffer_diff = { workspace = true, features = ["test-support"] }

View file

@ -26,3 +26,4 @@ serde_json.workspace = true
strum.workspace = true
thiserror.workspace = true
util.workspace = true
workspace-hack.workspace = true

View file

@ -19,3 +19,4 @@ smol.workspace = true
tempfile.workspace = true
util.workspace = true
which.workspace = true
workspace-hack.workspace = true

View file

@ -15,3 +15,4 @@ workspace = true
anyhow.workspace = true
gpui.workspace = true
rust-embed.workspace = true
workspace-hack.workspace = true

View file

@ -69,6 +69,7 @@ ui.workspace = true
util.workspace = true
workspace.workspace = true
zed_actions.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
ctor.workspace = true

View file

@ -54,6 +54,7 @@ ui.workspace = true
util.workspace = true
uuid.workspace = true
workspace.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
language_model = { workspace = true, features = ["test-support"] }

View file

@ -43,3 +43,4 @@ serde_json_lenient.workspace = true
settings.workspace = true
smol.workspace = true
util.workspace = true
workspace-hack.workspace = true

View file

@ -26,6 +26,7 @@ deepseek = { workspace = true, features = ["schemars"] }
schemars.workspace = true
serde.workspace = true
settings.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
fs.workspace = true

View file

@ -26,6 +26,7 @@ serde.workspace = true
serde_json.workspace = true
ui.workspace = true
workspace.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
gpui = { workspace = true, features = ["test-support"] }

View file

@ -42,6 +42,7 @@ ui.workspace = true
util.workspace = true
workspace.workspace = true
worktree.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
env_logger.workspace = true

View file

@ -28,6 +28,7 @@ serde.workspace = true
serde_json.workspace = true
text.workspace = true
util.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
buffer_diff = { workspace = true, features = ["test-support"] }

View file

@ -39,6 +39,7 @@ util.workspace = true
workspace.workspace = true
worktree.workspace = true
open = { workspace = true }
workspace-hack.workspace = true
[dev-dependencies]
collections = { workspace = true, features = ["test-support"] }

View file

@ -20,3 +20,4 @@ gpui.workspace = true
parking_lot.workspace = true
rodio = { version = "0.20.0", default-features = false, features = ["wav"] }
util.workspace = true
workspace-hack.workspace = true

View file

@ -29,3 +29,4 @@ smol.workspace = true
tempfile.workspace = true
which.workspace = true
workspace.workspace = true
workspace-hack.workspace = true

View file

@ -25,3 +25,4 @@ serde_json.workspace = true
smol.workspace = true
util.workspace = true
workspace.workspace = true
workspace-hack.workspace = true

View file

@ -20,3 +20,4 @@ aws-smithy-types.workspace = true
futures.workspace = true
http_client.workspace = true
tokio = { workspace = true, features = ["rt", "rt-multi-thread"] }
workspace-hack.workspace = true

View file

@ -26,3 +26,4 @@ serde_json.workspace = true
strum.workspace = true
thiserror.workspace = true
tokio = { workspace = true, features = ["rt", "rt-multi-thread"] }
workspace-hack.workspace = true

View file

@ -20,6 +20,7 @@ theme.workspace = true
ui.workspace = true
workspace.workspace = true
zed_actions.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
editor = { workspace = true, features = ["test-support"] }

View file

@ -27,6 +27,7 @@ rope.workspace = true
sum_tree.workspace = true
text.workspace = true
util.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
ctor.workspace = true

View file

@ -42,6 +42,7 @@ telemetry.workspace = true
util.workspace = true
gpui_tokio.workspace = true
livekit_client.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
client = { workspace = true, features = ["test-support"] }

View file

@ -32,6 +32,7 @@ sum_tree.workspace = true
text.workspace = true
time.workspace = true
util.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
collections = { workspace = true, features = ["test-support"] }

View file

@ -31,6 +31,7 @@ release_channel.workspace = true
serde.workspace = true
util.workspace = true
tempfile.workspace = true
workspace-hack.workspace = true
[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies]
exec.workspace = true

View file

@ -51,6 +51,7 @@ url.workspace = true
util.workspace = true
worktree.workspace = true
telemetry.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
clock = { workspace = true, features = ["test-support"] }

View file

@ -19,3 +19,4 @@ test-support = ["dep:parking_lot"]
parking_lot = { workspace = true, optional = true }
serde.workspace = true
smallvec.workspace = true
workspace-hack.workspace = true

View file

@ -76,6 +76,7 @@ tracing = "0.1.40"
tracing-subscriber = { version = "0.3.18", features = ["env-filter", "json", "registry", "tracing-log"] } # workaround for https://github.com/tokio-rs/tracing/issues/2927
util.workspace = true
uuid.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
assistant = { workspace = true, features = ["test-support"] }

View file

@ -64,6 +64,7 @@ title_bar.workspace = true
ui.workspace = true
util.workspace = true
workspace.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
call = { workspace = true, features = ["test-support"] }

View file

@ -18,3 +18,4 @@ test-support = []
[dependencies]
indexmap.workspace = true
rustc-hash.workspace = true
workspace-hack.workspace = true

View file

@ -31,6 +31,7 @@ util.workspace = true
telemetry.workspace = true
workspace.workspace = true
zed_actions.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
ctor.workspace = true

View file

@ -16,3 +16,4 @@ doctest = false
collections.workspace = true
derive_more.workspace = true
gpui.workspace = true
workspace-hack.workspace = true

View file

@ -17,6 +17,7 @@ gpui.workspace = true
linkme.workspace = true
parking_lot.workspace = true
theme.workspace = true
workspace-hack.workspace = true
[features]
default = []

View file

@ -24,3 +24,4 @@ ui.workspace = true
workspace.workspace = true
notifications.workspace = true
collections.workspace = true
workspace-hack.workspace = true

View file

@ -33,3 +33,4 @@ settings.workspace = true
smol.workspace = true
url = { workspace = true, features = ["serde"] }
util.workspace = true
workspace-hack.workspace = true

View file

@ -19,3 +19,4 @@ schemars.workspace = true
serde.workspace = true
serde_json.workspace = true
settings.workspace = true
workspace-hack.workspace = true

View file

@ -52,6 +52,7 @@ task.workspace = true
ui.workspace = true
util.workspace = true
workspace.workspace = true
workspace-hack.workspace = true
[target.'cfg(windows)'.dependencies]
async-std = { version = "1.12.0", features = ["unstable"] }

View file

@ -19,3 +19,4 @@ paths.workspace = true
release_channel.workspace = true
serde.workspace = true
serde_json.workspace = true
workspace-hack.workspace = true

View file

@ -48,6 +48,7 @@ smallvec.workspace = true
smol.workspace = true
task.workspace = true
util.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
async-pipe.workspace = true

View file

@ -32,6 +32,7 @@ serde.workspace = true
serde_json.workspace = true
task.workspace = true
util.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
dap = { workspace = true, features = ["test-support"] }

View file

@ -26,6 +26,7 @@ smol.workspace = true
sqlez.workspace = true
sqlez_macros.workspace = true
util.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
gpui = { workspace = true, features = ["test-support"] }

View file

@ -24,3 +24,4 @@ settings.workspace = true
smol.workspace = true
util.workspace = true
workspace.workspace = true
workspace-hack.workspace = true

View file

@ -50,6 +50,7 @@ theme.workspace = true
ui.workspace = true
util.workspace = true
workspace.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
dap = { workspace = true, features = ["test-support"] }

View file

@ -22,3 +22,4 @@ http_client.workspace = true
schemars = { workspace = true, optional = true }
serde.workspace = true
serde_json.workspace = true
workspace-hack.workspace = true

View file

@ -30,6 +30,7 @@ theme.workspace = true
ui.workspace = true
util.workspace = true
workspace.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
client = { workspace = true, features = ["test-support"] }

View file

@ -14,6 +14,7 @@ serde_json.workspace = true
settings.workspace = true
regex.workspace = true
util.workspace = true
workspace-hack.workspace = true
[lints]
workspace = true

View file

@ -87,6 +87,7 @@ util.workspace = true
uuid.workspace = true
workspace.workspace = true
zed_actions.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
ctor.workspace = true

View file

@ -37,3 +37,4 @@ serde_json.workspace = true
settings.workspace = true
smol.workspace = true
util.workspace = true
workspace-hack.workspace = true

View file

@ -483,8 +483,8 @@ async fn run_eval_project(
for (ix, result) in results.iter().enumerate() {
if result.path.as_ref() == Path::new(&expected_result.file) {
file_matched = true;
let start_matched = result.row_range.contains(&expected_result.lines.start());
let end_matched = result.row_range.contains(&expected_result.lines.end());
let start_matched = result.row_range.contains(expected_result.lines.start());
let end_matched = result.row_range.contains(expected_result.lines.end());
if start_matched || end_matched {
range_overlapped = true;

View file

@ -34,3 +34,4 @@ util.workspace = true
wasm-encoder.workspace = true
wasmparser.workspace = true
wit-component.workspace = true
workspace-hack.workspace = true

View file

@ -30,3 +30,4 @@ tokio = { workspace = true, features = ["full"] }
toml.workspace = true
tree-sitter.workspace = true
wasmtime.workspace = true
workspace-hack.workspace = true

View file

@ -51,6 +51,7 @@ util.workspace = true
wasmparser.workspace = true
wasmtime-wasi.workspace = true
wasmtime.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
ctor.workspace = true

View file

@ -38,6 +38,7 @@ util.workspace = true
vim_mode_setting.workspace = true
workspace.workspace = true
zed_actions.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
editor = { workspace = true, features = ["test-support"] }

View file

@ -15,3 +15,4 @@ path = "src/feature_flags.rs"
futures.workspace = true
gpui.workspace = true
smol.workspace = true
workspace-hack.workspace = true

View file

@ -27,6 +27,7 @@ urlencoding.workspace = true
util.workspace = true
workspace.workspace = true
zed_actions.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
editor = { workspace = true, features = ["test-support"] }

View file

@ -32,6 +32,7 @@ theme.workspace = true
ui.workspace = true
util.workspace = true
workspace.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
ctor.workspace = true

View file

@ -18,3 +18,4 @@ serde.workspace = true
settings.workspace = true
theme.workspace = true
util.workspace = true
workspace-hack.workspace = true

View file

@ -33,6 +33,7 @@ tempfile.workspace = true
text.workspace = true
time.workspace = true
util.workspace = true
workspace-hack.workspace = true
[target.'cfg(target_os = "macos")'.dependencies]
fsevent.workspace = true

View file

@ -15,6 +15,7 @@ doctest = false
[dependencies]
bitflags.workspace = true
parking_lot.workspace = true
workspace-hack.workspace = true
[target.'cfg(target_os = "macos")'.dependencies]
core-foundation.workspace = true

View file

@ -16,3 +16,4 @@ doctest = false
gpui.workspace = true
util.workspace = true
log.workspace = true
workspace-hack.workspace = true

View file

@ -38,6 +38,7 @@ url.workspace = true
util.workspace = true
uuid.workspace = true
futures.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
pretty_assertions.workspace = true

View file

@ -25,6 +25,7 @@ serde_json.workspace = true
settings.workspace = true
url.workspace = true
util.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
indoc.workspace = true

View file

@ -59,6 +59,7 @@ ui.workspace = true
util.workspace = true
workspace.workspace = true
zed_actions.workspace = true
workspace-hack.workspace = true
[target.'cfg(windows)'.dependencies]
windows.workspace = true

View file

@ -26,6 +26,7 @@ theme.workspace = true
ui.workspace = true
util.workspace = true
workspace.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
editor = { workspace = true, features = ["test-support"] }

View file

@ -22,3 +22,4 @@ schemars = { workspace = true, optional = true }
serde.workspace = true
serde_json.workspace = true
strum.workspace = true
workspace-hack.workspace = true

View file

@ -118,6 +118,7 @@ util.workspace = true
uuid.workspace = true
waker-fn = "1.2.0"
lyon = "1.0"
workspace-hack.workspace = true
[target.'cfg(target_os = "macos")'.dependencies]
block = "0.1"

View file

@ -17,6 +17,7 @@ doctest = true
proc-macro2.workspace = true
quote.workspace = true
syn.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
gpui.workspace = true

View file

@ -16,3 +16,4 @@ doctest = false
util.workspace = true
gpui.workspace = true
tokio = { workspace = true, features = ["rt", "rt-multi-thread"] }
workspace-hack.workspace = true

View file

@ -20,6 +20,7 @@ anyhow.workspace = true
html5ever.workspace = true
markup5ever_rcdom.workspace = true
regex.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
indoc.workspace = true

View file

@ -25,3 +25,4 @@ log.workspace = true
serde.workspace = true
serde_json.workspace = true
url.workspace = true
workspace-hack.workspace = true

View file

@ -18,3 +18,4 @@ doctest = true
[dependencies]
rustls.workspace = true
rustls-platform-verifier.workspace = true
workspace-hack.workspace = true

View file

@ -14,3 +14,4 @@ path = "src/icons.rs"
[dependencies]
serde.workspace = true
strum.workspace = true
workspace-hack.workspace = true

View file

@ -29,6 +29,7 @@ theme.workspace = true
ui.workspace = true
util.workspace = true
workspace.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
editor = { workspace = true, features = ["test-support"] }

View file

@ -31,6 +31,7 @@ paths.workspace = true
serde.workspace = true
strum.workspace = true
util.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
indoc.workspace = true

View file

@ -15,3 +15,4 @@ path = "src/inline_completion.rs"
gpui.workspace = true
language.workspace = true
project.workspace = true
workspace-hack.workspace = true

View file

@ -32,6 +32,7 @@ ui.workspace = true
workspace.workspace = true
zed_actions.workspace = true
zeta.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
copilot = { workspace = true, features = ["test-support"] }

View file

@ -19,3 +19,4 @@ anyhow.workspace = true
gpui.workspace = true
smol.workspace = true
util.workspace = true
workspace-hack.workspace = true

View file

@ -23,6 +23,7 @@ serde.workspace = true
settings.workspace = true
shellexpand.workspace = true
workspace.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
editor = { workspace = true, features = ["test-support"] }

View file

@ -63,6 +63,7 @@ tree-sitter-typescript = { workspace = true, optional = true }
tree-sitter.workspace = true
unicase = "2.6"
util.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
collections = { workspace = true, features = ["test-support"] }

View file

@ -24,3 +24,4 @@ lsp.workspace = true
serde.workspace = true
serde_json.workspace = true
util.workspace = true
workspace-hack.workspace = true

View file

@ -39,6 +39,7 @@ strum.workspace = true
telemetry_events.workspace = true
thiserror.workspace = true
util.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
gpui = { workspace = true, features = ["test-support"] }

View file

@ -21,3 +21,4 @@ proto.workspace = true
ui.workspace = true
workspace.workspace = true
zed_actions.workspace = true
workspace-hack.workspace = true

View file

@ -51,6 +51,7 @@ tiktoken-rs.workspace = true
tokio = { workspace = true, features = ["rt", "rt-multi-thread"] }
ui.workspace = true
util.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
editor = { workspace = true, features = ["test-support"] }

View file

@ -26,6 +26,7 @@ settings.workspace = true
ui.workspace = true
util.workspace = true
workspace.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
editor = { workspace = true, features = ["test-support"] }

View file

@ -30,6 +30,7 @@ tree-sitter.workspace = true
ui.workspace = true
workspace.workspace = true
zed_actions.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
client = { workspace = true, features = ["test-support"] }

View file

@ -83,6 +83,7 @@ tree-sitter-rust = { workspace = true, optional = true }
tree-sitter-typescript = { workspace = true, optional = true }
tree-sitter-yaml = { workspace = true, optional = true }
util.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
pretty_assertions.workspace = true

View file

@ -22,6 +22,7 @@ prost.workspace = true
prost-types.workspace = true
reqwest.workspace = true
serde.workspace = true
workspace-hack.workspace = true
[build-dependencies]
prost-build.workspace = true

View file

@ -37,6 +37,7 @@ postage.workspace = true
smallvec.workspace = true
tokio-tungstenite.workspace = true
util.workspace = true
workspace-hack.workspace = true
[target.'cfg(not(all(target_os = "windows", target_env = "gnu")))'.dependencies]
libwebrtc = { rev = "80bb8f4c9112789f7c24cc98d8423010977806a6", git = "https://github.com/zed-industries/livekit-rust-sdks" }

View file

@ -22,3 +22,4 @@ http_client.workspace = true
schemars = { workspace = true, optional = true }
serde.workspace = true
serde_json.workspace = true
workspace-hack.workspace = true

View file

@ -31,6 +31,7 @@ schemars.workspace = true
smol.workspace = true
util.workspace = true
release_channel.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
async-pipe.workspace = true

View file

@ -28,6 +28,7 @@ pulldown-cmark.workspace = true
theme.workspace = true
ui.workspace = true
util.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
assets.workspace = true

View file

@ -30,6 +30,7 @@ theme.workspace = true
ui.workspace = true
util.workspace = true
workspace.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
editor = { workspace = true, features = ["test-support"] }

View file

@ -14,6 +14,7 @@ doctest = false
[dependencies]
anyhow.workspace = true
workspace-hack.workspace = true
[target.'cfg(target_os = "macos")'.dependencies]
core-foundation.workspace = true

View file

@ -14,4 +14,4 @@ doctest = false
[dependencies]
gpui.workspace = true
serde.workspace = true
workspace-hack.workspace = true

View file

@ -20,6 +20,7 @@ log.workspace = true
streaming-iterator.workspace = true
tree-sitter-json.workspace = true
tree-sitter.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
pretty_assertions.workspace = true

View file

@ -23,3 +23,4 @@ schemars = { workspace = true, optional = true }
serde.workspace = true
serde_json.workspace = true
strum.workspace = true
workspace-hack.workspace = true

View file

@ -45,6 +45,7 @@ text.workspace = true
theme.workspace = true
tree-sitter.workspace = true
util.workspace = true
workspace-hack.workspace = true
[dev-dependencies]
buffer_diff = { workspace = true, features = ["test-support"] }

View file

@ -204,12 +204,12 @@ fn test_excerpt_boundaries_and_clipping(cx: &mut App) {
.collect::<Vec<_>>(),
[Some(3)]
);
assert_eq!(
assert!(
snapshot
.row_infos(MultiBufferRow(5))
.map(|info| info.buffer_row)
.collect::<Vec<_>>(),
[]
.collect::<Vec<_>>()
.is_empty()
);
assert_eq!(
@ -870,12 +870,12 @@ fn test_empty_multibuffer(cx: &mut App) {
.collect::<Vec<_>>(),
&[Some(0)]
);
assert_eq!(
assert!(
snapshot
.row_infos(MultiBufferRow(1))
.map(|info| info.buffer_row)
.collect::<Vec<_>>(),
&[]
.collect::<Vec<_>>()
.is_empty(),
);
}

Some files were not shown because too many files have changed in this diff Show more