1[workspace]
2resolver = "2"
3members = [
4 "crates/activity_indicator",
5 "crates/anthropic",
6 "crates/assets",
7 "crates/assistant",
8 "crates/assistant2",
9 "crates/assistant_slash_command",
10 "crates/assistant_tool",
11 "crates/assistant_tools",
12 "crates/audio",
13 "crates/auto_update",
14 "crates/auto_update_ui",
15 "crates/breadcrumbs",
16 "crates/call",
17 "crates/channel",
18 "crates/cli",
19 "crates/client",
20 "crates/clock",
21 "crates/collab",
22 "crates/collab_ui",
23 "crates/collections",
24 "crates/command_palette",
25 "crates/command_palette_hooks",
26 "crates/context_server",
27 "crates/context_server_settings",
28 "crates/copilot",
29 "crates/db",
30 "crates/diagnostics",
31 "crates/docs_preprocessor",
32 "crates/editor",
33 "crates/evals",
34 "crates/extension",
35 "crates/extension_api",
36 "crates/extension_cli",
37 "crates/extension_host",
38 "crates/extensions_ui",
39 "crates/feature_flags",
40 "crates/feedback",
41 "crates/file_finder",
42 "crates/file_icons",
43 "crates/fs",
44 "crates/fsevent",
45 "crates/fuzzy",
46 "crates/git",
47 "crates/git_hosting_providers",
48 "crates/go_to_line",
49 "crates/google_ai",
50 "crates/gpui",
51 "crates/gpui_macros",
52 "crates/html_to_markdown",
53 "crates/http_client",
54 "crates/image_viewer",
55 "crates/indexed_docs",
56 "crates/inline_completion",
57 "crates/inline_completion_button",
58 "crates/install_cli",
59 "crates/journal",
60 "crates/language",
61 "crates/language_extension",
62 "crates/language_model",
63 "crates/language_model_selector",
64 "crates/language_models",
65 "crates/language_selector",
66 "crates/language_tools",
67 "crates/languages",
68 "crates/livekit_client",
69 "crates/livekit_client_macos",
70 "crates/livekit_server",
71 "crates/lsp",
72 "crates/markdown",
73 "crates/markdown_preview",
74 "crates/media",
75 "crates/menu",
76 "crates/multi_buffer",
77 "crates/node_runtime",
78 "crates/notifications",
79 "crates/ollama",
80 "crates/open_ai",
81 "crates/outline",
82 "crates/outline_panel",
83 "crates/paths",
84 "crates/picker",
85 "crates/prettier",
86 "crates/project",
87 "crates/project_panel",
88 "crates/project_symbols",
89 "crates/proto",
90 "crates/recent_projects",
91 "crates/refineable",
92 "crates/refineable/derive_refineable",
93 "crates/release_channel",
94 "crates/remote",
95 "crates/remote_server",
96 "crates/repl",
97 "crates/reqwest_client",
98 "crates/rich_text",
99 "crates/rope",
100 "crates/rpc",
101 "crates/search",
102 "crates/semantic_index",
103 "crates/semantic_version",
104 "crates/session",
105 "crates/settings",
106 "crates/settings_ui",
107 "crates/snippet",
108 "crates/snippet_provider",
109 "crates/snippets_ui",
110 "crates/sqlez",
111 "crates/sqlez_macros",
112 "crates/story",
113 "crates/storybook",
114 "crates/sum_tree",
115 "crates/supermaven",
116 "crates/supermaven_api",
117 "crates/tab_switcher",
118 "crates/task",
119 "crates/tasks_ui",
120 "crates/telemetry",
121 "crates/telemetry_events",
122 "crates/terminal",
123 "crates/terminal_view",
124 "crates/text",
125 "crates/theme",
126 "crates/theme_extension",
127 "crates/theme_importer",
128 "crates/theme_selector",
129 "crates/time_format",
130 "crates/title_bar",
131 "crates/toolchain_selector",
132 "crates/ui",
133 "crates/ui_input",
134 "crates/ui_macros",
135 "crates/reqwest_client",
136 "crates/util",
137 "crates/vcs_menu",
138 "crates/vim",
139 "crates/vim_mode_setting",
140 "crates/welcome",
141 "crates/workspace",
142 "crates/worktree",
143 "crates/zed",
144 "crates/zed_actions",
145 "crates/zeta",
146 "crates/git_ui",
147
148 #
149 # Extensions
150 #
151
152 "extensions/astro",
153 "extensions/clojure",
154 "extensions/csharp",
155 "extensions/deno",
156 "extensions/elixir",
157 "extensions/elm",
158 "extensions/emmet",
159 "extensions/erlang",
160 "extensions/glsl",
161 "extensions/haskell",
162 "extensions/html",
163 "extensions/lua",
164 "extensions/php",
165 "extensions/perplexity",
166 "extensions/prisma",
167 "extensions/proto",
168 "extensions/purescript",
169 "extensions/ruff",
170 "extensions/slash-commands-example",
171 "extensions/snippets",
172 "extensions/terraform",
173 "extensions/test-extension",
174 "extensions/toml",
175 "extensions/uiua",
176 "extensions/zig",
177
178 #
179 # Tooling
180 #
181
182 "tooling/xtask",
183]
184default-members = ["crates/zed"]
185
186[workspace.dependencies]
187
188#
189# Workspace member crates
190#
191
192activity_indicator = { path = "crates/activity_indicator" }
193ai = { path = "crates/ai" }
194anthropic = { path = "crates/anthropic" }
195assets = { path = "crates/assets" }
196assistant = { path = "crates/assistant" }
197assistant2 = { path = "crates/assistant2" }
198assistant_slash_command = { path = "crates/assistant_slash_command" }
199assistant_tool = { path = "crates/assistant_tool" }
200assistant_tools = { path = "crates/assistant_tools" }
201audio = { path = "crates/audio" }
202auto_update = { path = "crates/auto_update" }
203auto_update_ui = { path = "crates/auto_update_ui" }
204breadcrumbs = { path = "crates/breadcrumbs" }
205call = { path = "crates/call" }
206channel = { path = "crates/channel" }
207cli = { path = "crates/cli" }
208client = { path = "crates/client" }
209clock = { path = "crates/clock" }
210collab = { path = "crates/collab" }
211collab_ui = { path = "crates/collab_ui" }
212collections = { path = "crates/collections" }
213command_palette = { path = "crates/command_palette" }
214command_palette_hooks = { path = "crates/command_palette_hooks" }
215context_server = { path = "crates/context_server" }
216context_server_settings = { path = "crates/context_server_settings" }
217copilot = { path = "crates/copilot" }
218db = { path = "crates/db" }
219diagnostics = { path = "crates/diagnostics" }
220editor = { path = "crates/editor" }
221extension = { path = "crates/extension" }
222extension_host = { path = "crates/extension_host" }
223extensions_ui = { path = "crates/extensions_ui" }
224feature_flags = { path = "crates/feature_flags" }
225feedback = { path = "crates/feedback" }
226file_finder = { path = "crates/file_finder" }
227file_icons = { path = "crates/file_icons" }
228fs = { path = "crates/fs" }
229fsevent = { path = "crates/fsevent" }
230fuzzy = { path = "crates/fuzzy" }
231git = { path = "crates/git" }
232git_ui = { path = "crates/git_ui" }
233git_hosting_providers = { path = "crates/git_hosting_providers" }
234go_to_line = { path = "crates/go_to_line" }
235google_ai = { path = "crates/google_ai" }
236gpui = { path = "crates/gpui", default-features = false, features = [
237 "http_client",
238] }
239gpui_macros = { path = "crates/gpui_macros" }
240html_to_markdown = { path = "crates/html_to_markdown" }
241http_client = { path = "crates/http_client" }
242image_viewer = { path = "crates/image_viewer" }
243indexed_docs = { path = "crates/indexed_docs" }
244inline_completion = { path = "crates/inline_completion" }
245inline_completion_button = { path = "crates/inline_completion_button" }
246install_cli = { path = "crates/install_cli" }
247journal = { path = "crates/journal" }
248language = { path = "crates/language" }
249language_extension = { path = "crates/language_extension" }
250language_model = { path = "crates/language_model" }
251language_model_selector = { path = "crates/language_model_selector" }
252language_models = { path = "crates/language_models" }
253language_selector = { path = "crates/language_selector" }
254language_tools = { path = "crates/language_tools" }
255languages = { path = "crates/languages" }
256livekit_client = { path = "crates/livekit_client" }
257livekit_client_macos = { path = "crates/livekit_client_macos" }
258livekit_server = { path = "crates/livekit_server" }
259lsp = { path = "crates/lsp" }
260markdown = { path = "crates/markdown" }
261markdown_preview = { path = "crates/markdown_preview" }
262media = { path = "crates/media" }
263menu = { path = "crates/menu" }
264multi_buffer = { path = "crates/multi_buffer" }
265node_runtime = { path = "crates/node_runtime" }
266notifications = { path = "crates/notifications" }
267ollama = { path = "crates/ollama" }
268open_ai = { path = "crates/open_ai" }
269outline = { path = "crates/outline" }
270outline_panel = { path = "crates/outline_panel" }
271paths = { path = "crates/paths" }
272picker = { path = "crates/picker" }
273plugin = { path = "crates/plugin" }
274plugin_macros = { path = "crates/plugin_macros" }
275prettier = { path = "crates/prettier" }
276project = { path = "crates/project" }
277project_panel = { path = "crates/project_panel" }
278project_symbols = { path = "crates/project_symbols" }
279proto = { path = "crates/proto" }
280recent_projects = { path = "crates/recent_projects" }
281refineable = { path = "crates/refineable" }
282release_channel = { path = "crates/release_channel" }
283remote = { path = "crates/remote" }
284remote_server = { path = "crates/remote_server" }
285repl = { path = "crates/repl" }
286reqwest_client = { path = "crates/reqwest_client" }
287rich_text = { path = "crates/rich_text" }
288rope = { path = "crates/rope" }
289rpc = { path = "crates/rpc" }
290search = { path = "crates/search" }
291semantic_index = { path = "crates/semantic_index" }
292semantic_version = { path = "crates/semantic_version" }
293session = { path = "crates/session" }
294settings = { path = "crates/settings" }
295settings_ui = { path = "crates/settings_ui" }
296snippet = { path = "crates/snippet" }
297snippet_provider = { path = "crates/snippet_provider" }
298snippets_ui = { path = "crates/snippets_ui" }
299sqlez = { path = "crates/sqlez" }
300sqlez_macros = { path = "crates/sqlez_macros" }
301story = { path = "crates/story" }
302storybook = { path = "crates/storybook" }
303sum_tree = { path = "crates/sum_tree" }
304supermaven = { path = "crates/supermaven" }
305supermaven_api = { path = "crates/supermaven_api" }
306tab_switcher = { path = "crates/tab_switcher" }
307task = { path = "crates/task" }
308tasks_ui = { path = "crates/tasks_ui" }
309telemetry = { path = "crates/telemetry" }
310telemetry_events = { path = "crates/telemetry_events" }
311terminal = { path = "crates/terminal" }
312terminal_view = { path = "crates/terminal_view" }
313text = { path = "crates/text" }
314theme = { path = "crates/theme" }
315theme_extension = { path = "crates/theme_extension" }
316theme_importer = { path = "crates/theme_importer" }
317theme_selector = { path = "crates/theme_selector" }
318time_format = { path = "crates/time_format" }
319title_bar = { path = "crates/title_bar" }
320toolchain_selector = { path = "crates/toolchain_selector" }
321ui = { path = "crates/ui" }
322ui_input = { path = "crates/ui_input" }
323ui_macros = { path = "crates/ui_macros" }
324util = { path = "crates/util" }
325vcs_menu = { path = "crates/vcs_menu" }
326vim = { path = "crates/vim" }
327vim_mode_setting = { path = "crates/vim_mode_setting" }
328welcome = { path = "crates/welcome" }
329workspace = { path = "crates/workspace" }
330worktree = { path = "crates/worktree" }
331zed = { path = "crates/zed" }
332zed_actions = { path = "crates/zed_actions" }
333zeta = { path = "crates/zeta" }
334
335#
336# External crates
337#
338
339aho-corasick = "1.1"
340alacritty_terminal = "0.24"
341any_vec = "0.14"
342anyhow = "1.0.86"
343arrayvec = { version = "0.7.4", features = ["serde"] }
344ashpd = { version = "0.10", default-features = false, features = ["async-std"]}
345async-compat = "0.2.1"
346async-compression = { version = "0.4", features = ["gzip", "futures-io"] }
347async-dispatcher = "0.1"
348async-fs = "1.6"
349async-pipe = { git = "https://github.com/zed-industries/async-pipe-rs", rev = "82d00a04211cf4e1236029aa03e6b6ce2a74c553" }
350async-recursion = "1.0.0"
351async-tar = "0.5.0"
352async-trait = "0.1"
353async-tungstenite = "0.28"
354async-watch = "0.3.1"
355async_zip = { version = "0.0.17", features = ["deflate", "deflate64"] }
356base64 = "0.22"
357bitflags = "2.6.0"
358blade-graphics = { git = "https://github.com/kvark/blade", rev = "091a8401033847bb9b6ace3fcf70448d069621c5" }
359blade-macros = { git = "https://github.com/kvark/blade", rev = "091a8401033847bb9b6ace3fcf70448d069621c5" }
360blade-util = { git = "https://github.com/kvark/blade", rev = "091a8401033847bb9b6ace3fcf70448d069621c5" }
361blake3 = "1.5.3"
362bytes = "1.0"
363cargo_metadata = "0.19"
364cargo_toml = "0.21"
365chrono = { version = "0.4", features = ["serde"] }
366clap = { version = "4.4", features = ["derive"] }
367cocoa = "0.26"
368cocoa-foundation = "0.2.0"
369convert_case = "0.6.0"
370core-foundation = "0.9.3"
371core-foundation-sys = "0.8.6"
372ctor = "0.2.6"
373dashmap = "6.0"
374derive_more = "0.99.17"
375dirs = "4.0"
376ec4rs = "1.1"
377emojis = "0.6.1"
378env_logger = "0.11"
379exec = "0.3.1"
380fancy-regex = "0.14.0"
381fork = "0.2.0"
382futures = "0.3"
383futures-batch = "0.6.1"
384futures-lite = "1.13"
385git2 = { version = "0.19", default-features = false }
386globset = "0.4"
387handlebars = "4.3"
388heed = { version = "0.21.0", features = ["read-txn-no-tls"] }
389hex = "0.4.3"
390html5ever = "0.27.0"
391hyper = "0.14"
392http = "1.1"
393ignore = "0.4.22"
394image = "0.25.1"
395indexmap = { version = "1.6.2", features = ["serde"] }
396indoc = "2"
397itertools = "0.13.0"
398jsonwebtoken = "9.3"
399jupyter-protocol = { version = "0.5.0" }
400jupyter-websocket-client = { version = "0.8.0" }
401libc = "0.2"
402libsqlite3-sys = { version = "0.30.1", features = ["bundled"] }
403linkify = "0.10.0"
404livekit = { git = "https://github.com/zed-industries/livekit-rust-sdks", rev="060964da10574cd9bf06463a53bf6e0769c5c45e", features = ["dispatcher", "services-dispatcher", "rustls-tls-native-roots"], default-features = false }
405log = { version = "0.4.16", features = ["kv_unstable_serde", "serde"] }
406markup5ever_rcdom = "0.3.0"
407nanoid = "0.4"
408nbformat = { version = "0.9.0" }
409nix = "0.29"
410num-format = "0.4.4"
411ordered-float = "2.1.1"
412palette = { version = "0.7.5", default-features = false, features = ["std"] }
413parking_lot = "0.12.1"
414pathdiff = "0.2"
415pet = { git = "https://github.com/microsoft/python-environment-tools.git", rev = "ffcbf3f28c46633abd5448a52b1f396c322e0d6c" }
416pet-fs = { git = "https://github.com/microsoft/python-environment-tools.git", rev = "ffcbf3f28c46633abd5448a52b1f396c322e0d6c" }
417pet-conda = { git = "https://github.com/microsoft/python-environment-tools.git", rev = "ffcbf3f28c46633abd5448a52b1f396c322e0d6c" }
418pet-core = { git = "https://github.com/microsoft/python-environment-tools.git", rev = "ffcbf3f28c46633abd5448a52b1f396c322e0d6c" }
419pet-poetry = { git = "https://github.com/microsoft/python-environment-tools.git", rev = "ffcbf3f28c46633abd5448a52b1f396c322e0d6c" }
420pet-reporter = { git = "https://github.com/microsoft/python-environment-tools.git", rev = "ffcbf3f28c46633abd5448a52b1f396c322e0d6c" }
421postage = { version = "0.5", features = ["futures-traits"] }
422pretty_assertions = { version = "1.3.0", features = ["unstable"] }
423profiling = "1"
424prost = "0.9"
425prost-build = "0.9"
426prost-types = "0.9"
427pulldown-cmark = { version = "0.12.0", default-features = false }
428rand = "0.8.5"
429rayon = "1.8"
430regex = "1.5"
431repair_json = "0.1.0"
432reqwest = { git = "https://github.com/zed-industries/reqwest.git", rev = "fd110f6998da16bbca97b6dddda9be7827c50e29", default-features = false, features = [
433 "charset",
434 "http2",
435 "macos-system-configuration",
436 "rustls-tls-native-roots",
437 "socks",
438 "stream",
439] }
440rsa = "0.9.6"
441runtimelib = { version = "0.24.0", default-features = false, features = [
442 "async-dispatcher-runtime",
443] }
444rustc-demangle = "0.1.23"
445rust-embed = { version = "8.4", features = ["include-exclude"] }
446rustls = "0.21.12"
447rustls-native-certs = "0.8.0"
448schemars = { version = "0.8", features = ["impl_json_schema"] }
449semver = "1.0"
450serde = { version = "1.0", features = ["derive", "rc"] }
451serde_derive = { version = "1.0", features = ["deserialize_in_place"] }
452serde_json = { version = "1.0", features = ["preserve_order", "raw_value"] }
453serde_json_lenient = { version = "0.2", features = [
454 "preserve_order",
455 "raw_value",
456] }
457serde_repr = "0.1"
458sha2 = "0.10"
459shellexpand = "2.1.0"
460shlex = "1.3.0"
461signal-hook = "0.3.17"
462similar = "1.3"
463simplelog = "0.12.2"
464smallvec = { version = "1.6", features = ["union"] }
465smol = "1.2"
466sqlformat = "0.2"
467strsim = "0.11"
468strum = { version = "0.25.0", features = ["derive"] }
469subtle = "2.5.0"
470sys-locale = "0.3.1"
471sysinfo = "0.31.0"
472tempfile = "3.9.0"
473thiserror = "1.0.29"
474tiktoken-rs = "0.6.0"
475time = { version = "0.3", features = [
476 "macros",
477 "parsing",
478 "serde",
479 "serde-well-known",
480 "formatting",
481] }
482tiny_http = "0.8"
483toml = "0.8"
484tokio = { version = "1" }
485tower-http = "0.4.4"
486tree-sitter = { version = "0.23", features = ["wasm"] }
487tree-sitter-bash = "0.23"
488tree-sitter-c = "0.23"
489tree-sitter-cpp = "0.23"
490tree-sitter-css = "0.23"
491tree-sitter-elixir = "0.3"
492tree-sitter-embedded-template = "0.23.0"
493tree-sitter-go = "0.23"
494tree-sitter-go-mod = { git = "https://github.com/zed-industries/tree-sitter-go-mod", rev = "a9aea5e358cde4d0f8ff20b7bc4fa311e359c7ca", package = "tree-sitter-gomod" }
495tree-sitter-gowork = { git = "https://github.com/zed-industries/tree-sitter-go-work", rev = "acb0617bf7f4fda02c6217676cc64acb89536dc7" }
496tree-sitter-heex = { git = "https://github.com/zed-industries/tree-sitter-heex", rev = "1dd45142fbb05562e35b2040c6129c9bca346592" }
497tree-sitter-diff = "0.1.0"
498tree-sitter-html = "0.20"
499tree-sitter-jsdoc = "0.23"
500tree-sitter-json = "0.24"
501tree-sitter-md = { git = "https://github.com/tree-sitter-grammars/tree-sitter-markdown", rev = "9a23c1a96c0513d8fc6520972beedd419a973539" }
502tree-sitter-python = "0.23"
503tree-sitter-regex = "0.23"
504tree-sitter-ruby = "0.23"
505tree-sitter-rust = "0.23"
506tree-sitter-typescript = "0.23"
507tree-sitter-yaml = { git = "https://github.com/zed-industries/tree-sitter-yaml", rev = "baff0b51c64ef6a1fb1f8390f3ad6015b83ec13a" }
508unicase = "2.6"
509unindent = "0.1.7"
510unicode-segmentation = "1.10"
511unicode-script = "0.5.7"
512url = "2.2"
513uuid = { version = "1.1.2", features = ["v4", "v5", "v7", "serde"] }
514wasmparser = "0.215"
515wasm-encoder = "0.215"
516wasmtime = { version = "24", default-features = false, features = [
517 "async",
518 "demangle",
519 "runtime",
520 "cranelift",
521 "component-model",
522] }
523wasmtime-wasi = "24"
524which = "6.0.0"
525wit-component = "0.201"
526zstd = "0.11"
527metal = "0.30"
528
529[workspace.dependencies.async-stripe]
530git = "https://github.com/zed-industries/async-stripe"
531rev = "3672dd4efb7181aa597bf580bf5a2f5d23db6735"
532default-features = false
533features = [
534 "runtime-tokio-hyper-rustls",
535 "billing",
536 "checkout",
537 "events",
538 # The features below are only enabled to get the `events` feature to build.
539 "chrono",
540 "connect",
541]
542
543[workspace.dependencies.windows]
544version = "0.58"
545features = [
546 "implement",
547 "Foundation_Numerics",
548 "Storage",
549 "System_Threading",
550 "UI_ViewManagement",
551 "Wdk_System_SystemServices",
552 "Win32_Globalization",
553 "Win32_Graphics_Direct2D",
554 "Win32_Graphics_Direct2D_Common",
555 "Win32_Graphics_DirectWrite",
556 "Win32_Graphics_Dwm",
557 "Win32_Graphics_Dxgi_Common",
558 "Win32_Graphics_Gdi",
559 "Win32_Graphics_Imaging",
560 "Win32_Graphics_Imaging_D2D",
561 "Win32_Security",
562 "Win32_Security_Credentials",
563 "Win32_Storage_FileSystem",
564 "Win32_System_Com",
565 "Win32_System_Com_StructuredStorage",
566 "Win32_System_DataExchange",
567 "Win32_System_LibraryLoader",
568 "Win32_System_Memory",
569 "Win32_System_Ole",
570 "Win32_System_SystemInformation",
571 "Win32_System_SystemServices",
572 "Win32_System_Threading",
573 "Win32_System_WinRT",
574 "Win32_UI_Controls",
575 "Win32_UI_HiDpi",
576 "Win32_UI_Input_Ime",
577 "Win32_UI_Input_KeyboardAndMouse",
578 "Win32_UI_Shell",
579 "Win32_UI_Shell_Common",
580 "Win32_UI_WindowsAndMessaging",
581]
582
583# TODO livekit https://github.com/RustAudio/cpal/pull/891
584[patch.crates-io]
585cpal = { git = "https://github.com/zed-industries/cpal", rev = "fd8bc2fd39f1f5fdee5a0690656caff9a26d9d50" }
586
587[profile.dev]
588split-debuginfo = "unpacked"
589debug = "limited"
590codegen-units = 16
591
592[profile.dev.package]
593taffy = { opt-level = 3 }
594cranelift-codegen = { opt-level = 3 }
595resvg = { opt-level = 3 }
596rustybuzz = { opt-level = 3 }
597ttf-parser = { opt-level = 3 }
598wasmtime-cranelift = { opt-level = 3 }
599wasmtime = { opt-level = 3 }
600# Build single-source-file crates with cg=1 as it helps make `cargo build` of a whole workspace a bit faster
601activity_indicator = { codegen-units = 1 }
602assets = { codegen-units = 1 }
603breadcrumbs = { codegen-units = 1 }
604collections = { codegen-units = 1 }
605command_palette = { codegen-units = 1 }
606command_palette_hooks = { codegen-units = 1 }
607evals = { codegen-units = 1 }
608extension_cli = { codegen-units = 1 }
609feature_flags = { codegen-units = 1 }
610file_icons = { codegen-units = 1 }
611fsevent = { codegen-units = 1 }
612image_viewer = { codegen-units = 1 }
613inline_completion_button = { codegen-units = 1 }
614install_cli = { codegen-units = 1 }
615journal = { codegen-units = 1 }
616menu = { codegen-units = 1 }
617notifications = { codegen-units = 1 }
618ollama = { codegen-units = 1 }
619outline = { codegen-units = 1 }
620paths = { codegen-units = 1 }
621prettier = { codegen-units = 1 }
622project_symbols = { codegen-units = 1 }
623refineable = { codegen-units = 1 }
624release_channel = { codegen-units = 1 }
625reqwest_client = { codegen-units = 1 }
626rich_text = { codegen-units = 1 }
627semantic_version = { codegen-units = 1 }
628session = { codegen-units = 1 }
629snippet = { codegen-units = 1 }
630snippets_ui = { codegen-units = 1 }
631sqlez_macros = { codegen-units = 1 }
632story = { codegen-units = 1 }
633supermaven_api = { codegen-units = 1 }
634telemetry_events = { codegen-units = 1 }
635theme_selector = { codegen-units = 1 }
636time_format = { codegen-units = 1 }
637ui_input = { codegen-units = 1 }
638vcs_menu = { codegen-units = 1 }
639zed_actions = { codegen-units = 1 }
640
641[profile.release]
642debug = "limited"
643lto = "thin"
644codegen-units = 1
645
646[profile.release.package]
647zed = { codegen-units = 16 }
648
649[profile.release-fast]
650inherits = "release"
651debug = "full"
652lto = false
653codegen-units = 16
654
655[workspace.lints.clippy]
656dbg_macro = "deny"
657todo = "deny"
658
659# Motivation: We use `vec![a..b]` a lot when dealing with ranges in text, so
660# warning on this rule produces a lot of noise.
661single_range_in_vec_init = "allow"
662
663# These are all of the rules that currently have violations in the Zed
664# codebase.
665#
666# We'll want to drive this list down by either:
667# 1. fixing violations of the rule and begin enforcing it
668# 2. deciding we want to allow the rule permanently, at which point
669# we should codify that separately above.
670#
671# This list shouldn't be added to; it should only get shorter.
672# =============================================================================
673
674# There are a bunch of rules currently failing in the `style` group, so
675# allow all of those, for now.
676style = { level = "allow", priority = -1 }
677
678# Temporary list of style lints that we've fixed so far.
679module_inception = { level = "deny" }
680question_mark = { level = "deny" }
681redundant_closure = { level = "deny" }
682# Individual rules that have violations in the codebase:
683type_complexity = "allow"
684# We often return trait objects from `new` functions.
685new_ret_no_self = { level = "allow" }
686# We have a few `next` functions that differ in lifetimes
687# compared to Iterator::next. Yet, clippy complains about those.
688should_implement_trait = { level = "allow" }
689let_underscore_future = "allow"
690
691[workspace.metadata.cargo-machete]
692ignored = ["bindgen", "cbindgen", "prost_build", "serde"]