ZIm/crates
tims 6fce53651b
project_panel: Refine selection, copying, and deletion behavior (#22658)
Closes #22655

A more detailed write-up for this change can be found in the issue
itself. Here, I'm just providing previews after the change. The preview
before the change can be found in the attached issue.

1. While selecting multiple entries, the last clicked entry should be
selected.


[a.webm](https://github.com/user-attachments/assets/2add69c3-82a9-4e45-92e8-366aaf9b298a)

2. When holding `Ctrl`/`Cmd` on an entry, there should be clear visual
feedback to indicate whether the entry is selected or marked.


[b.webm](https://github.com/user-attachments/assets/2cefb8aa-e7d0-4929-9efa-89a4329f428b)


3. When only one entry is marked, but it’s different from the selection,
operations should prioritize the selected entry. This let's you do quick
one-off actions without disrupting the marked state.


[c.webm](https://github.com/user-attachments/assets/8e7ae0c0-4387-49b9-9761-5d02a1c21a84)


4. When more than one entries are marked, operations should prioritize
the marked entries. If the selection differs from the marked entries, it
should not interfere with operations on the marked entries. This let's
you do actions on multiple marked entries without needing to adjust the
selection.


[d.webm](https://github.com/user-attachments/assets/165a74be-cbe9-48ac-b558-2562485ea224)

Release Notes:

- Improved project panel selection, copying, and deletion behavior, to
be more predictable.
2025-01-07 00:46:50 +00:00
..
activity_indicator Add Corner to geometry and make names of corner methods consistent (#22119) 2024-12-16 22:57:15 -07:00
anthropic anthropic: Allow specifying additional beta headers for custom models (#20551) 2025-01-03 23:46:32 +00:00
assets add ui::Vector and separate images from icons (#17815) 2024-09-13 17:44:16 -04:00
assistant Move git status out of Entry (#22224) 2025-01-04 01:00:16 +00:00
assistant2 assistant2: Expand some variable names (#22742) 2025-01-06 23:02:51 +00: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.20.0 (#20955) 2024-11-28 10:58:36 +02:00
auto_update Extract auto_update_ui crate (#21008) 2024-11-21 14:11:57 -05:00
auto_update_ui Dequalify WindowContext and ViewContext references (#22477) 2024-12-28 23:09:55 +00:00
breadcrumbs chore: Remove outline dependency from breadcrumbs (#22504) 2024-12-30 12:08:26 +00:00
call More telemetry events (#22171) 2024-12-17 22:16:59 -07:00
channel Use Instant not chrono for telemetry (#20756) 2024-11-19 08:23:12 -07:00
cli Move git status out of Entry (#22224) 2025-01-04 01:00:16 +00:00
client chore: Remove explicit usages of once_cell in favor of std (#22407) 2024-12-25 00:33:26 +00:00
clock Use Instant not chrono for telemetry (#20756) 2024-11-19 08:23:12 -07:00
collab Add validation in LspCommand::to_lsp + check for inverted ranges (#22731) 2025-01-06 22:00:36 +00:00
collab_ui collab_ui: Show the chat panel icon when the chat panel is active (#22593) 2025-01-02 22:53:34 +00:00
collections Move git status out of Entry (#22224) 2025-01-04 01:00:16 +00:00
command_palette Match keymap-style action names in command palette (#22149) 2024-12-19 12:48:54 +00:00
command_palette_hooks Use the same InlineAssist action between both assistant and assistant2 (#22126) 2024-12-16 23:57:07 -05:00
context_server Dequalify WindowContext and AsyncWindowContext identifiers (#22444) 2024-12-28 21:21:32 +00:00
context_server_settings Factor tool definitions out of assistant (#21189) 2024-11-25 18:26:34 -05:00
copilot copilot: Update Copilot Chat to o1 GA model version (#22376) 2024-12-27 18:09:50 +00:00
db chore: Fix some violations of 'needless_pass_by_ref_mut' lint (#18795) 2024-10-07 01:29:58 +02:00
diagnostics Improve diagnostics multibuffer design (#22705) 2025-01-06 14:58:12 +00:00
docs_preprocessor Don't rely on relative path for docs preprocessor (#16883) 2024-08-26 11:43:13 -04:00
editor Use info popovers instead of diagnostic for invisible char hover (#22701) 2025-01-06 17:44:26 +00:00
evals windows: Set CREATE_NO_WINDOW for commands (#18447) 2024-11-20 16:52:38 -08:00
extension Add language icons to the language selector (#21298) 2024-12-02 15:01:09 -03:00
extension_api zed_extension_api: Add a short explanation of repo format (#21824) 2024-12-10 15:04:47 -05:00
extension_cli Add new extension crate (#20089) 2024-11-01 13:20:30 -04:00
extension_host Add telemetry::event! (#22146) 2024-12-17 11:39:18 -07:00
extensions_ui Cleanups preparing for WindowContext refactor (#22475) 2024-12-28 21:36:14 +00:00
feature_flags Add placeholder git panel (#21894) 2024-12-11 22:13:52 -05:00
feedback Dequalify WindowContext and AsyncWindowContext identifiers (#22444) 2024-12-28 21:21:32 +00:00
file_finder Cleanups preparing for WindowContext refactor (#22475) 2024-12-28 21:36:14 +00:00
file_icons Add a CI check for todo! and FIXME comments (#21950) 2024-12-20 08:38:50 +00:00
fs linux: Prevent target file from being trashed when trashing symlink (#22704) 2025-01-07 00:13:16 +00:00
fsevent Retain run loop (#11241) 2024-04-30 23:31:59 -06:00
fuzzy Fuzzy match performance improvements redo (#22561) 2025-01-02 05:31:06 +00:00
git Move git status out of Entry (#22224) 2025-01-04 01:00:16 +00:00
git_hosting_providers Use static LazyLocks for all constant regexes (#22225) 2024-12-19 02:20:35 +00:00
git_ui Temporarily revert git panel diff editor feature (#22733) 2025-01-06 22:09:05 +00:00
go_to_line Only debounce the cursor position in multibuffer excerpts (#21946) 2024-12-12 18:27:06 -08:00
google_ai google_ai: Add Gemini 2.0 Flash support (#22665) 2025-01-06 21:28:31 +00:00
gpui linux: Add keyboard_layout and on_keyboard_layout_change support (#22736) 2025-01-07 00:10:00 +00:00
gpui_macros Dequalify WindowContext and ViewContext references (#22477) 2024-12-28 23:09:55 +00:00
html_to_markdown Use static LazyLocks for all constant regexes (#22225) 2024-12-19 02:20:35 +00:00
http_client Use LiveKit's Rust SDK on Linux while continue using Swift SDK on Mac (#21550) 2024-12-05 15:06:17 -08:00
image_viewer Move git status out of Entry (#22224) 2025-01-04 01:00:16 +00:00
indexed_docs Improve StringMatchCandidate::new interface (#22011) 2024-12-14 13:35:36 -07:00
inline_completion Show inline completions in menu only for supported providers (#22181) 2024-12-18 12:55:09 +01:00
inline_completion_button Add Corner to geometry and make names of corner methods consistent (#22119) 2024-12-16 22:57:15 -07:00
install_cli
journal chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
language Add validation in LspCommand::to_lsp + check for inverted ranges (#22731) 2025-01-06 22:00:36 +00:00
language_extension Add language icons to the language selector (#21298) 2024-12-02 15:01:09 -03:00
language_model google_ai: Add Gemini 2.0 Flash support (#22665) 2025-01-06 21:28:31 +00:00
language_model_selector language_model_selector: Refresh the models when the providers change (#22624) 2025-01-03 19:38:08 +00:00
language_models anthropic: Allow specifying additional beta headers for custom models (#20551) 2025-01-03 23:46:32 +00:00
language_selector Improve StringMatchCandidate::new interface (#22011) 2024-12-14 13:35:36 -07:00
language_tools Support diagnostic navigation in multibuffers (#22620) 2025-01-03 18:07:56 +00:00
languages go: Adjust gopls path based on OS (#22727) 2025-01-06 22:04:10 +00:00
livekit_client Use LiveKit's Rust SDK on Linux while continue using Swift SDK on Mac (#21550) 2024-12-05 15:06:17 -08:00
livekit_client_macos Rename livekit_client_macos test_app to suppress warnings (#22719) 2025-01-06 19:17:53 +00:00
livekit_server Use LiveKit's Rust SDK on Linux while continue using Swift SDK on Mac (#21550) 2024-12-05 15:06:17 -08:00
lsp Ensure zls is used for Zig as a primary language server (#22511) 2024-12-30 23:34:25 +00:00
markdown markdown: Make push_div work with Stateful<Div>s (#22622) 2025-01-03 18:24:04 +00:00
markdown_preview Add tooltip for Markdown Preview copy code button (#22057) 2024-12-17 14:46:38 -05:00
media Switch to a single GPU context in Blade (#20853) 2024-12-18 14:47:09 -07:00
menu Show restart transformation button after successful inline assist (#20439) 2024-12-13 20:31:54 -08:00
multi_buffer Fix panic on diagnostic hover (#22693) 2025-01-06 02:31:02 +00: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 Introduce staff-only inline completion provider (#21739) 2024-12-09 14:26:36 +01:00
outline chore: Remove outline dependency from breadcrumbs (#22504) 2024-12-30 12:08:26 +00:00
outline_panel Move git status out of Entry (#22224) 2025-01-04 01:00:16 +00:00
paths Add initial FreeBSD support (#20480) 2024-11-11 18:39:05 +01:00
picker Cleanups preparing for WindowContext refactor (#22475) 2024-12-28 21:36:14 +00:00
prettier Add .prettierignore support (#21297) 2024-12-12 15:45:44 -08:00
project Temporarily revert git panel diff editor feature (#22733) 2025-01-06 22:09:05 +00:00
project_panel project_panel: Refine selection, copying, and deletion behavior (#22658) 2025-01-07 00:46:50 +00:00
project_symbols Add and use CodeLabel::filter_text() (#22054) 2024-12-15 22:24:41 -07:00
proto Fix a bug where repositories were always being marked as changed (#22725) 2025-01-06 19:03:15 +00:00
recent_projects Dequalify WindowContext and ViewContext references (#22477) 2024-12-28 23:09:55 +00:00
refineable
release_channel chore: Remove explicit usages of once_cell in favor of std (#22407) 2024-12-25 00:33:26 +00:00
remote Fix uploading ssh binaries when ssh cds (#22744) 2025-01-06 23:04:49 +00:00
remote_server Move git status out of Entry (#22224) 2025-01-04 01:00:16 +00:00
repl Move git status out of Entry (#22224) 2025-01-04 01:00:16 +00: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 Upgrade strum to v0.26 (#22633) 2025-01-03 22:23:06 +00:00
search Improve project search design details (#22529) 2025-01-01 00:09:36 +00:00
semantic_index Dequalify WindowContext and ViewContext references (#22477) 2024-12-28 23:09:55 +00:00
semantic_version
session chore: Fix some violations of 'needless_pass_by_ref_mut' lint (#18795) 2024-10-07 01:29:58 +02:00
settings Move git status out of Entry (#22224) 2025-01-04 01:00:16 +00:00
settings_ui Toggle & Switch (#21979) 2024-12-13 14:23:02 -05: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 Improve StringMatchCandidate::new interface (#22011) 2024-12-14 13:35:36 -07:00
sqlez Update rustls and sqlx (#21506) 2024-12-03 23:22:26 -05: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 Dequalify WindowContext and ViewContext references (#22477) 2024-12-28 23:09:55 +00:00
sum_tree Move git status out of Entry (#22224) 2025-01-04 01:00:16 +00:00
supermaven Show inline completions in menu only for supported providers (#22181) 2024-12-18 12:55:09 +01:00
supermaven_api chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
tab_switcher Move git status out of Entry (#22224) 2025-01-04 01:00:16 +00:00
task Move git status out of Entry (#22224) 2025-01-04 01:00:16 +00:00
tasks_ui Improve truncate efficiency and fix OBOE in truncate_and_remove_front (#22591) 2025-01-02 22:35:36 +00:00
telemetry Allow telemetry::event! with no properties (#22190) 2024-12-18 09:41:47 -07:00
telemetry_events Improve Linux panic reporting (#22202) 2024-12-22 08:20:17 +00:00
terminal terminal: Support clicking on "file://" URLs with line numbers (#22559) 2025-01-02 17:24:55 +00:00
terminal_view Fix ghost files appearing in the project panel when clicking relative paths in the terminal (#22688) 2025-01-05 21:49:32 +00:00
text Support diagnostic navigation in multibuffers (#22620) 2025-01-03 18:07:56 +00:00
theme Move git status out of Entry (#22224) 2025-01-04 01:00:16 +00:00
theme_extension Overhaul extension registration (#21083) 2024-11-22 19:02:32 -05:00
theme_importer deps: Bump indexmap to 2.0 (#22567) 2025-01-02 12:07:46 +00:00
theme_selector More telemetry events (#22171) 2024-12-17 22:16:59 -07:00
time_format chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
title_bar Move git status out of Entry (#22224) 2025-01-04 01:00:16 +00:00
toolchain_selector Improve StringMatchCandidate::new interface (#22011) 2024-12-14 13:35:36 -07:00
ui Improve multibuffer excerpt affordances (#22167) 2024-12-30 12:23:11 +00:00
ui_input Remove usage of use gpui::* (#22310) 2024-12-20 22:52:11 +00:00
ui_macros Fix DynamicSpacing docs (#20509) 2024-11-11 12:58:39 -05:00
util Improve truncate efficiency and fix OBOE in truncate_and_remove_front (#22591) 2025-01-02 22:35:36 +00:00
vcs_menu Improve StringMatchCandidate::new interface (#22011) 2024-12-14 13:35:36 -07:00
vim vim: Fix VisualYankLine (#22416) 2025-01-07 00:15:19 +00:00
vim_mode_setting Extract VimModeSetting to its own crate (#21019) 2024-11-21 16:24:38 -05:00
welcome Dequalify WindowContext and ViewContext references (#22477) 2024-12-28 23:09:55 +00:00
workspace Move git status out of Entry (#22224) 2025-01-04 01:00:16 +00:00
worktree Fix a bug where repositories were always being marked as changed (#22725) 2025-01-06 19:03:15 +00:00
zed zed: Add timeouts for feature flag resolution in workspace panel initialization (#22715) 2025-01-06 17:01:16 +00:00
zed_actions chore: Remove outline dependency from breadcrumbs (#22504) 2024-12-30 12:08:26 +00:00
zeta Allow disabling editor scrollbars programmatically (#22333) 2024-12-21 16:58:26 +00:00