Files
oak-gpui/crates
Kirill Bulatov 128d3696ad More heuristics for diagnostics updates (#3236)
Follow-up of https://github.com/zed-industries/zed/pull/3225
That PR enabled every `project::Event::DiskBasedDiagnosticsFinished` to
update the diagnostics, which turned out to be bad, Zed does query for
more diagnostics after every excerpt update, and that seems to be due to
`Event::Edited` emitted by the multibuffers created in the diagnostics
panel.

* now, instead of eagerly updating the diagnostics every time, only do
that if the panel has 0 or 1 caret placed and no changes were made in
the panel yet.
Otherwise, use previous approach and register the updated paths to defer
their update later.

* on every `update_excerpts` in the diagnostics panel, query the entire
diagnostics summary (and store it for the future comparisons), compare
old and new summaries and re-query diagnostics for every path that's not
in both summaries.
Also, query every path that was registered during the
`DiskBasedDiagnosticsFinished` updates that were not eagerly updated
before.

This way we're supposed to get all new diagnostics (for new paths added)
and re-check all old paths that might have stale diagnostics now.

* do diagnostics rechecks concurrently for every path now, speeding the
overall process

Release Notes:

- Fixed diagnostics triggering too eagerly during multicaret edits and
certain stale diagnostics not being removed in time
2023-11-05 16:17:38 +02:00
..
2023-11-02 10:55:02 -07:00
2023-11-02 10:55:02 -07:00
2023-10-27 10:55:15 +02:00
2023-11-02 10:55:02 -07:00
2023-11-03 10:41:41 -07:00
2023-11-01 14:50:29 -04:00
2023-11-03 10:09:00 +01:00
2023-11-02 10:55:02 -07:00
2023-11-03 21:51:12 +02:00
2023-11-03 14:42:26 +01:00
2023-10-02 19:35:31 -04:00
2023-10-12 16:17:41 +03:00
2023-11-02 19:18:01 -06:00
2023-11-02 10:55:02 -07:00
2023-11-02 19:18:01 -06:00
WIP
2023-11-03 12:04:24 -07:00
2023-11-03 12:55:06 +02:00
2023-11-02 10:55:02 -07:00
2023-11-02 10:55:02 -07:00
2023-11-02 19:19:18 -06:00
2023-11-03 11:02:50 +02:00
2023-11-03 11:02:50 +02:00
2023-11-03 11:02:50 +02:00
2023-11-03 11:02:50 +02:00
2023-11-02 19:30:33 -06:00
2023-11-03 10:41:41 -07:00
2023-11-02 10:55:02 -07:00
2023-11-02 10:55:02 -07:00
2023-11-03 14:53:08 +01:00
2023-11-05 01:06:41 -05:00
2023-11-05 01:06:41 -05:00
wip
2023-11-01 13:53:45 -06:00
2023-10-23 11:06:58 +02:00
2023-10-25 15:53:34 +02:00
2023-11-01 12:34:26 -04:00
2023-10-28 11:37:25 -04:00