Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
167 lines (156 loc) · 6.09 KB
/
Copy pathCargo.toml
File metadata and controls
167 lines (156 loc) · 6.09 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
155
156
157
158
159
160
161
162
163
164
165
166
167
[workspace]
default-members = ["crates/kit"]
# This fork carries the crates an application builds against: the umbrella, the
# two layers beneath it, their macro crate, and the default icon set. The
# gallery, the JavaScript runtime, the WebView host and the WASM target are
# upstream development surfaces; they depend on display servers, GTK, LLRT's
# QuickJS build or a wasm toolchain rather than on anything this fork changes,
# so they are held back until the port itself is stable.
#
# The examples below are back because they are how the port is checked against
# real programs. Each one builds on `gpui-kit` and crates.io alone — none of
# them reaches for the `story` gallery, `gpui-fps`, the WebView host or the
# `gpui-pre` HTTP client, which are the four things still held back. The
# remaining examples wait on those.
members = [
"crates/kit",
"crates/base",
"crates/component",
"crates/component-macros",
"crates/assets",
"examples/ai_recipes",
"examples/app_assets",
"examples/dialog_overlay",
"examples/focus_trap",
"examples/hello_world",
"examples/input",
"examples/markdown_table",
"examples/sidebar",
"examples/table_in_scrollable",
"examples/text_selection",
"examples/tooltip_top_edge",
"examples/window_title",
]
resolver = "2"
[workspace.package]
publish = false
edition = "2024"
[workspace.dependencies]
gpui-kit = { path = "crates/kit", version = "0.7.0" }
gpui-component = { path = "crates/component", version = "0.7.0" }
gpui-base = { path = "crates/base", version = "0.7.0" }
gpui-component-macros = { path = "crates/component-macros", version = "0.7.0" }
gpui-kit-assets = { path = "crates/assets", version = "0.7.0" }
gpui-fps = { path = "crates/fps", version = "0.7.0" }
gpui-shell = { path = "crates/shell", version = "0.7.0" }
gpui-wry = { path = "crates/webview", version = "0.7.0" }
gpui-component-shell = { path = "crates/component-shell", version = "0.7.0" }
story = { path = "crates/story" }
# This fork builds on WGPUI: the `gpui-ce` fork that carries a single wgpu +
# winit backend in place of upstream's per-platform crates. There is no
# `gpui_platform`/`gpui_web`/`gpui_macros` split here — GPUI, its platform layer
# and its macros all arrive through `gpui` alone — so the pin is a revision of
# the fork rather than a set of `gpui-pre-*` versions. Keep this revision in
# step with every other consumer of the same fork.
gpui = { package = "gpui-ce", git = "https://github.com/chitin-dev/gpui-wgpu", rev = "d92ff407d66a52795f70fb6657a4bfa653c3d0d5" }
# The one macro `gpui` does not re-export: `derive_inspector_reflection`, which
# generates the method table the component inspector and the shell's style
# language read. `gpui-base` puts the attribute on its own `StyledExt`, so it
# depends on the macro crate at the version `gpui-ce` itself builds against.
gpui-macros = { package = "gpui-macros", version = "0.2.2" }
# `sum-tree` is Zed's concurrency-friendly B-tree, republished from the Zed
# repository. It carries no dependency on GPUI, so it stays on the published
# snapshot rather than following the `gpui` pin above.
sum-tree = { package = "gpui-pre-sum-tree", version = "=0.3.7" }
reqwest = { package = "gpui-pre-reqwest", version = "=0.12.15", default-features = false, features = [
"charset",
"http2",
"macos-system-configuration",
"multipart",
"rustls-tls-native-roots",
"socks",
"stream",
] }
anyhow = "1"
instant = { version = "0.1", features = ["wasm-bindgen"] }
log = "0.4"
lsp-types = { version = "0.97.0", features = ["proposed"] }
notify = "7.0.0"
raw-window-handle = "0.6.2"
ropey = { version = "=2.0.0-beta.1", features = [
"metric_chars",
"metric_lines_lf",
"metric_utf16",
] }
rust-i18n = "4.2.0"
schemars = "1"
semver = "1"
serde = { version = "1.0.219", features = ["derive"] }
serde_json = "1"
serde_repr = "0.1"
smallvec = "1"
smol = "2"
syntect = { version = "5.3.0", default-features = false, features = [
"parsing",
"default-syntaxes",
"regex-fancy",
] }
tracing = "0.1.41"
wasm-bindgen = "0.2.113"
# Use errno stub for WASM
errno = { version = "0.3.14", default-features = false }
[workspace.dependencies.windows]
features = ["Wdk", "Wdk_System", "Wdk_System_SystemServices"]
version = "0.58.0"
[workspace.lints.clippy]
almost_complete_range = "allow"
arc_with_non_send_sync = "allow"
borrowed_box = "allow"
dbg_macro = "deny"
let_underscore_future = "allow"
manual_is_multiple_of = "allow"
map_entry = "allow"
module_inception = "allow"
non_canonical_partial_ord_impl = "allow"
reversed_empty_ranges = "allow"
single_range_in_vec_init = "allow"
style = { level = "allow", priority = -1 }
todo = "deny"
type_complexity = "allow"
# Temporarily allow this until we can migrate to the new APIs.
# https://github.com/longbridge/gpui-kit/pull/2149
useless_conversion = "allow"
[profile.dev]
codegen-units = 16
debug = "limited"
split-debuginfo = "unpacked"
[profile.dev.package]
resvg = { opt-level = 3 }
rustybuzz = { opt-level = 3 }
taffy = { opt-level = 3 }
ttf-parser = { opt-level = 3 }
smol = { opt-level = 3 }
# WGPUI folds GPUI, its platform layer and its macros into one crate, so this
# replaces upstream's separate `gpui-pre`, `gpui-pre-platform` and
# `gpui-pre-macros` entries. A debug build of the whole UI stack is what these
# three lines exist to avoid.
gpui-ce = { opt-level = 3 }
tree-sitter = { opt-level = 3 }
gpui-pre-sum-tree = { opt-level = 3 }
ropey = { opt-level = 3 }
lsp-types = { opt-level = 3 }
markdown = { opt-level = 3 }
xml5ever = { opt-level = 3 }
# Upstream also optimises `quickjs-jit`, `quickjs-jit-core`,
# `quickjs-jit-runtime`, `quickjs-jit-sys` and `cap-std` here. All five belong
# to `crates/shell`, the JavaScript runtime, which is held back with the rest of
# the upstream development surfaces; they come back with it.
[patch.crates-io]
# `crates/shell` (the JavaScript runtime) is not a member of this fork, so its
# `rquickjs` re-routing patch is held back with it.
[workspace.metadata.typos]
files.extend-exclude = ["**/fixtures/*"]
[workspace.metadata.typos.default.extend-identifiers]
consts = "consts"
[workspace.metadata.cargo-machete]
ignored = ["log", "anyhow", "serde"]