Detailed changes
@@ -84,7 +84,6 @@ impl ActivityIndicator {
) -> Entity<ActivityIndicator> {
let project = workspace.project().clone();
let auto_updater = AutoUpdater::get(cx);
- let workspace_handle = cx.entity();
let this = cx.new(|cx| {
let mut status_events = languages.language_server_binary_statuses();
cx.spawn(async move |this, cx| {
@@ -102,20 +101,6 @@ impl ActivityIndicator {
})
.detach();
- cx.subscribe_in(
- &workspace_handle,
- window,
- |activity_indicator, _, event, window, cx| {
- if let workspace::Event::ClearActivityIndicator = event
- && activity_indicator.statuses.pop().is_some()
- {
- activity_indicator.dismiss_error_message(&DismissErrorMessage, window, cx);
- cx.notify();
- }
- },
- )
- .detach();
-
cx.subscribe(
&project.read(cx).lsp_store(),
|activity_indicator, _, event, cx| {
@@ -13,11 +13,8 @@ use anyhow::{Context as _, Result, anyhow};
use collections::IndexMap;
use dap::adapters::DebugAdapterName;
use dap::debugger_settings::DebugPanelDockPosition;
-use dap::{
- ContinuedEvent, LoadedSourceEvent, ModuleEvent, OutputEvent, StoppedEvent, ThreadEvent,
- client::SessionId, debugger_settings::DebuggerSettings,
-};
use dap::{DapRegistry, StartDebuggingRequestArguments};
+use dap::{client::SessionId, debugger_settings::DebuggerSettings};
use editor::Editor;
use gpui::{
Action, App, AsyncWindowContext, ClipboardItem, Context, DismissEvent, Entity, EntityId,
@@ -46,23 +43,6 @@ use workspace::{
};
use zed_actions::ToggleFocus;
-pub enum DebugPanelEvent {
- Exited(SessionId),
- Terminated(SessionId),
- Stopped {
- client_id: SessionId,
- event: StoppedEvent,
- go_to_stack_frame: bool,
- },
- Thread((SessionId, ThreadEvent)),
- Continued((SessionId, ContinuedEvent)),
- Output((SessionId, OutputEvent)),
- Module((SessionId, ModuleEvent)),
- LoadedSource((SessionId, LoadedSourceEvent)),
- ClientShutdown(SessionId),
- CapabilitiesChanged(SessionId),
-}
-
pub struct DebugPanel {
size: Pixels,
active_session: Option<Entity<DebugSession>>,
@@ -1407,7 +1387,6 @@ async fn register_session_inner(
}
impl EventEmitter<PanelEvent> for DebugPanel {}
-impl EventEmitter<DebugPanelEvent> for DebugPanel {}
impl Focusable for DebugPanel {
fn focus_handle(&self, _: &App) -> FocusHandle {
@@ -2,9 +2,7 @@ pub mod running;
use crate::{StackTraceView, persistence::SerializedLayout, session::running::DebugTerminal};
use dap::client::SessionId;
-use gpui::{
- App, Axis, Entity, EventEmitter, FocusHandle, Focusable, Subscription, Task, WeakEntity,
-};
+use gpui::{App, Axis, Entity, EventEmitter, FocusHandle, Focusable, Task, WeakEntity};
use project::debugger::session::Session;
use project::worktree_store::WorktreeStore;
use project::{Project, debugger::session::SessionQuirks};
@@ -24,13 +22,6 @@ pub struct DebugSession {
stack_trace_view: OnceCell<Entity<StackTraceView>>,
_worktree_store: WeakEntity<WorktreeStore>,
workspace: WeakEntity<Workspace>,
- _subscriptions: [Subscription; 1],
-}
-
-#[derive(Debug)]
-pub enum DebugPanelItemEvent {
- Close,
- Stopped { go_to_stack_frame: bool },
}
impl DebugSession {
@@ -59,9 +50,6 @@ impl DebugSession {
let quirks = session.read(cx).quirks();
cx.new(|cx| Self {
- _subscriptions: [cx.subscribe(&running_state, |_, _, _, cx| {
- cx.notify();
- })],
remote_id: None,
running_state,
quirks,
@@ -133,7 +121,7 @@ impl DebugSession {
}
}
-impl EventEmitter<DebugPanelItemEvent> for DebugSession {}
+impl EventEmitter<()> for DebugSession {}
impl Focusable for DebugSession {
fn focus_handle(&self, cx: &App) -> FocusHandle {
@@ -142,7 +130,7 @@ impl Focusable for DebugSession {
}
impl Item for DebugSession {
- type Event = DebugPanelItemEvent;
+ type Event = ();
fn tab_content_text(&self, _detail: usize, _cx: &App) -> SharedString {
"Debugger".into()
}
@@ -14,7 +14,6 @@ use crate::{
session::running::memory_view::MemoryView,
};
-use super::DebugPanelItemEvent;
use anyhow::{Context as _, Result, anyhow};
use breakpoint_list::BreakpointList;
use collections::{HashMap, IndexMap};
@@ -1826,8 +1825,6 @@ impl RunningState {
}
}
-impl EventEmitter<DebugPanelItemEvent> for RunningState {}
-
impl Focusable for RunningState {
fn focus_handle(&self, _: &App) -> FocusHandle {
self.focus_handle.clone()
@@ -20326,7 +20326,6 @@ impl Editor {
multi_buffer::Event::FileHandleChanged
| multi_buffer::Event::Reloaded
| multi_buffer::Event::BufferDiffChanged => cx.emit(EditorEvent::TitleChanged),
- multi_buffer::Event::Closed => cx.emit(EditorEvent::Closed),
multi_buffer::Event::DiagnosticsUpdated => {
self.update_diagnostics_state(window, cx);
}
@@ -23024,7 +23023,6 @@ pub enum EditorEvent {
DirtyChanged,
Saved,
TitleChanged,
- DiffBaseChanged,
SelectionsChanged {
local: bool,
},
@@ -23032,14 +23030,12 @@ pub enum EditorEvent {
local: bool,
autoscroll: bool,
},
- Closed,
TransactionUndone {
transaction_id: clock::Lamport,
},
TransactionBegun {
transaction_id: clock::Lamport,
},
- Reloaded,
CursorShapeChanged,
BreadcrumbsChanged,
PushedToNavHistory {
@@ -775,12 +775,6 @@ impl Item for Editor {
self.nav_history = Some(history);
}
- fn discarded(&self, _project: Entity<Project>, _: &mut Window, cx: &mut Context<Self>) {
- for buffer in self.buffer().clone().read(cx).all_buffers() {
- buffer.update(cx, |buffer, cx| buffer.discarded(cx))
- }
- }
-
fn on_removed(&self, cx: &App) {
self.report_editor_event(ReportEditorEvent::Closed, None, cx);
}
@@ -1022,8 +1016,6 @@ impl Item for Editor {
fn to_item_events(event: &EditorEvent, mut f: impl FnMut(ItemEvent)) {
match event {
- EditorEvent::Closed => f(ItemEvent::CloseItem),
-
EditorEvent::Saved | EditorEvent::TitleChanged => {
f(ItemEvent::UpdateTab);
f(ItemEvent::UpdateBreadcrumbs);
@@ -315,10 +315,6 @@ pub enum BufferEvent {
DiagnosticsUpdated,
/// The buffer gained or lost editing capabilities.
CapabilityChanged,
- /// The buffer was explicitly requested to close.
- Closed,
- /// The buffer was discarded when closing.
- Discarded,
}
/// The file associated with a buffer.
@@ -1246,8 +1242,10 @@ impl Buffer {
/// Assign the buffer a new [`Capability`].
pub fn set_capability(&mut self, capability: Capability, cx: &mut Context<Self>) {
- self.capability = capability;
- cx.emit(BufferEvent::CapabilityChanged)
+ if self.capability != capability {
+ self.capability = capability;
+ cx.emit(BufferEvent::CapabilityChanged)
+ }
}
/// This method is called to signal that the buffer has been saved.
@@ -1267,12 +1265,6 @@ impl Buffer {
cx.notify();
}
- /// This method is called to signal that the buffer has been discarded.
- pub fn discarded(&self, cx: &mut Context<Self>) {
- cx.emit(BufferEvent::Discarded);
- cx.notify();
- }
-
/// Reloads the contents of the buffer from disk.
pub fn reload(&mut self, cx: &Context<Self>) -> oneshot::Receiver<Option<Transaction>> {
let (tx, rx) = futures::channel::oneshot::channel();
@@ -113,15 +113,10 @@ pub enum Event {
transaction_id: TransactionId,
},
Reloaded,
- ReloadNeeded,
-
LanguageChanged(BufferId),
- CapabilityChanged,
Reparsed(BufferId),
Saved,
FileHandleChanged,
- Closed,
- Discarded,
DirtyChanged,
DiagnosticsUpdated,
BufferDiffChanged,
@@ -2433,28 +2428,24 @@ impl MultiBuffer {
event: &language::BufferEvent,
cx: &mut Context<Self>,
) {
+ use language::BufferEvent;
cx.emit(match event {
- language::BufferEvent::Edited => Event::Edited {
+ BufferEvent::Edited => Event::Edited {
singleton_buffer_edited: true,
edited_buffer: Some(buffer),
},
- language::BufferEvent::DirtyChanged => Event::DirtyChanged,
- language::BufferEvent::Saved => Event::Saved,
- language::BufferEvent::FileHandleChanged => Event::FileHandleChanged,
- language::BufferEvent::Reloaded => Event::Reloaded,
- language::BufferEvent::ReloadNeeded => Event::ReloadNeeded,
- language::BufferEvent::LanguageChanged => {
- Event::LanguageChanged(buffer.read(cx).remote_id())
- }
- language::BufferEvent::Reparsed => Event::Reparsed(buffer.read(cx).remote_id()),
- language::BufferEvent::DiagnosticsUpdated => Event::DiagnosticsUpdated,
- language::BufferEvent::Closed => Event::Closed,
- language::BufferEvent::Discarded => Event::Discarded,
- language::BufferEvent::CapabilityChanged => {
+ BufferEvent::DirtyChanged => Event::DirtyChanged,
+ BufferEvent::Saved => Event::Saved,
+ BufferEvent::FileHandleChanged => Event::FileHandleChanged,
+ BufferEvent::Reloaded => Event::Reloaded,
+ BufferEvent::LanguageChanged => Event::LanguageChanged(buffer.read(cx).remote_id()),
+ BufferEvent::Reparsed => Event::Reparsed(buffer.read(cx).remote_id()),
+ BufferEvent::DiagnosticsUpdated => Event::DiagnosticsUpdated,
+ BufferEvent::CapabilityChanged => {
self.capability = buffer.read(cx).capability();
- Event::CapabilityChanged
+ return;
}
- language::BufferEvent::Operation { .. } => return,
+ BufferEvent::Operation { .. } | BufferEvent::ReloadNeeded => return,
});
}
@@ -541,7 +541,6 @@ pub trait ItemHandle: 'static + Send {
cx: &mut Context<Workspace>,
);
fn deactivated(&self, window: &mut Window, cx: &mut App);
- fn discarded(&self, project: Entity<Project>, window: &mut Window, cx: &mut App);
fn on_removed(&self, cx: &App);
fn workspace_deactivated(&self, window: &mut Window, cx: &mut App);
fn navigate(&self, data: Box<dyn Any>, window: &mut Window, cx: &mut App) -> bool;
@@ -975,10 +974,6 @@ impl<T: Item> ItemHandle for Entity<T> {
});
}
- fn discarded(&self, project: Entity<Project>, window: &mut Window, cx: &mut App) {
- self.update(cx, |this, cx| this.discarded(project, window, cx));
- }
-
fn deactivated(&self, window: &mut Window, cx: &mut App) {
self.update(cx, |this, cx| this.deactivated(window, cx));
}
@@ -254,9 +254,6 @@ pub enum Event {
Remove {
focus_on_pane: Option<Entity<Pane>>,
},
- RemoveItem {
- idx: usize,
- },
RemovedItem {
item: Box<dyn ItemHandle>,
},
@@ -287,7 +284,6 @@ impl fmt::Debug for Event {
.field("local", local)
.finish(),
Event::Remove { .. } => f.write_str("Remove"),
- Event::RemoveItem { idx } => f.debug_struct("RemoveItem").field("idx", idx).finish(),
Event::RemovedItem { item } => f
.debug_struct("RemovedItem")
.field("item", &item.item_id())
@@ -2096,11 +2092,10 @@ impl Pane {
Ok(0) => {}
Ok(1) => {
// Don't save this file
- pane.update_in(cx, |pane, window, cx| {
+ pane.update_in(cx, |pane, _, cx| {
if pane.is_tab_pinned(item_ix) && !item.can_save(cx) {
pane.pinned_tab_count -= 1;
}
- item.discarded(project, window, cx)
})
.log_err();
return Ok(true);
@@ -1030,7 +1030,6 @@ pub enum Event {
ItemAdded {
item: Box<dyn ItemHandle>,
},
- ItemRemoved,
ActiveItemChanged,
UserSavedItem {
pane: WeakEntity<Pane>,
@@ -1046,7 +1045,6 @@ pub enum Event {
},
ZoomChanged,
ModalOpened,
- ClearActivityIndicator,
}
#[derive(Debug)]
@@ -3939,7 +3937,6 @@ impl Workspace {
}
serialize_workspace = false;
}
- pane::Event::RemoveItem { .. } => {}
pane::Event::RemovedItem { item } => {
cx.emit(Event::ActiveItemChanged);
self.update_window_edited(window, cx);