ZIm/crates
Kirill Bulatov d0bafce86b
Allow splitting the terminal panel (#21238)
Closes https://github.com/zed-industries/zed/issues/4351


![it_splits](https://github.com/user-attachments/assets/40de03c9-2173-4441-ba96-8e91537956e0)

Applies the same splitting mechanism, as Zed's central pane has, to the
terminal panel.
Similar navigation, splitting and (de)serialization capabilities are
supported.

Notable caveats:
* zooming keeps the terminal splits' ratio, rather expanding the
terminal pane
* on macOs, central panel is split with `cmd-k up/down/etc.` but `cmd-k`
is a "standard" terminal clearing keybinding on macOS, so terminal panel
splitting is done via `ctrl-k up/down/etc.`
* task terminals are "split" into regular terminals, and also not
persisted (same as currently in the terminal)

Seems ok for the initial version, we can revisit and polish things
later.

Release Notes:

- Added the ability to split the terminal panel
2024-11-27 20:22:39 +02:00
..
activity_indicator language servers: Fix wrong language server name (#20428) 2024-11-11 10:18:38 +01:00
anthropic assistant: Remove low_speed_timeout (#20681) 2024-11-15 07:37:31 +01:00
assets add ui::Vector and separate images from icons (#17815) 2024-09-13 17:44:16 -04:00
assistant Allow splitting the terminal panel (#21238) 2024-11-27 20:22:39 +02:00
assistant2 assistant2: Add a checkbox to control tool use (#21215) 2024-11-26 10:48:48 -05:00
assistant_slash_command Overhaul extension registration (#21083) 2024-11-22 19:02:32 -05:00
assistant_tool Factor tool definitions out of assistant (#21189) 2024-11-25 18:26:34 -05:00
assistant_tools assistant2: Add support for using tools (#21190) 2024-11-25 19:44:34 -05:00
audio Update Rust crate rodio to 0.19.0 (#17389) 2024-09-16 21:55:32 -06:00
auto_update Extract auto_update_ui crate (#21008) 2024-11-21 14:11:57 -05:00
auto_update_ui Extract auto_update_ui crate (#21008) 2024-11-21 14:11:57 -05:00
breadcrumbs Add missing shortcuts in tooltips (#18282) 2024-09-27 11:06:48 +02:00
call Revert "Use livekit's Rust SDK instead of their swift SDK (#13343)" (#20809) 2024-11-18 11:43:53 +02:00
channel Use Instant not chrono for telemetry (#20756) 2024-11-19 08:23:12 -07:00
cli Add initial FreeBSD support (#20480) 2024-11-11 18:39:05 +01:00
client Send llm events to snowflake too (#21091) 2024-11-22 20:40:39 -07:00
clock Use Instant not chrono for telemetry (#20756) 2024-11-19 08:23:12 -07:00
collab Factor tool definitions out of assistant (#21189) 2024-11-25 18:26:34 -05:00
collab_ui collab_ui: Remove dependency on vcs_menu (#21016) 2024-11-21 15:48:35 -05:00
collections gpui: Add SVG rendering to img element and generic asset cache (#9931) 2024-03-29 17:09:49 -07:00
command_palette title_bar: Remove dependency on command_palette (#21006) 2024-11-21 13:37:34 -05:00
command_palette_hooks Improve context server lifecycle management (#20622) 2024-11-13 13:55:06 -08:00
context_server Factor tool definitions out of assistant (#21189) 2024-11-25 18:26:34 -05:00
context_server_settings Factor tool definitions out of assistant (#21189) 2024-11-25 18:26:34 -05:00
copilot Add fs::MTime newtype to encourage != instead of > (#20830) 2024-11-21 19:21:18 -07:00
db chore: Fix some violations of 'needless_pass_by_ref_mut' lint (#18795) 2024-10-07 01:29:58 +02:00
diagnostics Avoid endless loop of the diagnostic updates (#21209) 2024-11-26 14:29:54 +02:00
docs_preprocessor Don't rely on relative path for docs preprocessor (#16883) 2024-08-26 11:43:13 -04:00
editor Allow splitting the terminal panel (#21238) 2024-11-27 20:22:39 +02:00
evals windows: Set CREATE_NO_WINDOW for commands (#18447) 2024-11-20 16:52:38 -08:00
extension Overhaul extension registration (#21083) 2024-11-22 19:02:32 -05:00
extension_api zed_extension_api: Release v0.2.0 (#20683) 2024-11-14 12:44:10 -05:00
extension_cli Add new extension crate (#20089) 2024-11-01 13:20:30 -04:00
extension_host Factor tool definitions out of assistant (#21189) 2024-11-25 18:26:34 -05:00
extensions_ui Overhaul extension registration (#21083) 2024-11-22 19:02:32 -05:00
feature_flags assistant2: Add support for using tools (#21190) 2024-11-25 19:44:34 -05:00
feedback title_bar: Remove dependency on feedback (#21013) 2024-11-21 15:24:04 -05:00
file_finder Fix file finder menu actions (#21087) 2024-11-23 02:21:19 +02:00
file_icons chore: Clean up allocs around project panel (#15422) 2024-07-29 14:21:41 +02:00
fs Add fs::MTime newtype to encourage != instead of > (#20830) 2024-11-21 19:21:18 -07:00
fsevent Retain run loop (#11241) 2024-04-30 23:31:59 -06:00
fuzzy Improve slash commands (#16195) 2024-08-13 23:06:07 -07:00
git windows: Set CREATE_NO_WINDOW for commands (#18447) 2024-11-20 16:52:38 -08:00
git_hosting_providers git_hosting_providers: Fix support for GitLab remotes containing subgroups (#19962) 2024-10-30 11:16:44 -04:00
go_to_line Improve project search performance (#20211) 2024-11-05 03:49:37 +02:00
google_ai assistant: Remove low_speed_timeout (#20681) 2024-11-15 07:37:31 +01:00
gpui Allow splitting the terminal panel (#21238) 2024-11-27 20:22:39 +02:00
gpui_macros add ui::Vector and separate images from icons (#17815) 2024-09-13 17:44:16 -04:00
html_to_markdown chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
http_client Revert "Use livekit's Rust SDK instead of their swift SDK (#13343)" (#20809) 2024-11-18 11:43:53 +02:00
image_viewer Allow splitting the terminal panel (#21238) 2024-11-27 20:22:39 +02:00
indexed_docs Overhaul extension registration (#21083) 2024-11-22 19:02:32 -05:00
inline_completion Extract InlineCompletionProvider to its own crate (#20935) 2024-11-20 16:51:13 -05:00
inline_completion_button language_model: Remove dependency on inline_completion_button (#20930) 2024-11-20 16:19:20 -05:00
install_cli Fix flickering (#9012) 2024-03-11 10:45:57 +01:00
journal chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
language pylsp: Prefer version from user venv (#21069) 2024-11-25 00:54:47 +01:00
language_extension pylsp: Prefer version from user venv (#21069) 2024-11-25 00:54:47 +01:00
language_model assistant2: Restructure storage of tool uses and results (#21194) 2024-11-25 21:53:27 -05:00
language_model_selector Factor out language model selector into its own crate (#21113) 2024-11-23 12:11:31 -05:00
language_models assistant2: Restructure storage of tool uses and results (#21194) 2024-11-25 21:53:27 -05:00
language_selector python: Fix toolchains not getting picked up after workspace deserialization (#20488) 2024-11-11 14:35:01 +01:00
language_tools Expose active key equivalents in the keymap context view (#20530) 2024-11-11 23:04:15 -07:00
languages Use eslint from the fork (#21233) 2024-11-27 12:02:39 +02:00
live_kit_client Revert "Use livekit's Rust SDK instead of their swift SDK (#13343)" (#20809) 2024-11-18 11:43:53 +02:00
live_kit_server Restore HTTP client transition, but use reqwest everywhere (#19055) 2024-10-11 14:58:58 -07:00
lsp Properly use lsp::CompletionList defaults (#21202) 2024-11-26 12:23:38 +02:00
markdown Add initial FreeBSD support (#20480) 2024-11-11 18:39:05 +01:00
markdown_preview Markdown preview image rendering (#21082) 2024-11-22 14:49:26 -08:00
media Revert "Use livekit's Rust SDK instead of their swift SDK (#13343)" (#20809) 2024-11-18 11:43:53 +02:00
menu open picker (#14524) 2024-07-15 17:04:15 -06:00
multi_buffer Add File.disk_state enum to clarify filesystem states (#20776) 2024-11-18 10:30:08 -08:00
node_runtime windows: Set CREATE_NO_WINDOW for commands (#18447) 2024-11-20 16:52:38 -08:00
notifications Markdown preview image rendering (#21082) 2024-11-22 14:49:26 -08:00
ollama Fix inaccurate Ollama context length for qwen2.5 models (#20933) 2024-11-22 10:10:01 -05:00
open_ai assistant: Remove low_speed_timeout (#20681) 2024-11-15 07:37:31 +01:00
outline Revert "remove usages of theme::color_alpha" 2024-11-19 00:24:48 -05:00
outline_panel Remove assistant hints (#21171) 2024-11-25 17:19:33 +01:00
paths Add initial FreeBSD support (#20480) 2024-11-11 18:39:05 +01:00
picker toolchains: Use language-specific terms in UI (#20985) 2024-11-21 15:57:22 +01:00
prettier Add more common Prettier plugin base paths (#20758) 2024-11-16 13:20:52 +02:00
project Avoid endless loop of the diagnostic updates (#21209) 2024-11-26 14:29:54 +02:00
project_panel Fix file missing or duplicated when copying multiple items in project panel + Fix marked files not being deselected after selecting a directory (#20859) 2024-11-27 01:23:01 +02:00
project_symbols Fix renames over language server for SSH remoting (#17897) 2024-09-16 16:20:17 -06:00
proto toolchains: Expose raw JSON representation of a toolchain (#20721) 2024-11-21 13:27:25 +01:00
recent_projects Remove assistant hints (#21171) 2024-11-25 17:19:33 +01:00
refineable Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
release_channel chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
remote Fix panics from spawn_local tasks dropped on other threads in remote server (#21022) 2024-11-21 14:50:38 -07:00
remote_server Overhaul extension registration (#21083) 2024-11-22 19:02:32 -05:00
repl Upgrade jupyter websocket client (#21095) 2024-11-22 22:11:20 -08:00
reqwest_client assistant: Remove low_speed_timeout (#20681) 2024-11-15 07:37:31 +01:00
rich_text Markdown preview image rendering (#21082) 2024-11-22 14:49:26 -08:00
rope rope: Minor optimization for tab indices (#20911) 2024-11-21 08:48:13 +01:00
rpc Add support for git branches on remote projects (#19755) 2024-10-27 15:50:54 -07:00
search Only show breadcrumbs for terminals when there's a title (#20997) 2024-11-21 19:57:09 +02:00
semantic_index Add fs::MTime newtype to encourage != instead of > (#20830) 2024-11-21 19:21:18 -07:00
semantic_version Extract SemanticVersion into its own crate (#9956) 2024-03-29 12:11:57 -04:00
session chore: Fix some violations of 'needless_pass_by_ref_mut' lint (#18795) 2024-10-07 01:29:58 +02:00
settings Fix keybindings on a Spanish ISO keyboard (#20995) 2024-11-21 10:18:54 -07:00
settings_ui Revert "theme: Turn ThemeRegistry into a trait (#20076)" (#20094) 2024-11-01 15:34:20 -04:00
snippet Snippet choices (#13958) 2024-11-18 22:56:34 +01:00
snippet_provider Overhaul extension registration (#21083) 2024-11-22 19:02:32 -05:00
snippets_ui Add snippet commands (#18453) 2024-10-02 13:27:16 +02:00
sqlez Add initial FreeBSD support (#20480) 2024-11-11 18:39:05 +01:00
sqlez_macros Add initial FreeBSD support (#20480) 2024-11-11 18:39:05 +01:00
story chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
storybook Add preview for Checkbox with Label (#20448) 2024-11-08 22:53:15 -05:00
sum_tree Speed up point translation in the Rope (#19913) 2024-10-30 10:59:03 +01:00
supermaven windows: Set CREATE_NO_WINDOW for commands (#18447) 2024-11-20 16:52:38 -08:00
supermaven_api chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
tab_switcher tab_switcher: Use git-aware colors for file icons (#18733) 2024-10-04 10:37:41 -04:00
task Add the option to hide both the task and command lines in the task output (#20920) 2024-11-22 13:45:42 -05:00
tasks_ui chore: Sever terminal_view <-> tasks_ui dependency (#20946) 2024-11-21 01:07:14 +01:00
telemetry_events Start to send data to Snowflake too (#20698) 2024-11-15 12:58:00 -07:00
terminal Add the option to hide both the task and command lines in the task output (#20920) 2024-11-22 13:45:42 -05:00
terminal_view Allow splitting the terminal panel (#21238) 2024-11-27 20:22:39 +02:00
text Fix a test flake involving zeroed out group_intervals (#20328) 2024-11-07 09:17:43 -07:00
theme Revert "remove usages of theme::color_alpha" 2024-11-19 00:24:48 -05:00
theme_extension Overhaul extension registration (#21083) 2024-11-22 19:02:32 -05:00
theme_importer chore: Another round of style lints fixes (#17519) 2024-09-07 02:36:55 +02:00
theme_selector title_bar: Remove dependency on theme_selector (#21009) 2024-11-21 14:33:58 -05:00
time_format chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
title_bar title_bar: Remove dependency on feedback (#21013) 2024-11-21 15:24:04 -05:00
toolchain_selector toolchains: Use language-specific terms in UI (#20985) 2024-11-21 15:57:22 +01:00
ui Fix file finder menu actions (#21087) 2024-11-23 02:21:19 +02:00
ui_input Rename ui_text_field crate to ui_input (#13949) 2024-07-08 17:05:30 -04:00
ui_macros Fix DynamicSpacing docs (#20509) 2024-11-11 12:58:39 -05:00
util Allow overrides for json-language-server settings (#20748) 2024-11-22 17:50:25 -05:00
vcs_menu title_bar: Remove dependency on vcs_menu (#21011) 2024-11-21 14:56:02 -05:00
vim Add ctrl-w _ and ctrl-w = (#21227) 2024-11-26 16:45:38 -08:00
vim_mode_setting Extract VimModeSetting to its own crate (#21019) 2024-11-21 16:24:38 -05:00
welcome welcome: Remove dependency on theme_selector (#21024) 2024-11-21 17:50:22 -05:00
workspace Allow splitting the terminal panel (#21238) 2024-11-27 20:22:39 +02:00
worktree Add fs::MTime newtype to encourage != instead of > (#20830) 2024-11-21 19:21:18 -07:00
zed v0.165.x dev 2024-11-27 09:48:40 -05:00
zed_actions title_bar: Remove dependency on feedback (#21013) 2024-11-21 15:24:04 -05:00