ZIm/crates
Smit Barmase f737c4d01e
editor: Improve selection highlights speed (#29097)
Before, we used to debounce selection highlight because it needed to
search the whole file to show gutter line highlights, etc. This
experience felt extremely laggy.

This PR introduces a new approach where:
1. We query only visible rows without debounce. The search function
itself is async and runs in a background thread, so it's not blocking
anything. With no debounce and such a small search space, highlights
feel realtime.
2. In parallel, we also query the whole file (still debounced, like
before). Once this query resolves, it updates highlights across the
file, making scrollbar markers visible.

This hybrid way gives the feeling of realtime, while keeping the same
functionality.


https://github.com/user-attachments/assets/432b65f1-89d2-4658-ad5e-048921b06a23

P.S. I have removed the user setting for custom debounce delay, because
(one) now it doesn't really make sense to configure that, and (two) the
whole logic is based on the assumption that the fast query will resolve
before the debounced query. A static debounce time makes sure of that.
Configuring it might lead to cases where the fast query resolves after
the debounced query, and we end up only seeing visible viewport
highlights.

Release Notes:

- Improved selection highlight speed.
2025-04-20 01:20:36 +05:30
..
activity_indicator Git activity indicator (#28204) 2025-04-07 18:10:01 +00:00
agent agent: Add item to add custom MCP server in the panel's menu (#29091) 2025-04-19 12:09:50 -03:00
anthropic Add more eval examples + filtering examples by language + fix git concurrent usage (#28719) 2025-04-14 22:05:46 +00:00
askpass Remove netcat dependency (#28920) 2025-04-16 19:46:36 -04:00
assets Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
assistant Simplify language model registry + only emit change events on change (#29086) 2025-04-19 08:26:42 +00:00
assistant_context_editor agent: Attach thread ID and prompt ID to telemetry events (#29069) 2025-04-18 20:41:02 +00:00
assistant_settings Actually run the eval and fix a hang when retrieving outline (#28547) 2025-04-11 00:01:33 +00:00
assistant_slash_command Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
assistant_slash_commands agent: Use default prompts from prompt library in system prompt (#28915) 2025-04-18 09:32:35 -06:00
assistant_tool agent: Add websearch tool (#28621) 2025-04-16 19:25:00 +02:00
assistant_tools Systematically optimize agentic editing performance (#28961) 2025-04-19 02:47:59 +00:00
audio Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
auto_update windows: Implement AutoUpdater (#25734) 2025-04-14 10:36:31 -07:00
auto_update_helper Update block diagnostics (#28006) 2025-04-15 09:35:13 -06:00
auto_update_ui Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
aws_http_client Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
bedrock bedrock: Add support for tool use, cross-region inference, and Claude 3.7 Thinking (#28137) 2025-04-05 11:16:26 -04:00
breadcrumbs breadcrumbs: Update multibuffer to match singleton (#28267) 2025-04-07 20:26:55 +00:00
buffer_diff Fix diff recalculation hang (#28377) 2025-04-10 22:58:41 +00:00
call Fix deafening new participants (#28330) 2025-04-08 16:01:27 +00:00
channel Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
cli Try to weak-link ScreenCaptureKit always (#28585) 2025-04-11 17:38:14 +00:00
client Upgrade async-tungstenite to tokio (#26193) 2025-04-08 09:17:08 -06:00
clock Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
collab collab: Upgrade from Zed Pro trial to Zed Pro by ending trial period early (#29052) 2025-04-18 15:29:22 +00:00
collab_ui Update default vim substitute command behavior and add support for 'g' flag (#28138) 2025-04-09 14:34:51 -06:00
collections Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
command_palette Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
command_palette_hooks Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
component Add example agent tool preview (#28984) 2025-04-17 17:29:19 +00:00
component_preview Refine component preview & add serialization (#28545) 2025-04-11 11:43:57 -04:00
context_server agent: Return ToolResult from run inside Tool (#28763) 2025-04-15 14:28:09 +00:00
context_server_settings Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
copilot Add support for OpenAI o3 and o4-mini models (#28881) 2025-04-17 10:58:41 -04:00
credentials_provider Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
dap debugger: Clear dap status indicator when dap update/download is complete (#28913) 2025-04-16 21:22:08 +00:00
dap_adapters debugger: Remove LLDB adapter, switch Rust tasks to CodeLLDB (#28773) 2025-04-15 15:29:43 +00:00
db debugger_ui: Move DEBUGGER_PANEL_PREFIX out of db (#28768) 2025-04-15 14:59:42 +00:00
debugger_tools Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
debugger_ui debugger: Configure default pane layout conditionally based on capabilities (#28991) 2025-04-17 14:46:50 -04:00
deepseek Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
diagnostics Set diagnostic width based on ems (#28936) 2025-04-16 22:31:04 -06:00
docs_preprocessor Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
editor editor: Improve selection highlights speed (#29097) 2025-04-20 01:20:36 +05:30
eval Simplify language model registry + only emit change events on change (#29086) 2025-04-19 08:26:42 +00:00
extension extension: Use heck instead of convert_case for snake_case check (#28608) 2025-04-11 22:01:25 +00:00
extension_api chore: Bump Rust edition to 2024 (#27800) 2025-03-31 20:55:27 +02:00
extension_cli Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
extension_host Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
extensions_ui Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
feature_flags agent: Add websearch tool (#28621) 2025-04-16 19:25:00 +02:00
feedback feedback: Update issue template URL (#28790) 2025-04-15 21:36:30 -04:00
file_finder agent: Refine language model selector (#28597) 2025-04-11 23:02:50 +00:00
file_icons Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
fs Implement dragging external files to remote projects (#28987) 2025-04-17 11:06:56 -07:00
fsevent Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
fuzzy Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
git Add support for remote branches to the branch picker (#28978) 2025-04-17 16:13:02 +00:00
git_hosting_providers Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
git_ui agent: Attach thread ID and prompt ID to telemetry events (#29069) 2025-04-18 20:41:02 +00:00
go_to_line vim: Fix character count in visual line mode (#28669) 2025-04-17 22:14:44 -06:00
google_ai agent: Fix system instructions typo (#28949) 2025-04-17 08:51:05 +00:00
gpui gpui: Introduce PlatformKeyboardLayout trait for human-friendly keyboard layout names (#29049) 2025-04-19 22:23:03 +08:00
gpui_macros Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
gpui_tokio Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
html_to_markdown Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
http_client Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
http_client_tls Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
icons agent: Refine language model selector (#28597) 2025-04-11 23:02:50 +00:00
image_viewer Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
indexed_docs Add --user-data-dir CLI flag and propose renaming support_dir to data_dir (#26886) 2025-04-10 21:16:43 +00:00
inline_completion Show edit predictions usage in status bar menu (#29046) 2025-04-18 14:15:19 +00:00
inline_completion_button Show edit predictions usage in status bar menu (#29046) 2025-04-18 14:15:19 +00:00
install_cli install_cli: Show feedback when installing CLI from welcome screen (#28532) 2025-04-11 01:47:40 +05:30
journal Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
language Update block diagnostics (#28006) 2025-04-15 09:35:13 -06:00
language_extension Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
language_model Simplify language model registry + only emit change events on change (#29086) 2025-04-19 08:26:42 +00:00
language_model_selector proto: Add ZedProTrial to Plan (#28885) 2025-04-16 18:13:00 +00:00
language_models language_models: Fix passing of thread_id and prompt_id (#29071) 2025-04-18 21:12:23 +00:00
language_selector Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
language_tools gpui: Introduce PlatformKeyboardLayout trait for human-friendly keyboard layout names (#29049) 2025-04-19 22:23:03 +08:00
languages Improve Regex highlighting (#28183) 2025-04-18 12:44:13 -04:00
livekit_api Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
livekit_client Fix deafening new participants (#28330) 2025-04-08 16:01:27 +00:00
lmstudio Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
lsp Add support for insert_text_mode of a completion (#28171) 2025-04-07 10:35:11 -06:00
markdown agent: Simplify design of the settings view (#29041) 2025-04-18 14:24:53 -03:00
markdown_preview Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
media chore: Make objc a workspace level crate (#28258) 2025-04-07 18:46:09 +00:00
menu Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
migrator outline_panel: Rename outline_panel::Open to outline_panel::OpenSelectedEntry (#28890) 2025-04-17 01:44:00 +05:30
mistral Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
multi_buffer Fix anchor_in_excerpt on replaced excerpts (#28880) 2025-04-16 12:35:40 -06:00
node_runtime Add --user-data-dir CLI flag and propose renaming support_dir to data_dir (#26886) 2025-04-10 21:16:43 +00:00
notifications Merge Component and ComponentPreview trait (#28365) 2025-04-08 16:09:06 -06:00
ollama Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
open_ai Add support for OpenAI o3 and o4-mini models (#28881) 2025-04-17 10:58:41 -04:00
outline editor: Refactor EditorMode::Full (#28546) 2025-04-10 23:22:27 +00:00
outline_panel outline_panel: Rename outline_panel::Open to outline_panel::OpenSelectedEntry (#28890) 2025-04-17 01:44:00 +05:30
panel Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
paths Add zed to Flatpak config and data directories (#28952) 2025-04-19 10:41:03 -07:00
picker agent: Refine language model selector (#28597) 2025-04-11 23:02:50 +00:00
prettier Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
project Fix zed sometimes stopping by using setsid on interactive shells (#29070) 2025-04-18 15:04:26 -06:00
project_panel Implement dragging external files to remote projects (#28987) 2025-04-17 11:06:56 -07:00
project_symbols Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
prompt_library agent: Attach thread ID and prompt ID to telemetry events (#29069) 2025-04-18 20:41:02 +00:00
prompt_store Systematically optimize agentic editing performance (#28961) 2025-04-19 02:47:59 +00:00
proto project: Show detached head commit SHA in branch pickers (#29007) 2025-04-18 04:23:56 +05:30
recent_projects History manager (#26369) 2025-04-11 21:34:51 +00:00
refineable Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
release_channel Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
remote Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
remote_server Implement dragging external files to remote projects (#28987) 2025-04-17 11:06:56 -07:00
repl Upgrade async-tungstenite to tokio (#26193) 2025-04-08 09:17:08 -06:00
reqwest_client Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
rich_text Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
rope chore: Bump Rust version to 1.86 (#28021) 2025-04-03 23:32:50 +02:00
rpc rpc: Remove llm module in favor of zed_llm_client (#28900) 2025-04-16 20:22:44 +00:00
schema_generator Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
search buffer_search: Fix DeployReplace not working when buffer search is already deployed (#29066) 2025-04-19 00:26:02 +05:30
semantic_index agent: Attach thread ID and prompt ID to telemetry events (#29069) 2025-04-18 20:41:02 +00:00
semantic_version Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
session Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
settings gpui: Introduce PlatformKeyboardLayout trait for human-friendly keyboard layout names (#29049) 2025-04-19 22:23:03 +08:00
settings_ui Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
snippet Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
snippet_provider snippet_provider: Use proper casing of VsCode in identifiers (#29038) 2025-04-18 12:11:54 +00:00
snippets_ui Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
sqlez Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
sqlez_macros Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
story Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
storybook Merge Component and ComponentPreview trait (#28365) 2025-04-08 16:09:06 -06:00
streaming_diff Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
sum_tree Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
supermaven Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
supermaven_api Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
tab_switcher tab_switcher: Add keybind to close tab tooltip (#27212) 2025-04-08 15:57:36 -06:00
task Remove DebugAdapterConfig (#28898) 2025-04-16 14:02:10 -06:00
tasks_ui Tidy up DAP initialization (#28730) 2025-04-15 17:11:29 +02:00
telemetry Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
telemetry_events telemetry_events: Rename AssistantEvent to AssistantEventData (#28133) 2025-04-04 19:28:32 -04:00
terminal agent: Use current shell (#28470) 2025-04-09 23:38:36 -06:00
terminal_view Implement dragging external files to remote projects (#28987) 2025-04-17 11:06:56 -07:00
text format: Re-implement support for formatting with code actions that contain commands (#28392) 2025-04-09 01:53:54 +00:00
theme Add icon for Vyper files (#28307) 2025-04-09 10:49:39 -04:00
theme_extension Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
theme_importer Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
theme_selector Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
time_format Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
title_bar project: Show detached head commit SHA in branch pickers (#29007) 2025-04-18 04:23:56 +05:30
toolchain_selector toolchain: Respect currently focused file when querying toolchains (#28875) 2025-04-16 19:05:57 +02:00
ui agent: Add item to add custom MCP server in the panel's menu (#29091) 2025-04-19 12:09:50 -03:00
ui_input Merge Component and ComponentPreview trait (#28365) 2025-04-08 16:09:06 -06:00
ui_macros Merge Component and ComponentPreview trait (#28365) 2025-04-08 16:09:06 -06:00
ui_prompt markdown: Don't retain MarkdownStyle in favor of using MarkdownElement directly (#28255) 2025-04-07 19:03:24 +00:00
util Fix zed sometimes stopping by using setsid on interactive shells (#29070) 2025-04-18 15:04:26 -06:00
util_macros Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
vim Fix zed sometimes stopping by using setsid on interactive shells (#29070) 2025-04-18 15:04:26 -06:00
vim_mode_setting Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
web_search agent: Add websearch tool (#28621) 2025-04-16 19:25:00 +02:00
web_search_providers agent: Add websearch tool (#28621) 2025-04-16 19:25:00 +02:00
welcome install_cli: Show feedback when installing CLI from welcome screen (#28532) 2025-04-11 01:47:40 +05:30
workspace gpui: Introduce PlatformKeyboardLayout trait for human-friendly keyboard layout names (#29049) 2025-04-19 22:23:03 +08:00
worktree Systematically optimize agentic editing performance (#28961) 2025-04-19 02:47:59 +00:00
zed gpui: Introduce PlatformKeyboardLayout trait for human-friendly keyboard layout names (#29049) 2025-04-19 22:23:03 +08:00
zed_actions Add hidden prompt_to_focus field to OpenPromptLibrary action (#29062) 2025-04-18 20:39:40 +00:00
zeta Show edit predictions usage in status bar menu (#29046) 2025-04-18 14:15:19 +00:00
zlog Fix error logging (#29010) 2025-04-17 20:58:54 -04:00
zlog_settings zlog: Use zlog as default log implementation (#28612) 2025-04-14 14:17:07 +00:00