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:
parent
2c6cb4ec16
commit
d7a25c1696
13 changed files with 1647 additions and 95 deletions
|
@ -6,7 +6,7 @@ use clock::ReplicaId;
|
|||
use collections::{BTreeMap, Bound, HashMap, HashSet};
|
||||
use futures::{channel::mpsc, SinkExt};
|
||||
use git::diff::DiffHunk;
|
||||
use gpui::{AppContext, EventEmitter, Model, ModelContext};
|
||||
use gpui::{AppContext, EntityId, EventEmitter, Model, ModelContext};
|
||||
use itertools::Itertools;
|
||||
use language::{
|
||||
char_kind,
|
||||
|
@ -49,6 +49,12 @@ const NEWLINES: &[u8] = &[b'\n'; u8::MAX as usize];
|
|||
#[derive(Debug, Default, Clone, Copy, Hash, PartialEq, Eq, PartialOrd, Ord)]
|
||||
pub struct ExcerptId(usize);
|
||||
|
||||
impl From<ExcerptId> for EntityId {
|
||||
fn from(id: ExcerptId) -> Self {
|
||||
EntityId::from(id.0 as u64)
|
||||
}
|
||||
}
|
||||
|
||||
/// One or more [`Buffers`](Buffer) being edited in a single view.
|
||||
///
|
||||
/// See <https://zed.dev/features#multi-buffers>
|
||||
|
@ -302,6 +308,7 @@ struct ExcerptBytes<'a> {
|
|||
reversed: bool,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||
pub enum ExpandExcerptDirection {
|
||||
Up,
|
||||
Down,
|
||||
|
@ -4679,7 +4686,7 @@ impl ToPointUtf16 for PointUtf16 {
|
|||
}
|
||||
}
|
||||
|
||||
fn build_excerpt_ranges<T>(
|
||||
pub fn build_excerpt_ranges<T>(
|
||||
buffer: &BufferSnapshot,
|
||||
ranges: &[Range<T>],
|
||||
context_line_count: u32,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue