mirror of
https://github.com/zed-industries/zed.git
synced 2026-06-01 03:14:56 +07:00
collab: Remove dependency on X11
I'm not sure if this is the best solution (perhaps pulling
`LanguageName` into a separate `language_types` crate would be
better...?) - but it massively reduces build time / dependencies / size
and means that the collab server no longer requires X11 libraries to be
installed.
tl;dr: `telemetry_events` requires the `language` crate, and the
language crate requires a whole ton of extra stuff. Since
telemetry_events only uses `language` for a single type definition
(`LanguageName`, aka `String`), we can cut all of these out by using the
base `String` type (This doesn't seem too terrible, given that all other
telemetry fields are using basic datatypes like String as opposed to
more strongly-typed variants).
FYI the dependency tree for "why does collab need X11 libraries??" looks
like this:
```
collab
\- telemetry_events
\- language
|- gpui
|- fuzzy
| \- gpui
|- git
| \- gpui
|- lsp
| |- gpui
| \- release_channel
| \- gpui
|- settings
| |- fs
| | \- gpui
| \- gpui
|- task
| \- gpui
\- theme
\- gpui
```
Release Notes:
- N/A
|
||
|---|---|---|
| .. | ||
| context | ||
| slash_command | ||
| tools | ||
| assistant.rs | ||
| assistant_panel.rs | ||
| assistant_settings.rs | ||
| context.rs | ||
| context_store.rs | ||
| inline_assistant.rs | ||
| model_selector.rs | ||
| prompt_library.rs | ||
| prompts.rs | ||
| slash_command.rs | ||
| slash_command_picker.rs | ||
| slash_command_settings.rs | ||
| streaming_diff.rs | ||
| terminal_inline_assistant.rs | ||
| tools.rs | ||
| workflow.rs | ||