Make git panel entries clickable (#22329)
Makes a first pass over git panel UI, making it more interactive.  * every item can be selected, the selection is shown in the panel * every item can be clicked, which changes the selection and creates/focuses the editor with a project changes multi buffer * the editor is scrolled so that the clicked item is in the center * it's possible to nagivate up and down the panel, selecting next/previous items in it, triggering the editor scroll Known issues: * entries are updated oddly sometimes (should become better after DiffMap improvements land?) * only unstaged diffs are shown currently (entry status storage should help with this) * no deleted files are displayed (the underlying work is done by others now) * added files have no diff hunks shown (DiffMap will have it?) * performance story has not improved (again, DiffMap and status storage should help with this) Release Notes: - N/A
This commit is contained in:
parent
bc32b4d016
commit
831930aad0
4 changed files with 534 additions and 58 deletions
|
@ -128,6 +128,7 @@ use multi_buffer::{
|
|||
ExpandExcerptDirection, MultiBufferDiffHunk, MultiBufferPoint, MultiBufferRow, ToOffsetUtf16,
|
||||
};
|
||||
use project::{
|
||||
buffer_store::BufferChangeSet,
|
||||
lsp_store::{FormatTarget, FormatTrigger, OpenLspBufferHandle},
|
||||
project_settings::{GitGutterSetting, ProjectSettings},
|
||||
CodeAction, Completion, CompletionIntent, DocumentHighlight, InlayHint, Location, LocationLink,
|
||||
|
@ -12950,6 +12951,14 @@ impl Editor {
|
|||
.and_then(|item| item.to_any().downcast_ref::<T>())
|
||||
}
|
||||
|
||||
pub fn add_change_set(
|
||||
&mut self,
|
||||
change_set: Model<BufferChangeSet>,
|
||||
cx: &mut ViewContext<Self>,
|
||||
) {
|
||||
self.diff_map.add_change_set(change_set, cx);
|
||||
}
|
||||
|
||||
fn character_size(&self, cx: &mut ViewContext<Self>) -> gpui::Point<Pixels> {
|
||||
let text_layout_details = self.text_layout_details(cx);
|
||||
let style = &text_layout_details.editor_style;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue