Splits the crate graph.
Before, the compilation graph: `editor → picker_preview → search →
project_panel → open_path_prompt → recent_projects → title_bar →
collab_ui → zed`
After, the compilation graph: `editor → picker_preview → search →
agent_ui → sidebar → zed`
With sccache disabled and project fully built, `touch
crates/editor/src/editor.rs` and `cargo build -p zed` took time
Before (5e1fd392f6): 13.19s
After: 11.85s (-10.2% speed up)
Each commit contains a separate compilation instructions, and a test in
the final commit.
The main approach is to split coupled crates and replace them with
`zed_actions` and move some shared functionality into `git_ui_core` new,
shared module.
I've also tried to add a test to prevent common pitfalls, but not sure
I'm happy with the end result — can remove it if it looks too synthetic.
Release Notes:
- N/A
101 lines
2.6 KiB
TOML
101 lines
2.6 KiB
TOML
[package]
|
|
name = "git_ui"
|
|
version = "0.1.0"
|
|
edition.workspace = true
|
|
publish.workspace = true
|
|
license = "GPL-3.0-or-later"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[lib]
|
|
name = "git_ui"
|
|
path = "src/git_ui.rs"
|
|
|
|
[features]
|
|
test-support = ["multi_buffer/test-support", "remote_connection/test-support"]
|
|
call = ["dep:call"]
|
|
|
|
[dependencies]
|
|
agent_settings.workspace = true
|
|
anyhow.workspace = true
|
|
askpass.workspace = true
|
|
async-channel.workspace = true
|
|
buffer_diff.workspace = true
|
|
call = { workspace = true, optional = true }
|
|
client.workspace = true
|
|
collections.workspace = true
|
|
component.workspace = true
|
|
db.workspace = true
|
|
editor.workspace = true
|
|
file_icons.workspace = true
|
|
futures-lite.workspace = true
|
|
futures.workspace = true
|
|
fuzzy.workspace = true
|
|
fuzzy_nucleo.workspace = true
|
|
git.workspace = true
|
|
gpui.workspace = true
|
|
itertools.workspace = true
|
|
language.workspace = true
|
|
language_model.workspace = true
|
|
log.workspace = true
|
|
markdown.workspace = true
|
|
menu.workspace = true
|
|
multi_buffer.workspace = true
|
|
notifications.workspace = true
|
|
panel.workspace = true
|
|
picker.workspace = true
|
|
project.workspace = true
|
|
prompt_store.workspace = true
|
|
rand.workspace = true
|
|
release_channel.workspace = true
|
|
remote_connection.workspace = true
|
|
schemars.workspace = true
|
|
serde.workspace = true
|
|
serde_json.workspace = true
|
|
settings.workspace = true
|
|
smallvec.workspace = true
|
|
strum.workspace = true
|
|
sysinfo.workspace = true
|
|
task.workspace = true
|
|
telemetry.workspace = true
|
|
terminal.workspace = true
|
|
theme.workspace = true
|
|
theme_settings.workspace = true
|
|
time.workspace = true
|
|
time_format.workspace = true
|
|
tracing.workspace = true
|
|
ui.workspace = true
|
|
ui_input.workspace = true
|
|
util.workspace = true
|
|
watch.workspace = true
|
|
workspace.workspace = true
|
|
git_ui_core.workspace = true
|
|
zed_actions.workspace = true
|
|
ztracing.workspace = true
|
|
|
|
[target.'cfg(windows)'.dependencies]
|
|
windows.workspace = true
|
|
|
|
[dev-dependencies]
|
|
ctor.workspace = true
|
|
db = { workspace = true, features = ["test-support"] }
|
|
editor = { workspace = true, features = ["test-support"] }
|
|
fs = { workspace = true, features = ["test-support"] }
|
|
git = { workspace = true, features = ["test-support"] }
|
|
gpui = { workspace = true, features = ["test-support"] }
|
|
indoc.workspace = true
|
|
pretty_assertions.workspace = true
|
|
project = { workspace = true, features = ["test-support"] }
|
|
rand.workspace = true
|
|
remote_connection = { workspace = true, features = ["test-support"] }
|
|
search.workspace = true
|
|
settings = { workspace = true, features = ["test-support"] }
|
|
task.workspace = true
|
|
unindent.workspace = true
|
|
workspace = { workspace = true, features = ["test-support"] }
|
|
zlog.workspace = true
|
|
|
|
[package.metadata.cargo-machete]
|
|
ignored = ["remote_connection", "tracing"]
|