Git tweaks (#28791)
Release Notes: - git: Add a `git_panel.sort_by_path` setting to mix untracked/tracked files in the diff list. - git: Remove the "•" placeholder for "Tracked". The commit button says "Commit Tracked" still by default, and this was misinterpreted to mean "partially staged". Hovering over the button will show you which files are tracked (in addition to the yellow square-with-a-dot-in-it). - Increase the default value of `expand_excerpt_lines` from 3 to 5. This makes it faster to see more context in the git diff view. --------- Co-authored-by: Birk Skyum <birk.skyum@pm.me> Co-authored-by: Peter Tripp <peter@zed.dev>
This commit is contained in:
parent
3fd37799b4
commit
756fcd0733
4 changed files with 229 additions and 204 deletions
|
@ -1,6 +1,7 @@
|
|||
use crate::{
|
||||
conflict_view::ConflictAddon,
|
||||
git_panel::{GitPanel, GitPanelAddon, GitStatusEntry},
|
||||
git_panel_settings::GitPanelSettings,
|
||||
remote_button::{render_publish_button, render_push_button},
|
||||
};
|
||||
use anyhow::Result;
|
||||
|
@ -27,10 +28,9 @@ use project::{
|
|||
Project, ProjectPath,
|
||||
git_store::{GitStore, GitStoreEvent, RepositoryEvent},
|
||||
};
|
||||
use std::{
|
||||
any::{Any, TypeId},
|
||||
ops::Range,
|
||||
};
|
||||
use settings::{Settings, SettingsStore};
|
||||
use std::any::{Any, TypeId};
|
||||
use std::ops::Range;
|
||||
use theme::ActiveTheme;
|
||||
use ui::{KeyBinding, Tooltip, prelude::*, vertical_divider};
|
||||
use util::ResultExt as _;
|
||||
|
@ -165,6 +165,16 @@ impl ProjectDiff {
|
|||
},
|
||||
);
|
||||
|
||||
let mut was_sort_by_path = GitPanelSettings::get_global(cx).sort_by_path;
|
||||
cx.observe_global::<SettingsStore>(move |this, cx| {
|
||||
let is_sort_by_path = GitPanelSettings::get_global(cx).sort_by_path;
|
||||
if is_sort_by_path != was_sort_by_path {
|
||||
*this.update_needed.borrow_mut() = ();
|
||||
}
|
||||
was_sort_by_path = is_sort_by_path
|
||||
})
|
||||
.detach();
|
||||
|
||||
let (mut send, recv) = postage::watch::channel::<()>();
|
||||
let worker = window.spawn(cx, {
|
||||
let this = cx.weak_entity();
|
||||
|
@ -349,7 +359,9 @@ impl ProjectDiff {
|
|||
else {
|
||||
continue;
|
||||
};
|
||||
let namespace = if repo.has_conflict(&entry.repo_path) {
|
||||
let namespace = if GitPanelSettings::get_global(cx).sort_by_path {
|
||||
TRACKED_NAMESPACE
|
||||
} else if repo.has_conflict(&entry.repo_path) {
|
||||
CONFLICT_NAMESPACE
|
||||
} else if entry.status.is_created() {
|
||||
NEW_NAMESPACE
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue