zed/crates
Piotr Osiewicz 1b3b825c7f
Some checks are pending
CI / check_docs_only (push) Waiting to run
CI / Check Postgres and Protobuf migrations, mergability (push) Waiting to run
CI / Check formatting and spelling (push) Waiting to run
CI / (macOS) Run Clippy and tests (push) Blocked by required conditions
CI / (Linux) Run Clippy and tests (push) Blocked by required conditions
CI / (Linux) Build Remote Server (push) Blocked by required conditions
CI / (Windows) Run Clippy and tests (push) Blocked by required conditions
CI / Create a macOS bundle (push) Blocked by required conditions
CI / Create a Linux bundle (push) Blocked by required conditions
CI / Create arm64 Linux bundle (push) Blocked by required conditions
CI / Auto release preview (push) Blocked by required conditions
Deploy Docs / Deploy Docs (push) Waiting to run
Docs / Check formatting (push) Waiting to run
Script / ShellCheck Scripts (push) Waiting to run
lsp: Parse LSP messages on background thread - again (#23122)
This is a follow-up to #12640.
While profiling latency of working with a project with 8192 diagnostics
I've noticed that while we're parsing the LSP messages into a generic
message struct on a background thread, we can still block the main
thread as the conversion between that generic message struct and the
actual LSP message (for use by callback) is still happening on the main
thread.
This PR significantly constrains what a message callback can use, so
that it can be executed on any thread; we also send off message
conversion to the background thread. In practice new callback
constraints were already satisfied by all call sites, so no code outside
of the lsp crate had to be adjusted.

This has improved throughput of my 8192-benchmark from 40s to send out
all diagnostics after saving to ~20s. Now main thread is spending most
of the time updating our diagnostics sets, which can probably be
improved too.

Closes #ISSUE

Release Notes:

- Improved app responsiveness with huge # of diagnostics.
2025-01-14 13:50:54 +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
assistant Improve registration for Assistant code action providers (#23099) 2025-01-13 22:25:58 +00:00
assistant2 Improve registration for Assistant code action providers (#23099) 2025-01-13 22:25:58 +00:00
assistant_slash_command
assistant_tool
assistant_tools
audio
auto_update
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
cli linux: Fix issue with project-specific env not being found via .envrc (direnv) (#22803) 2025-01-08 16:38:19 +00:00
client deps: Bump smol to 2.0 (#22956) 2025-01-10 13:38:00 +00:00
clock
collab lsp: Parse LSP messages on background thread - again (#23122) 2025-01-14 13:50:54 +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
copilot Show configuration in language server debug logs (#23084) 2025-01-13 21:00:03 +00:00
db
diagnostics Add Diagnostics key context (#23043) 2025-01-13 16:07:04 +00:00
docs_preprocessor
editor lsp: Parse LSP messages on background thread - again (#23122) 2025-01-14 13:50:54 +00:00
evals
extension extension: Fix manifest filename in error message (#22906) 2025-01-09 17:38:46 +00:00
extension_api zed_extension_api: Add a short explanation of repo format (#21824) 2024-12-10 15:04:47 -05:00
extension_cli
extension_host Add telemetry::event! (#22146) 2024-12-17 11:39:18 -07:00
extensions_ui extensions_ui: Show an error toast when a dev extension fails to install (#22914) 2025-01-09 19:38:16 +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
fireworks zeta: Report Fireworks request data to Snowflake (#22973) 2025-01-10 22:40:54 +00:00
fs deps: Bump smol to 2.0 (#22956) 2025-01-10 13:38:00 +00:00
fsevent
fuzzy Fuzzy match performance improvements redo (#22561) 2025-01-02 05:31:06 +00:00
git git: Git Panel UI, continued (#22960) 2025-01-13 16:47:09 +00:00
git_hosting_providers Use static LazyLocks for all constant regexes (#22225) 2024-12-19 02:20:35 +00:00
git_ui git: Fully implement "all staged" checkbox (#23079) 2025-01-13 20:13:14 +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 Add support for namespace changes in action deprecations (#23086) 2025-01-13 20:56:22 +00:00
gpui_macros Improve keymap json schema (#23044) 2025-01-13 02:34:35 +00:00
html_to_markdown Use static LazyLocks for all constant regexes (#22225) 2024-12-19 02:20:35 +00:00
http_client
image_viewer chore: Add missing test-support features to terminal_view and image_viewer (#22782) 2025-01-07 17:19:22 +00:00
indexed_docs Improve StringMatchCandidate::new interface (#22011) 2024-12-14 13:35:36 -07:00
inline_completion Animate Zeta button while generating completions (#22899) 2025-01-09 15:24:35 +00:00
inline_completion_button Animate Zeta button while generating completions (#22899) 2025-01-09 15:24:35 +00:00
install_cli
journal
language Improve keymap json schema (#23044) 2025-01-13 02:34:35 +00:00
language_extension
language_model assistant2: Small misc efficiency improvements (#22947) 2025-01-10 09:20:15 +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 copilot_chat: Rename o1-preview model to o1 (#23038) 2025-01-13 15:32:26 +00:00
language_selector Improve StringMatchCandidate::new interface (#22011) 2024-12-14 13:35:36 -07:00
language_tools Show configuration in language server debug logs (#23084) 2025-01-13 21:00:03 +00:00
languages Show configuration in language server debug logs (#23084) 2025-01-13 21:00:03 +00:00
livekit_client
livekit_client_macos Rename livekit_client_macos test_app to suppress warnings (#22719) 2025-01-06 19:17:53 +00:00
livekit_server
lsp lsp: Parse LSP messages on background thread - again (#23122) 2025-01-14 13:50:54 +00:00
markdown Do not show copy buttons in editor's hover popovers (#22962) 2025-01-10 14:16:52 +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 outline items navigation (#22890) 2025-01-09 10:25:02 +00:00
node_runtime
notifications
ollama
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 Fix outline items navigation (#22890) 2025-01-09 10:25:02 +00:00
paths
picker Improve keymap json schema (#23044) 2025-01-13 02:34:35 +00:00
prettier Show configuration in language server debug logs (#23084) 2025-01-13 21:00:03 +00:00
project Show configuration in language server debug logs (#23084) 2025-01-13 21:00:03 +00:00
project_panel Improve keymap json schema (#23044) 2025-01-13 02:34:35 +00:00
project_symbols Add and use CodeLabel::filter_text() (#22054) 2024-12-15 22:24:41 -07:00
proto Add support for rename with language servers that lack prepareRename (#23000) 2025-01-11 21:22:17 +00:00
recent_projects Fix empty title in Recent Projects (#21952) 2025-01-07 03:45:38 +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 ssh remoting: Improve error message if netcat is missing (#22767) 2025-01-07 13:16:52 +00:00
remote_server deps: Bump smol to 2.0 (#22956) 2025-01-10 13:38:00 +00:00
repl chore: Add missing test-support features to terminal_view and image_viewer (#22782) 2025-01-07 17:19:22 +00:00
reqwest_client
rich_text
rope
rpc Remove commented-out code (#23089) 2025-01-13 21:02:45 +00:00
search Improve keymap json schema (#23044) 2025-01-13 02:34:35 +00:00
semantic_index deps: Bump smol to 2.0 (#22956) 2025-01-10 13:38:00 +00:00
semantic_version
session
settings Fix confusing keymap json errors and hovers for nonexistent actions (#23098) 2025-01-13 21:53:12 +00:00
settings_ui Toggle & Switch (#21979) 2024-12-13 14:23:02 -05:00
snippet
snippet_provider
snippets_ui Improve StringMatchCandidate::new interface (#22011) 2024-12-14 13:35:36 -07:00
sqlez
sqlez_macros
story story: Use itertools as a workspace dependency (#22919) 2025-01-09 21:19:17 +00: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 Animate Zeta button while generating completions (#22899) 2025-01-09 15:24:35 +00:00
supermaven_api
tab_switcher Improve keymap json schema (#23044) 2025-01-13 02:34:35 +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 deps: Bump smol to 2.0 (#22956) 2025-01-10 13:38:00 +00:00
terminal_view terminal: Fix unresponsive buttons on load until center pane is clicked + Auto-focus docked terminal on load if no other item is focused (#23039) 2025-01-13 15:11:45 +00:00
text Support diagnostic navigation in multibuffers (#22620) 2025-01-03 18:07:56 +00:00
theme Remove commented-out code (#23089) 2025-01-13 21:02:45 +00:00
theme_extension
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
title_bar Improve keymap json schema (#23044) 2025-01-13 02:34:35 +00:00
toolchain_selector Improve StringMatchCandidate::new interface (#22011) 2024-12-14 13:35:36 -07:00
ui assistant2: Fix inline context picker and handle dismiss (#23081) 2025-01-13 21:00:20 +00:00
ui_input Remove usage of use gpui::* (#22310) 2024-12-20 22:52:11 +00:00
ui_macros
util Add a dedicated action to open files (#22625) 2025-01-08 14:29:15 +00:00
vcs_menu Only count existing branches in picker search (#22908) 2025-01-09 18:55:19 +00:00
vim vim: Add Subword Textobject (#22387) 2025-01-14 03:34:49 +00:00
vim_mode_setting
welcome ui: Update Checkbox design (#22794) 2025-01-07 21:11:39 +00:00
workspace terminal: Fix unresponsive buttons on load until center pane is clicked + Auto-focus docked terminal on load if no other item is focused (#23039) 2025-01-13 15:11:45 +00:00
worktree git: Git Panel UI, continued (#22960) 2025-01-13 16:47:09 +00:00
zed Add test that JSON schema generation works + actions build from no input (#23049) 2025-01-13 20:42:08 +00:00
zed_actions Improve keymap json schema (#23044) 2025-01-13 02:34:35 +00:00
zeta Improve prompt caching for edit prediction (#23061) 2025-01-13 10:58:49 +00:00