mirror of
https://github.com/zed-industries/zed.git
synced 2025-01-11 21:13:02 +00:00
ca1d0a6e59
With the new version of rust-analyzer, we were seeing stray `WorkDoneProgress::End` messages that create an imbalance in the `pending_diagnostic_updates` that never resolves. This was causing the diagnostic status bar item to never update because we wouldn't emit `DiskBasedDiagnosticsStarted` nor `DiskBasedDiagnosticsFinished`. This commit fixes the above situation by only acknowledging progress report for tokens that have explicitly been created via the `WorkDoneProgressCreate` request, as stated by the protocol. In addition to that, we are replacing the `pending_diagnostic_updates: isize` with a `has_pending_diagnostic_updates: bool`. We added it at some point to prevent a similar issue where we would observe begin/end reports in a seemingly random order, which would cause us to permanently display a `checking...` message in the status bar. I believe this commit fixes that as well because the `isize` was just a less general solution for the same underlying issue. As the protocol states: "the token provided in the create request should only be used once (e.g. only one begin, many report and one end notification should be sent to it)." |
||
---|---|---|
.. | ||
assets | ||
auto_update | ||
breadcrumbs | ||
chat_panel | ||
cli | ||
client | ||
clock | ||
collab | ||
collections | ||
command_palette | ||
contacts_panel | ||
context_menu | ||
diagnostics | ||
editor | ||
file_finder | ||
fsevent | ||
fuzzy | ||
go_to_line | ||
gpui | ||
gpui_macros | ||
journal | ||
language | ||
lsp | ||
lsp_status | ||
menu | ||
outline | ||
picker | ||
project | ||
project_panel | ||
project_symbols | ||
rpc | ||
search | ||
settings | ||
snippet | ||
sum_tree | ||
text | ||
theme | ||
theme_selector | ||
util | ||
vim | ||
workspace | ||
zed |