mirror of
https://github.com/zed-industries/zed.git
synced 2024-11-08 07:35:01 +03:00
Remove logic for marking worktree entries as collapsed
This commit is contained in:
parent
f910d8fe3e
commit
aa6f2f1816
@ -225,7 +225,6 @@ impl Server {
|
||||
.add_request_handler(forward_project_request::<proto::CopyProjectEntry>)
|
||||
.add_request_handler(forward_project_request::<proto::DeleteProjectEntry>)
|
||||
.add_request_handler(forward_project_request::<proto::ExpandProjectEntry>)
|
||||
.add_request_handler(forward_project_request::<proto::CollapseProjectEntry>)
|
||||
.add_request_handler(forward_project_request::<proto::OnTypeFormatting>)
|
||||
.add_message_handler(create_buffer_for_peer)
|
||||
.add_request_handler(update_buffer)
|
||||
|
@ -51,7 +51,6 @@ use lsp_command::*;
|
||||
use postage::watch;
|
||||
use project_settings::ProjectSettings;
|
||||
use rand::prelude::*;
|
||||
use rpc::proto::PeerId;
|
||||
use search::SearchQuery;
|
||||
use serde::Serialize;
|
||||
use settings::SettingsStore;
|
||||
@ -480,7 +479,6 @@ impl Project {
|
||||
client.add_model_request_handler(Self::handle_copy_project_entry);
|
||||
client.add_model_request_handler(Self::handle_delete_project_entry);
|
||||
client.add_model_request_handler(Self::handle_expand_project_entry);
|
||||
client.add_model_request_handler(Self::handle_collapse_project_entry);
|
||||
client.add_model_request_handler(Self::handle_apply_additional_edits_for_completion);
|
||||
client.add_model_request_handler(Self::handle_apply_code_action);
|
||||
client.add_model_request_handler(Self::handle_on_type_formatting);
|
||||
@ -5418,7 +5416,7 @@ impl Project {
|
||||
worktree
|
||||
.as_local_mut()
|
||||
.unwrap()
|
||||
.mark_entry_expanded(entry_id, true, 0, cx);
|
||||
.mark_entry_expanded(entry_id, cx);
|
||||
});
|
||||
} else if let Some(project_id) = self.remote_id() {
|
||||
cx.background()
|
||||
@ -5431,31 +5429,6 @@ impl Project {
|
||||
Some(())
|
||||
}
|
||||
|
||||
pub fn mark_entry_collapsed(
|
||||
&mut self,
|
||||
worktree_id: WorktreeId,
|
||||
entry_id: ProjectEntryId,
|
||||
cx: &mut ModelContext<Self>,
|
||||
) -> Option<()> {
|
||||
if self.is_local() {
|
||||
let worktree = self.worktree_for_id(worktree_id, cx)?;
|
||||
worktree.update(cx, |worktree, cx| {
|
||||
worktree
|
||||
.as_local_mut()
|
||||
.unwrap()
|
||||
.mark_entry_expanded(entry_id, false, 0, cx);
|
||||
});
|
||||
} else if let Some(project_id) = self.remote_id() {
|
||||
cx.background()
|
||||
.spawn(self.client.request(proto::CollapseProjectEntry {
|
||||
project_id,
|
||||
entry_id: entry_id.to_proto(),
|
||||
}))
|
||||
.log_err();
|
||||
}
|
||||
Some(())
|
||||
}
|
||||
|
||||
pub fn absolute_path(&self, project_path: &ProjectPath, cx: &AppContext) -> Option<PathBuf> {
|
||||
let workspace_root = self
|
||||
.worktree_for_id(project_path.worktree_id, cx)?
|
||||
@ -5762,58 +5735,17 @@ impl Project {
|
||||
this: ModelHandle<Self>,
|
||||
envelope: TypedEnvelope<proto::ExpandProjectEntry>,
|
||||
_: Arc<Client>,
|
||||
cx: AsyncAppContext,
|
||||
) -> Result<proto::Ack> {
|
||||
Self::handle_expand_or_collapse_project_entry(
|
||||
this,
|
||||
envelope.payload.entry_id,
|
||||
envelope.original_sender_id,
|
||||
true,
|
||||
cx,
|
||||
)
|
||||
.await
|
||||
}
|
||||
|
||||
async fn handle_collapse_project_entry(
|
||||
this: ModelHandle<Self>,
|
||||
envelope: TypedEnvelope<proto::CollapseProjectEntry>,
|
||||
_: Arc<Client>,
|
||||
cx: AsyncAppContext,
|
||||
) -> Result<proto::Ack> {
|
||||
Self::handle_expand_or_collapse_project_entry(
|
||||
this,
|
||||
envelope.payload.entry_id,
|
||||
envelope.original_sender_id,
|
||||
false,
|
||||
cx,
|
||||
)
|
||||
.await
|
||||
}
|
||||
|
||||
async fn handle_expand_or_collapse_project_entry(
|
||||
this: ModelHandle<Self>,
|
||||
entry_id: u64,
|
||||
original_sender_id: Option<PeerId>,
|
||||
is_expanded: bool,
|
||||
mut cx: AsyncAppContext,
|
||||
) -> Result<proto::Ack> {
|
||||
let entry_id = ProjectEntryId::from_proto(entry_id);
|
||||
let (worktree, replica_id) = this
|
||||
.read_with(&cx, |this, cx| {
|
||||
let replica_id = original_sender_id
|
||||
.and_then(|peer_id| this.collaborators.get(&peer_id))?
|
||||
.replica_id;
|
||||
let worktree = this.worktree_for_entry(entry_id, cx)?;
|
||||
Some((worktree, replica_id))
|
||||
})
|
||||
let entry_id = ProjectEntryId::from_proto(envelope.payload.entry_id);
|
||||
let worktree = this
|
||||
.read_with(&cx, |this, cx| this.worktree_for_entry(entry_id, cx))
|
||||
.ok_or_else(|| anyhow!("invalid request"))?;
|
||||
worktree.update(&mut cx, |worktree, cx| {
|
||||
worktree.as_local_mut().unwrap().mark_entry_expanded(
|
||||
entry_id,
|
||||
is_expanded,
|
||||
replica_id,
|
||||
cx,
|
||||
)
|
||||
worktree
|
||||
.as_local_mut()
|
||||
.unwrap()
|
||||
.mark_entry_expanded(entry_id, cx)
|
||||
});
|
||||
Ok(proto::Ack {})
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ use ::ignore::gitignore::{Gitignore, GitignoreBuilder};
|
||||
use anyhow::{anyhow, Context, Result};
|
||||
use client::{proto, Client};
|
||||
use clock::ReplicaId;
|
||||
use collections::{BTreeSet, HashMap, VecDeque};
|
||||
use collections::{HashMap, HashSet, VecDeque};
|
||||
use fs::{
|
||||
repository::{GitFileStatus, GitRepository, RepoPath},
|
||||
Fs, LineEnding,
|
||||
@ -89,10 +89,8 @@ enum ScanRequest {
|
||||
paths: Vec<PathBuf>,
|
||||
done: barrier::Sender,
|
||||
},
|
||||
SetDirExpanded {
|
||||
ExpandDir {
|
||||
entry_id: ProjectEntryId,
|
||||
replica_id: ReplicaId,
|
||||
is_expanded: bool,
|
||||
},
|
||||
}
|
||||
|
||||
@ -226,7 +224,7 @@ pub struct LocalSnapshot {
|
||||
|
||||
struct BackgroundScannerState {
|
||||
snapshot: LocalSnapshot,
|
||||
expanded_dirs: BTreeSet<(ProjectEntryId, ReplicaId)>,
|
||||
expanded_dirs: HashSet<ProjectEntryId>,
|
||||
/// The ids of all of the entries that were removed from the snapshot
|
||||
/// as part of the current update. These entry ids may be re-used
|
||||
/// if the same inode is discovered at a new path, or if the given
|
||||
@ -1154,16 +1152,10 @@ impl LocalWorktree {
|
||||
pub fn mark_entry_expanded(
|
||||
&mut self,
|
||||
entry_id: ProjectEntryId,
|
||||
is_expanded: bool,
|
||||
replica_id: ReplicaId,
|
||||
_cx: &mut ModelContext<Worktree>,
|
||||
) {
|
||||
self.scan_requests_tx
|
||||
.try_send(ScanRequest::SetDirExpanded {
|
||||
entry_id,
|
||||
replica_id,
|
||||
is_expanded,
|
||||
})
|
||||
.try_send(ScanRequest::ExpandDir { entry_id })
|
||||
.ok();
|
||||
}
|
||||
|
||||
@ -2210,12 +2202,7 @@ impl LocalSnapshot {
|
||||
|
||||
impl BackgroundScannerState {
|
||||
fn is_entry_expanded(&self, entry: &Entry) -> bool {
|
||||
let expanded = self
|
||||
.expanded_dirs
|
||||
.range((entry.id, 0)..=(entry.id, ReplicaId::MAX))
|
||||
.next()
|
||||
.is_some();
|
||||
expanded
|
||||
self.expanded_dirs.contains(&entry.id)
|
||||
}
|
||||
|
||||
fn reuse_entry_id(&mut self, entry: &mut Entry) {
|
||||
@ -2976,18 +2963,10 @@ impl BackgroundScanner {
|
||||
self.reload_entries_for_paths(paths, None).await;
|
||||
self.send_status_update(false, Some(done))
|
||||
}
|
||||
ScanRequest::SetDirExpanded {
|
||||
entry_id,
|
||||
replica_id,
|
||||
is_expanded,
|
||||
} => {
|
||||
ScanRequest::ExpandDir { entry_id } => {
|
||||
let path = {
|
||||
let mut state = self.state.lock();
|
||||
if is_expanded {
|
||||
state.expanded_dirs.insert((entry_id, replica_id));
|
||||
} else {
|
||||
state.expanded_dirs.remove(&(entry_id, replica_id));
|
||||
}
|
||||
state.expanded_dirs.insert(entry_id);
|
||||
state
|
||||
.snapshot
|
||||
.entry_for_id(entry_id)
|
||||
|
@ -451,9 +451,6 @@ impl ProjectPanel {
|
||||
Ok(ix) => {
|
||||
expanded_dir_ids.remove(ix);
|
||||
self.update_visible_entries(Some((worktree_id, entry_id)), cx);
|
||||
self.project.update(cx, |project, cx| {
|
||||
project.mark_entry_collapsed(worktree_id, entry_id, cx);
|
||||
});
|
||||
cx.notify();
|
||||
break;
|
||||
}
|
||||
@ -477,7 +474,6 @@ impl ProjectPanel {
|
||||
self.project.update(cx, |project, cx| {
|
||||
match expanded_dir_ids.binary_search(&entry_id) {
|
||||
Ok(ix) => {
|
||||
project.mark_entry_collapsed(worktree_id, entry_id, cx);
|
||||
expanded_dir_ids.remove(ix);
|
||||
}
|
||||
Err(ix) => {
|
||||
|
@ -63,7 +63,6 @@ message Envelope {
|
||||
CopyProjectEntry copy_project_entry = 47;
|
||||
DeleteProjectEntry delete_project_entry = 48;
|
||||
ExpandProjectEntry expand_project_entry = 114;
|
||||
CollapseProjectEntry collapse_project_entry = 115;
|
||||
ProjectEntryResponse project_entry_response = 49;
|
||||
|
||||
UpdateDiagnosticSummary update_diagnostic_summary = 50;
|
||||
@ -379,11 +378,6 @@ message ExpandProjectEntry {
|
||||
uint64 entry_id = 2;
|
||||
}
|
||||
|
||||
message CollapseProjectEntry {
|
||||
uint64 project_id = 1;
|
||||
uint64 entry_id = 2;
|
||||
}
|
||||
|
||||
message ProjectEntryResponse {
|
||||
Entry entry = 1;
|
||||
uint64 worktree_scan_id = 2;
|
||||
|
@ -151,7 +151,6 @@ messages!(
|
||||
(DeleteProjectEntry, Foreground),
|
||||
(Error, Foreground),
|
||||
(ExpandProjectEntry, Foreground),
|
||||
(CollapseProjectEntry, Foreground),
|
||||
(Follow, Foreground),
|
||||
(FollowResponse, Foreground),
|
||||
(FormatBuffers, Foreground),
|
||||
@ -258,7 +257,6 @@ request_messages!(
|
||||
(DeclineCall, Ack),
|
||||
(DeleteProjectEntry, ProjectEntryResponse),
|
||||
(ExpandProjectEntry, Ack),
|
||||
(CollapseProjectEntry, Ack),
|
||||
(Follow, FollowResponse),
|
||||
(FormatBuffers, FormatBuffersResponse),
|
||||
(GetChannelMessages, GetChannelMessagesResponse),
|
||||
@ -316,7 +314,6 @@ entity_messages!(
|
||||
CreateProjectEntry,
|
||||
DeleteProjectEntry,
|
||||
ExpandProjectEntry,
|
||||
CollapseProjectEntry,
|
||||
Follow,
|
||||
FormatBuffers,
|
||||
GetCodeActions,
|
||||
|
Loading…
Reference in New Issue
Block a user