Add an experimental, WIP diagnostics grouping panel (#14515)

Provide a current, broken state as an experimental way to browse
diagnostics.
The diagnostics are grouped by lines and reduced into a block that, in
case of multiple diagnostics per line, could be toggled back and forth
to show more diagnostics on the line.
Use `grouped_diagnostics::Deploy` to show the panel.

Issues remaining:
* panic on warnings toggle due to incorrect excerpt manipulation
* badly styled blocks
* no key bindings to navigate between blocks and toggle them
* overall odd usability gains for certain groups of people

Due to all above, the thing is feature-gated and not exposed to regular
people.


Release Notes:

- N/A
This commit is contained in:
Kirill Bulatov 2024-07-15 22:58:18 +03:00 committed by GitHub
parent 2c6cb4ec16
commit d7a25c1696
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 1647 additions and 95 deletions

View file

@ -34,6 +34,11 @@ impl FeatureFlag for TerminalInlineAssist {
const NAME: &'static str = "terminal-inline-assist";
}
pub struct GroupedDiagnostics {}
impl FeatureFlag for GroupedDiagnostics {
const NAME: &'static str = "grouped-diagnostics";
}
pub trait FeatureFlagViewExt<V: 'static> {
fn observe_flag<T: FeatureFlag, F>(&mut self, callback: F) -> Subscription
where