ZIm/crates
Finn Evers a65ea2708c
editor: Refactor scrollbar-related code (#24134)
This PR is primarily an implementation of @osiewicz
[comment](https://github.com/zed-industries/zed/pull/19495#pullrequestreview-2488877957)
in an effort to increase maintainability after the horizontal editor
scrollbar was added in #19495 . I also want to build on these changes in
future PRs to adress some other small bugs.

This primarily does the following:
1. Uses `along` wherever possible
2. Fixes the amount of mouse event listeners attached to the editor when
scrollbars are displayed to 2 instead of 2-4 in case both scrollbars are
displayed.

This can be done since only one scrollbar can be dragged by the cursor
at any given time, so the event listeners now account for that. The
state reflecting the scrollbar dragging state was also updated
accordingly.

It does not change any functionality besides the aforementioned event
listener code as well as some minor bugs which where present after
#19495 , namely:
- One missing `cx.stop_propagation()` (see
[here](a8741dc310/crates/editor/src/element.rs (L4684))
and
[here](a8741dc310/crates/editor/src/element.rs (L4838))
respectively).
- The horizontal scrollbar thumb having a small border on the left side,
which seems to be unintended for the horizontal scrollbar whilst
intended for the vertical one. Since this is a minimal change, I figured
it could be already included in this PR.

This PR admittetly grew quite large over time, however, much of the diff
is just renames to account for the code now working for both axes as
well as moved code. The logic remains (or should at least be)
unaffected. If I should split this into two PRs or remove some of the
changes, please let me know.

Release Notes:

- N/A
2025-03-25 22:08:46 +01:00
..
activity_indicator Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
anthropic assistant: Add support for claude-3-7-sonnet-thinking (#27085) 2025-03-21 12:29:07 +00:00
askpass Bump up default timeout (#27250) 2025-03-21 10:04:39 -06:00
assets Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
assistant assistant: Allow opening the Prompt Library via the command palette (#27368) 2025-03-24 21:00:33 -03:00
assistant2 assistant2: Allow profiles to manage context server tools (#27452) 2025-03-25 19:55:59 +00:00
assistant_context_editor debugger: Fix typing in active buffer resulting a jump to an active debug line (#27439) 2025-03-25 17:08:36 +00:00
assistant_eval Delete unused checkpoints (#27260) 2025-03-21 16:39:01 +00:00
assistant_settings assistant2: Allow profiles to manage context server tools (#27452) 2025-03-25 19:55:59 +00:00
assistant_slash_command Allow too many arguments (#26375) 2025-03-10 13:38:30 -06:00
assistant_slash_commands Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
assistant_tool Remove ui dependency from assistant_tool and context_server (#27449) 2025-03-25 18:37:15 +00:00
assistant_tools assistant tools: Add Tool::icon method instead of matching on name (#27444) 2025-03-25 18:17:36 +00:00
audio Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
auto_update Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
auto_update_ui Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
aws_http_client Add aws_http_client and bedrock crates (#25490) 2025-02-24 20:28:20 +00:00
bedrock bedrock: Add Claude 3.7 Sonnet (#25583) 2025-02-25 13:52:42 -05:00
breadcrumbs Add user-visible output for remote operations (#25849) 2025-03-03 09:20:15 +00:00
buffer_diff Fix crash when toggling deleted hunk (#27138) 2025-03-24 19:25:56 +00:00
call Migrate most callers of git-related worktree APIs to use the GitStore (#27225) 2025-03-21 00:10:17 -04:00
channel Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
cli zed: Add --system-specs arg (#27285) 2025-03-22 02:56:25 +00:00
client Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
clock chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
collab Rename LSP function and simplify tests (#27313) 2025-03-22 19:23:11 +00:00
collab_ui migrator: Add migration for settings changed prior to migrator-introduction (#27375) 2025-03-25 04:35:01 +05:30
collections chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
command_palette Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
command_palette_hooks vim: :set support (#24209) 2025-02-11 04:55:40 +00:00
component component_preview: Add component pages (#26284) 2025-03-07 18:56:17 +00:00
component_preview Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
context_server Remove ui dependency from assistant_tool and context_server (#27449) 2025-03-25 18:37:15 +00:00
context_server_settings Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
copilot copilot: Add Claude 3.7-Sonnet-Thought model to Copilot Chat (#27409) 2025-03-25 10:56:27 +01:00
credentials_provider Use the development credentials provider in development by default (#25273) 2025-02-20 19:07:16 +00:00
dap Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
dap_adapters debugger/lldb: Remove xcrun-based lldb-dap binary lookup (#27405) 2025-03-25 00:21:09 +00:00
db cx.background_executor().spawn(...) -> cx.background_spawn(...) (#25103) 2025-02-18 20:30:33 +00:00
debugger_tools Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
debugger_ui debugger ui: Make variable values muted by default (#27441) 2025-03-25 18:43:27 +01:00
deepseek Add DeepSeek support (#23551) 2025-01-27 13:40:59 -05:00
diagnostics Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
docs_preprocessor docs: Improve Git page (#26566) 2025-03-25 09:22:01 -03:00
editor editor: Refactor scrollbar-related code (#24134) 2025-03-25 22:08:46 +01:00
evals Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
extension extension: Add support for additional_workspace_configuration and additional_initialization_options (#27407) 2025-03-25 18:23:59 +05:30
extension_api extension: Add support for additional_workspace_configuration and additional_initialization_options (#27407) 2025-03-25 18:23:59 +05:30
extension_cli extension_cli: Make use of scrollbar_thumb.background a hard error (#25932) 2025-03-03 15:55:15 +00:00
extension_host extension: Add support for additional_workspace_configuration and additional_initialization_options (#27407) 2025-03-25 18:23:59 +05:30
extensions_ui extensions_ui : Scroll to top on filter change (#27305) 2025-03-22 18:38:01 +05:30
feature_flags feature_flags: Do not enable feature flags by default in dev builds (#27065) 2025-03-19 12:20:26 +00:00
feedback zed: Add --system-specs arg (#27285) 2025-03-22 02:56:25 +00:00
file_finder Remove Pixels: Mul<Pixels, Output = Pixels> impl, add ScaledPixels ops (#27451) 2025-03-25 19:34:26 +00:00
file_icons Allow icon themes to provide their own file associations (#24926) 2025-02-15 00:35:13 +00:00
fs Fix crash when toggling deleted hunk (#27138) 2025-03-24 19:25:56 +00:00
fsevent Deflake fs::test_event_stream_simple (#24013) 2025-01-30 23:53:36 -07:00
fuzzy Allow too many arguments (#26375) 2025-03-10 13:38:30 -06:00
git Git: reload index before reading it (#27386) 2025-03-24 19:03:57 +00:00
git_hosting_providers git_hosting_providers: Allow configuring additional hosting providers via settings (#26879) 2025-03-17 15:39:52 +00:00
git_ui Make a single re-usable banner component (#27412) 2025-03-25 07:05:25 +00:00
go_to_line Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
google_ai Partially fix assistant onboarding (#25313) 2025-02-24 07:29:55 +00:00
gpui Remove Pixels: Mul<Pixels, Output = Pixels> impl, add ScaledPixels ops (#27451) 2025-03-25 19:34:26 +00:00
gpui_macros Add seed argument to #[gpui::test] attribute macro (#26764) 2025-03-14 13:40:02 -03:00
gpui_tokio Make the gpui_tokio crate generic over the context it spawns (#23995) 2025-01-31 02:00:55 +00:00
html_to_markdown Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
http_client chore: Extract http-client-tls crate (#26895) 2025-03-17 02:36:37 +00:00
http_client_tls chore: Extract http-client-tls crate (#26895) 2025-03-17 02:36:37 +00:00
icons Add icons crate (#27447) 2025-03-25 18:18:22 +00:00
image_viewer Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
indexed_docs Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
inline_completion edit predictions: Show user if current project is open source (#24587) 2025-02-10 22:28:56 -03:00
inline_completion_button Set edit predictions to default to the Zed provider (#27394) 2025-03-24 20:45:06 -07:00
install_cli Fix missed renames in #22632 (#23688) 2025-01-26 23:37:34 +00:00
journal Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
language Merge clangd's inactiveRegions with existing diagnostics (#26737) 2025-03-25 15:13:53 +02:00
language_extension extension: Add support for additional_workspace_configuration and additional_initialization_options (#27407) 2025-03-25 18:23:59 +05:30
language_model language_model: Remove dependency on ui (#27448) 2025-03-25 18:30:46 +00:00
language_model_selector assistant: Dismiss model picker upon selection (#27162) 2025-03-20 10:22:49 -03:00
language_models copilot: Add Claude 3.7-Sonnet-Thought model to Copilot Chat (#27409) 2025-03-25 10:56:27 +01:00
language_selector Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
language_tools lsp-config: Allow setting a server's environment variables (#27213) 2025-03-21 09:15:41 +02:00
languages python: Add task for running modules (#26462) 2025-03-25 22:08:16 +01:00
livekit_api Change license of crates/livekit_api from AGPL to GPL (#25206) 2025-02-19 23:32:51 +00:00
livekit_client Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
livekit_client_macos Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
lmstudio lmstudio: Support missing quantization in model metadata (#24054) 2025-01-31 22:28:11 +00:00
lsp Rename LSP function and simplify tests (#27313) 2025-03-22 19:23:11 +00:00
markdown Add support for dashed borders to GPUI (#27139) 2025-03-25 11:11:04 -06:00
markdown_preview debugger: Fix typing in active buffer resulting a jump to an active debug line (#27439) 2025-03-25 17:08:36 +00:00
media chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
menu keymap: Update Prev to Previous for consistency (#25909) 2025-03-03 17:44:49 +05:30
migrator migrator: Add migration for settings changed prior to migrator-introduction (#27375) 2025-03-25 04:35:01 +05:30
mistral assistant: Add Mistral support (#24879) 2025-02-14 13:07:41 -05:00
multi_buffer Don't assume that the excerpt can be found (#27395) 2025-03-24 16:12:26 -06:00
node_runtime node_runtime: Use user/global configuration when using system node installation (#26209) 2025-03-06 12:50:42 +01:00
notifications Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
ollama Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
open_ai Update Assistant context limits (#25087) 2025-02-19 11:06:20 -05:00
outline Fix editor's outline view confirm not working before any queries have (#26761) 2025-03-14 07:19:43 +00:00
outline_panel Remove Pixels: Mul<Pixels, Output = Pixels> impl, add ScaledPixels ops (#27451) 2025-03-25 19:34:26 +00:00
panel Fix syntax highlighting of git commit messages (#26988) 2025-03-18 18:18:56 +00:00
paths Notify about broken task file contents (#27185) 2025-03-20 13:06:10 +00:00
picker Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
prettier Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
project Merge clangd's inactiveRegions with existing diagnostics (#26737) 2025-03-25 15:13:53 +02:00
project_panel Remove Pixels: Mul<Pixels, Output = Pixels> impl, add ScaledPixels ops (#27451) 2025-03-25 19:34:26 +00:00
project_symbols Rename LSP function and simplify tests (#27313) 2025-03-22 19:23:11 +00:00
prompt_library Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
prompt_store Initial support for AI assistant rules files (#27168) 2025-03-20 08:30:04 +00:00
proto assistant: Add support for claude-3-7-sonnet-thinking (#27085) 2025-03-21 12:29:07 +00:00
recent_projects Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
refineable windows: Fix tests on Windows (#22616) 2025-02-05 14:30:09 +00:00
release_channel windows: Missing commit of #25412 (#25732) 2025-02-27 08:00:42 +00:00
remote Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
remote_server Rename LSP function and simplify tests (#27313) 2025-03-22 19:23:11 +00:00
repl Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
reqwest_client Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
rich_text Allow too many arguments (#26375) 2025-03-10 13:38:30 -06:00
rope Add support for auto-closing of JSX tags (#25681) 2025-03-06 08:36:10 -06:00
rpc extensions_ui: Add ability to filter extensions by category (#27005) 2025-03-18 17:59:58 +00:00
schema_generator Improve schema_generator CLI (#25898) 2025-03-06 04:59:57 +00:00
search Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
semantic_index Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
semantic_version chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
session Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
settings Notify about broken task file contents (#27185) 2025-03-20 13:06:10 +00:00
settings_ui Fix UI font size changes not applying (#25307) 2025-02-21 06:24:02 -03:00
snippet Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
snippet_provider Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
snippets_ui Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
sqlez Debugger implementation (#13433) 2025-03-18 12:55:25 -04:00
sqlez_macros windows: Fix tests on Windows (#22616) 2025-02-05 14:30:09 +00:00
story gpui: Rename rounded_md to rounded_sm (#26228) 2025-03-06 17:57:31 +00:00
storybook Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
streaming_diff chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
sum_tree git: Fix race condition when [un]staging hunks in quick succession (#26422) 2025-03-13 10:41:04 -07:00
supermaven Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
supermaven_api Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
tab_switcher git_ui: Branch picker improvements (#26287) 2025-03-10 11:39:01 -04:00
task windows: Detect pwsh (#25713) 2025-03-24 22:31:11 -07:00
tasks_ui Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
telemetry Git telemetry (#26222) 2025-03-06 10:56:28 -07:00
telemetry_events Remove unused AssistantThreadFeedback event (#27021) 2025-03-18 20:39:54 +00:00
terminal windows: Detect pwsh (#25713) 2025-03-24 22:31:11 -07:00
terminal_view Remove Pixels: Mul<Pixels, Output = Pixels> impl, add ScaledPixels ops (#27451) 2025-03-25 19:34:26 +00:00
text Revert "Start tracking edits performed by the agent" (#27077) 2025-03-19 15:33:08 +01:00
theme theme: Add fallback colors for version_control.<variant> properties (#27104) 2025-03-19 18:48:35 +00:00
theme_extension theme: Don't log errors for missing themes until extensions have loaded (#25098) 2025-02-18 17:47:25 +00:00
theme_importer Add schema_generator for generating JSON schemas (#23991) 2025-01-31 01:22:10 +00:00
theme_selector extensions_ui: Add ability to open the extensions view with a pre-selected filter (#27093) 2025-03-19 17:26:46 +00:00
time_format Add an undo button to the git panel (#24593) 2025-02-12 15:57:08 -07:00
title_bar title bar: Adjust the onboarding banner component API (#27455) 2025-03-25 17:57:42 -03:00
toolchain_selector Move "async move" a few characters to the left in cx.spawn() (#26758) 2025-03-19 02:09:02 +00:00
ui Remove Pixels: Mul<Pixels, Output = Pixels> impl, add ScaledPixels ops (#27451) 2025-03-25 19:34:26 +00:00
ui_input Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
ui_macros Add StatusToast & the ToastLayer (#26232) 2025-03-06 20:37:54 +00:00
ui_prompt Support built-in Zed prompts for all platforms (#26201) 2025-03-18 22:27:09 -06:00
util Gracefully handle models searching for empty glob (#27370) 2025-03-25 12:32:20 -04:00
util_macros Use line_endings macro for the edit tool tests (#26642) 2025-03-15 14:16:10 +08:00
vim Rename LSP function and simplify tests (#27313) 2025-03-22 19:23:11 +00:00
vim_mode_setting Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
welcome extensions_ui: Add ability to open the extensions view with a pre-selected filter (#27093) 2025-03-19 17:26:46 +00:00
workspace Add support for dashed borders to GPUI (#27139) 2025-03-25 11:11:04 -06:00
worktree Migrate most callers of git-related worktree APIs to use the GitStore (#27225) 2025-03-21 00:10:17 -04:00
zed zed: Make inline assist quick action dispatch an action (#27445) 2025-03-25 18:11:30 +00:00
zed_actions assistant: Allow opening the Prompt Library via the command palette (#27368) 2025-03-24 21:00:33 -03:00
zeta Add support for dashed borders to GPUI (#27139) 2025-03-25 11:11:04 -06:00
zlog zlog: Implement better scope map (#27408) 2025-03-25 03:05:32 +00:00
zlog_settings zlog: Init (#27273) 2025-03-21 20:08:03 +00:00