Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
154 lines (146 loc) · 5.64 KB
/
Copy pathCargo.toml
File metadata and controls
154 lines (146 loc) · 5.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
[workspace]
resolver = "3"
members = ["crates/*"]
# The first implementation, kept as read-only reference (CLAUDE.md "legacy/"). Never built.
exclude = ["legacy"]
default-members = ["crates/dv"]
[workspace.package]
version = "0.4.0"
edition = "2024"
rust-version = "1.98"
publish = false
[workspace.dependencies]
# ---- UI stack (docs/PLAN.md D1): gpui-pre snapshot + gpui-component 0.6, the same pins as the sibling app.
# Pinned exactly; bump all of these together.
gpui = { package = "gpui-pre", version = "=0.3.6" }
gpui_platform = { package = "gpui-pre-platform", version = "=0.3.6" }
# gpui-component's base: its window-wide text selection (`TextSelection`), which the hover
# card's selectable Markdown copies through the clipboard seam (`dv_ui::shell`).
gpui-base = "=0.6.6"
# The tree-sitter grammars `dv_ui::syntax` highlights diffs with (PLAN §6 step 4): every one of
# gpui-component's `tree-sitter-languages`. SQL's grammar crate (tree-sitter-sequel) wants `cc`
# ~1.2, which every other build dependency accepts, so the lock keeps `cc` at the newest 1.2.
gpui-component = { version = "=0.6.6", features = [
"tree-sitter-astro",
"tree-sitter-bash",
"tree-sitter-c",
"tree-sitter-cmake",
"tree-sitter-cpp",
"tree-sitter-csharp",
"tree-sitter-css",
"tree-sitter-diff",
"tree-sitter-ejs",
"tree-sitter-elixir",
"tree-sitter-erb",
"tree-sitter-go",
"tree-sitter-graphql",
"tree-sitter-html",
"tree-sitter-java",
"tree-sitter-javascript",
"tree-sitter-jsdoc",
"tree-sitter-kotlin",
"tree-sitter-lua",
"tree-sitter-make",
"tree-sitter-markdown",
"tree-sitter-php",
"tree-sitter-proto",
"tree-sitter-python",
"tree-sitter-ruby",
"tree-sitter-rust",
"tree-sitter-scala",
"tree-sitter-sql",
"tree-sitter-svelte",
"tree-sitter-swift",
"tree-sitter-toml",
"tree-sitter-tsx",
"tree-sitter-typescript",
"tree-sitter-yaml",
"tree-sitter-zig",
] }
# ---- internal crates (docs/PLAN.md §4)
dv_backend = { path = "crates/dv_backend" }
dv_cli = { path = "crates/dv_cli" }
dv_core = { path = "crates/dv_core" }
dv_lsp = { path = "crates/dv_lsp" }
dv_test_support = { path = "crates/dv_test_support" }
dv_ui = { path = "crates/dv_ui" }
gpui_automation = { path = "crates/gpui_automation" }
# ---- shared third-party
anyhow = "1.0"
# The bytes the backend protocol carries (git output, file contents, store lines), base64 in its
# JSON lines (PLAN §5.1).
base64 = "0.23"
clap = { version = "4.5", features = ["derive", "env"] }
# macOS window screenshots for automation (`gpui_automation::capture_macos`); already in the tree
# through gpui.
core-graphics = "0.24"
dirs = "6"
# dv.exe's and dv-gui.exe's icon and version resource (`crates/dv/build.rs`); already in the
# tree through gpui's own manifest.
embed-resource = "3.0"
env_logger = "0.11"
futures = "0.3"
# The globs a language server registers for `workspace/didChangeWatchedFiles` (`dv_lsp`, PLAN
# §18.5); already in the tree through `ignore`.
globset = "0.4"
ignore = "0.4"
imara-diff = "0.2"
# The process group a backend's child process runs in, and its exit read without reaping it
# (`dv_core::backend::process`, PLAN §18.3).
libc = "0.2"
log = "0.4"
# The Language Server Protocol's types (`dv_lsp`, PLAN §18.4); already in the tree through
# gpui-component.
lsp-types = "0.97"
# The Markdown parser gpui-component's `TextView` uses; `dv_ui::markdown` sanitises comment bodies
# with the same AST before they reach it (PLAN §15).
markdown = "1.0.0"
# The OS file watcher (`dv_core::backend::watch`, PLAN §5.3). 9's Windows backend never arms a
# read of changes on the directory handle a stopping watch has closed; 8's does, and when that
# handle's number already names another thread's directory listing the read wedges the listing
# for good. Pinned exactly while 9 is a release candidate.
notify = "=9.0.0-rc.6"
# The AppKit calls gpui has no API for: the window number automation captures, and an
# automation run's activation policy (`gpui_automation`, macOS only); already in the tree through
# gpui.
objc2 = "0.6"
parking_lot = "0.12"
png = "0.18"
pretty_assertions = "1.4"
raw-window-handle = "0.6"
# The app icon's test renders `crates/dv/resources/windows/dv.svg` (`crates/dv/tests/app_icon.rs`);
# already in the tree through gpui.
resvg = { version = "0.46", default-features = false }
# The version of a local release (`dv_package`, PLAN §13.2); already in the tree through velopack.
semver = "1.0"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
# The build hash of the Linux dv a WSL distro runs (PLAN §5.2).
sha2 = "0.11"
tempfile = "3"
thiserror = "2"
# The edit `dv_ui::syntax::LineHighlighter` hands gpui-component's highlighter so it reparses a
# new line from scratch (`InputEdit`); already in the tree through gpui-component.
tree-sitter = "0.26"
ulid = "3"
# Velopack (PLAN D9): the install hooks and the updates of the Windows app. Pinned to the `vpk` that
# packages it (1.2.161): Velopack's crate and CLI versions go together.
velopack = "=1.2.161"
windows-sys = "0.61"
x11rb = "0.13"
[profile.dev]
debug = "limited"
# gpui is unusably slow unoptimised; dependencies build at opt-level 2 even in dev, while the
# workspace's own crates stay at 0 for fast incremental builds.
[profile.dev.package."*"]
opt-level = 2
debug = false
[profile.release]
debug = "limited"
lto = "thin"
codegen-units = 16
# A packaged release (`script/package`, PLAN §13.2): release's settings in its own folder,
# `target/dist`, so packaging never touches `target/release` (the owner's own build). Its
# limited debug info stays there as .pdb files beside the binaries; `vpk pack` leaves them out.
[profile.dist]
inherits = "release"