ZIm/crates
Kirill Bulatov 5ae93ce68d
Add initial inline diagnostics support (#25297)
https://github.com/user-attachments/assets/eb881707-e575-47ef-9ae0-67d8085d8065

Closes https://github.com/zed-industries/zed/pull/22668
Closes https://github.com/zed-industries/zed/issues/4901

Takes https://github.com/zed-industries/zed/pull/22668 and fixes all
review items on top.
Inline diagnostics are disabled by default, but can be enabled via
settings permanently, or temporarily toggled with the `editor:
ToggleInlineDiagnostics` action and the corresponding editor menu item
<img width="242" alt="image"
src="https://github.com/user-attachments/assets/8e177511-4626-4434-902b-d6aa4d3fafd0"
/>

Inline diagnostics does not show currently active diagnostics group, as
it gets inline into the editor too, inside the text.
Inline git blame takes precedence and is shown instead of the
diagnostics, edit predictions dim the diagnostics if located on the same
line.

One notable drawback of the implementation is the inability to wrap,
making inline diagnostics cut off the right side:


![image](https://github.com/user-attachments/assets/6e87268a-b51a-4a2b-8b8d-01d932c62fea)

(same as inline git blame and other elements to the right of the text)
Given that it's disabled by default and go to next/prev diagnostics will
show them better, seems fine to leave in the first iteration.


Release Notes:

- Added initial inline diagnostics support

---------

Co-authored-by: Paul J. Davis <paul.davis@tiledb.com>
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
2025-02-20 23:39:47 +00:00
..
activity_indicator Remove more references to 'model' in GPUI APIs (#23693) 2025-01-27 04:00:27 +00:00
anthropic Solve 50+ cargo doc warnings (#24071) 2025-02-01 06:19:29 +00:00
assets Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
assistant Use line-based and word-based diff when reloading and formatting buffers (#25129) 2025-02-20 00:56:01 +00:00
assistant2 assistant2: Combine history views into one (#25293) 2025-02-20 22:53:58 +00:00
assistant_context_editor assistant2: Combine history views into one (#25293) 2025-02-20 22:53:58 +00:00
assistant_settings Solve 50+ cargo doc warnings (#24071) 2025-02-01 06:19:29 +00:00
assistant_slash_command Revert "file_finder: Remove common segments of long paths in search results (#25049)" (#25163) 2025-02-19 15:32:29 +00:00
assistant_slash_commands cx.background_executor().spawn(...) -> cx.background_spawn(...) (#25103) 2025-02-18 20:30:33 +00:00
assistant_tool Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
assistant_tools Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
audio Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
auto_update cx.background_executor().spawn(...) -> cx.background_spawn(...) (#25103) 2025-02-18 20:30:33 +00:00
auto_update_ui Use the MessageNotification component for the release notes toast (#25013) 2025-02-17 11:32:04 -03:00
breadcrumbs Remove more references to 'model' in GPUI APIs (#23693) 2025-01-27 04:00:27 +00:00
buffer_diff Color staged and unstaged hunks differently by opacity (#25108) 2025-02-19 18:33:21 +00:00
call cx.background_executor().spawn(...) -> cx.background_spawn(...) (#25103) 2025-02-18 20:30:33 +00:00
channel cx.background_executor().spawn(...) -> cx.background_spawn(...) (#25103) 2025-02-18 20:30:33 +00:00
cli cli: Fix comment (#25190) 2025-02-19 20:33:18 +00:00
client Add CredentialsProvider to silence keychain prompts in development (#25266) 2025-02-20 17:58:50 +00:00
clock chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
collab Color staged and unstaged hunks differently by opacity (#25108) 2025-02-19 18:33:21 +00:00
collab_ui Revert "file_finder: Remove common segments of long paths in search results (#25049)" (#25163) 2025-02-19 15:32:29 +00:00
collections chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
command_palette cx.background_executor().spawn(...) -> cx.background_spawn(...) (#25103) 2025-02-18 20:30:33 +00:00
command_palette_hooks vim: :set support (#24209) 2025-02-11 04:55:40 +00:00
component project: Fine-grained language server management (#24038) 2025-02-14 15:41:49 +01:00
component_preview ui: Update Label component (#24653) 2025-02-11 20:16:59 +00:00
context_server cx.background_executor().spawn(...) -> cx.background_spawn(...) (#25103) 2025-02-18 20:30:33 +00:00
context_server_settings Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
copilot Update Assistant context limits (#25087) 2025-02-19 11:06:20 -05:00
credentials_provider Use the development credentials provider in development by default (#25273) 2025-02-20 19:07:16 +00:00
db cx.background_executor().spawn(...) -> cx.background_spawn(...) (#25103) 2025-02-18 20:30:33 +00:00
deepseek Add DeepSeek support (#23551) 2025-01-27 13:40:59 -05:00
diagnostics Add initial inline diagnostics support (#25297) 2025-02-20 23:39:47 +00:00
docs_preprocessor Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
editor Add initial inline diagnostics support (#25297) 2025-02-20 23:39:47 +00:00
evals Revert "file_finder: Remove common segments of long paths in search results (#25049)" (#25163) 2025-02-19 15:32:29 +00:00
extension theme: Don't log errors for missing themes until extensions have loaded (#25098) 2025-02-18 17:47:25 +00:00
extension_api Revert "file_finder: Remove common segments of long paths in search results (#25049)" (#25163) 2025-02-19 15:32:29 +00:00
extension_cli extension_cli: Include the list of what an extension provides in the generated manifest (#24295) 2025-02-05 18:17:19 +00:00
extension_host Revert "file_finder: Remove common segments of long paths in search results (#25049)" (#25163) 2025-02-19 15:32:29 +00:00
extensions_ui extensions_ui: Add general structure for filtering extensions by what they provide (#24325) 2025-02-06 00:09:37 +00:00
feature_flags zeta: Remove predict-edits-launch feature flag (#24829) 2025-02-13 21:48:09 +00:00
feedback cx.background_executor().spawn(...) -> cx.background_spawn(...) (#25103) 2025-02-18 20:30:33 +00:00
file_finder Revert "file_finder: Remove common segments of long paths in search results (#25049)" (#25163) 2025-02-19 15:32:29 +00:00
file_icons Allow icon themes to provide their own file associations (#24926) 2025-02-15 00:35:13 +00:00
fs git: Compute and synchronize diffs from HEAD (#23626) 2025-02-04 15:29:10 -05:00
fsevent Deflake fs::test_event_stream_simple (#24013) 2025-01-30 23:53:36 -07:00
fuzzy Revert "file_finder: Remove common segments of long paths in search results (#25049)" (#25163) 2025-02-19 15:32:29 +00:00
git Git actions v2 (#25197) 2025-02-19 21:22:31 -07:00
git_hosting_providers Add an undo button to the git panel (#24593) 2025-02-12 15:57:08 -07:00
git_ui Git actions v2 (#25197) 2025-02-19 21:22:31 -07:00
go_to_line project: Fine-grained language server management (#24038) 2025-02-14 15:41:49 +01:00
google_ai google_ai: Add support for Gemini 2.0 models (#24448) 2025-02-07 11:18:18 -05:00
gpui Hide the mouse when the user is typing in the editor (#25040) 2025-02-20 15:54:01 -03:00
gpui_macros Hide the mouse when the user is typing in the editor (#25040) 2025-02-20 15:54:01 -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 Replace rustls-native-certs with rustls-platform-verifier (#24656) 2025-02-12 07:32:17 -08:00
image_viewer cx.background_executor().spawn(...) -> cx.background_spawn(...) (#25103) 2025-02-18 20:30:33 +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 inline_completion_button: Put "Eager Preview Mode" menu entry behind a feature flag (#24734) 2025-02-12 16:23:23 +00:00
install_cli Fix missed renames in #22632 (#23688) 2025-01-26 23:37:34 +00:00
journal cx.background_executor().spawn(...) -> cx.background_spawn(...) (#25103) 2025-02-18 20:30:33 +00:00
language html: Open extra newline between opening and closing HTML tags (#25130) 2025-02-20 01:09:19 -05:00
language_extension Fix missed renames in #22632 (#23688) 2025-01-26 23:37:34 +00:00
language_model language_model: Return AuthenticateErrors from LanguageModelProvider::authenticate (#25126) 2025-02-19 00:01:48 +00:00
language_model_selector language_model_selector: Authenticate all providers up front (#25123) 2025-02-19 01:40:07 +00:00
language_models Add CredentialsProvider to silence keychain prompts in development (#25266) 2025-02-20 17:58:50 +00:00
language_selector Refactor to use SharedString in more places (#23813) 2025-01-28 19:04:21 -05:00
language_tools Persist selections for editors (#25083) 2025-02-18 14:27:00 +00:00
languages Fix cargo test task for tests module in lib.rs, main.rs, mod.rs (#25092) 2025-02-20 20:28:34 +00:00
livekit_api Change license of crates/livekit_api from AGPL to GPL (#25206) 2025-02-19 23:32:51 +00:00
livekit_client cx.background_executor().spawn(...) -> cx.background_spawn(...) (#25103) 2025-02-18 20:30:33 +00:00
livekit_client_macos Rename livekit_server to livekit_api (#24984) 2025-02-16 20:24:12 +00:00
lmstudio lmstudio: Support missing quantization in model metadata (#24054) 2025-01-31 22:28:11 +00:00
lsp lsp: Fill root_uri property on Initialize again (#25264) 2025-02-20 21:55:06 +00:00
markdown Remove language::markdown (#25136) 2025-02-19 08:55:36 -07:00
markdown_preview cx.background_executor().spawn(...) -> cx.background_spawn(...) (#25103) 2025-02-18 20:30:33 +00:00
media chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
menu chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
migrator migrator: Fix keymap task_name regression (#24898) 2025-02-15 01:33:30 +05:30
mistral assistant: Add Mistral support (#24879) 2025-02-14 13:07:41 -05:00
multi_buffer assistant2: Highlight crease on selection (#24358) 2025-02-20 13:25:08 -03:00
node_runtime Pass extra CA certs to node process if env var exists (#23662) 2025-01-30 08:56:02 -08:00
notifications Remove more references to 'model' in GPUI APIs (#23693) 2025-01-27 04:00:27 +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 project: Fine-grained language server management (#24038) 2025-02-14 15:41:49 +01:00
outline_panel outline panel: Improve the search query header design (#25283) 2025-02-20 18:09:33 -03:00
panel git_ui: Update git panel commit editor, start on quick commit 2025-02-10 15:52:09 +00:00
paths Settings/keymap backup path next to files + update notification messages (#24517) 2025-02-09 16:51:37 -07:00
picker ui: Remove track_focus method from Picker render (#25043) 2025-02-17 19:18:12 -03:00
prettier project: Fine-grained language server management (#24038) 2025-02-14 15:41:49 +01:00
project Add initial inline diagnostics support (#25297) 2025-02-20 23:39:47 +00:00
project_panel project_panel: Make scroll to bottom to use the last visible entry (#25160) 2025-02-19 16:00:23 +00:00
project_symbols windows: Fix tests on Windows (#22616) 2025-02-05 14:30:09 +00:00
prompt_library cx.background_executor().spawn(...) -> cx.background_spawn(...) (#25103) 2025-02-18 20:30:33 +00:00
proto Git context menu (#24844) 2025-02-14 14:04:32 -07:00
recent_projects Remove language::markdown (#25136) 2025-02-19 08:55:36 -07:00
refineable windows: Fix tests on Windows (#22616) 2025-02-05 14:30:09 +00:00
release_channel Solve 50+ cargo doc warnings (#24071) 2025-02-01 06:19:29 +00:00
remote Revert "file_finder: Remove common segments of long paths in search results (#25049)" (#25163) 2025-02-19 15:32:29 +00:00
remote_server cx.background_executor().spawn(...) -> cx.background_spawn(...) (#25103) 2025-02-18 20:30:33 +00:00
repl Upgrade Alacritty to respect ~/.hushlogin (#25224) 2025-02-20 04:55:11 +00:00
reqwest_client Redact Google Gemini API keys from error messaging and log (#24884) 2025-02-17 11:42:22 -05:00
rich_text Revert "file_finder: Remove common segments of long paths in search results (#25049)" (#25163) 2025-02-19 15:32:29 +00:00
rope Fix editor::SplitSelectionIntoLines adding an extra line at the end (#25053) 2025-02-18 03:23:48 +00:00
rpc extensions_ui: Add general structure for filtering extensions by what they provide (#24325) 2025-02-06 00:09:37 +00:00
schema_generator Add schema_generator for generating JSON schemas (#23991) 2025-01-31 01:22:10 +00:00
search Add an action to toggle the outline from the buffer search bar (#25225) 2025-02-20 05:23:10 +00:00
semantic_index Revert "file_finder: Remove common segments of long paths in search results (#25049)" (#25163) 2025-02-19 15:32:29 +00:00
semantic_version chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
session cx.background_executor().spawn(...) -> cx.background_spawn(...) (#25103) 2025-02-18 20:30:33 +00:00
settings migrator: In-memory migration and improved UX (#24621) 2025-02-12 06:47:08 +05:30
settings_ui Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
snippet Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
snippet_provider snippets: Fix snippets not updating while containing comments (#23755) 2025-01-28 10:37:48 +01:00
snippets_ui Remove more references to 'model' in GPUI APIs (#23693) 2025-01-27 04:00:27 +00:00
sqlez Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
sqlez_macros windows: Fix tests on Windows (#22616) 2025-02-05 14:30:09 +00:00
story Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
storybook ui: Update Label component (#24653) 2025-02-11 20:16:59 +00:00
streaming_diff chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
sum_tree Implement staging and unstaging hunks (#24606) 2025-02-12 19:46:42 +00:00
supermaven Include prediction ID on edit prediction accepted/discarded events (#24480) 2025-02-07 22:06:37 +00:00
supermaven_api Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
tab_switcher project: Fine-grained language server management (#24038) 2025-02-14 15:41:49 +01:00
task cx.background_executor().spawn(...) -> cx.background_spawn(...) (#25103) 2025-02-18 20:30:33 +00:00
tasks_ui Display case-sensitive keybindings for vim commands (#24322) 2025-02-14 22:03:59 -07:00
telemetry chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
telemetry_events Add build SHA to panic reports and zed --version (on nightly/dev) (#24258) 2025-02-06 02:09:24 -07:00
terminal Revert "file_finder: Remove common segments of long paths in search results (#25049)" (#25163) 2025-02-19 15:32:29 +00:00
terminal_view Revert "file_finder: Remove common segments of long paths in search results (#25049)" (#25163) 2025-02-19 15:32:29 +00:00
text Fix unnecessarily large edits emitted from multi buffer on diff recalculation (#23753) 2025-01-27 18:11:15 -08:00
theme Revert gutter stripes as indicator of hunk staged status (#25089) 2025-02-18 13:20:39 -05: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 icon_theme_selector: Add footer and related docs (#25042) 2025-02-20 00:02:24 +00:00
time_format Add an undo button to the git panel (#24593) 2025-02-12 15:57:08 -07:00
title_bar Revert "file_finder: Remove common segments of long paths in search results (#25049)" (#25163) 2025-02-19 15:32:29 +00:00
toolchain_selector Revert "file_finder: Remove common segments of long paths in search results (#25049)" (#25163) 2025-02-19 15:32:29 +00:00
ui Centralize logic around which keybind to display (#25215) 2025-02-20 09:08:12 -05:00
ui_input Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
ui_macros component: Add component and component_preview crates to power UI components (#24456) 2025-02-09 13:25:03 -05:00
util Fix linux zeta modifiers display (#24764) 2025-02-12 14:46:42 -08:00
util_macros windows: Fix tests on Windows (#22616) 2025-02-05 14:30:09 +00:00
vim vim: Fix cursor shape hollow only in block (#25235) 2025-02-20 10:24:34 -07:00
vim_mode_setting Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
welcome Refine the multibuffer hint design (#25167) 2025-02-19 13:55:11 -03:00
workspace Add an action to toggle the outline from the buffer search bar (#25225) 2025-02-20 05:23:10 +00:00
worktree git: Take only the first line of MERGE_MSG (#25263) 2025-02-20 13:53:37 -05:00
zed Add initial inline diagnostics support (#25297) 2025-02-20 23:39:47 +00:00
zed_actions Adds a way to toggle font size without settings adjustments (#24857) 2025-02-14 13:27:48 +02:00
zeta Use line-based and word-based diff when reloading and formatting buffers (#25129) 2025-02-20 00:56:01 +00:00