Move "async move" a few characters to the left in cx.spawn() (#26758)
This is the core change: https://github.com/zed-industries/zed/pull/26758/files#diff-044302c0d57147af17e68a0009fee3e8dcdfb4f32c27a915e70cfa80e987f765R1052 TODO: - [x] Use AsyncFn instead of Fn() -> Future in GPUI spawn methods - [x] Implement it in the whole app - [x] Implement it in the debugger - [x] Glance at the RPC crate, and see if those box future methods can be switched over. Answer: It can't directly, as you can't make an AsyncFn* into a trait object. There's ways around that, but they're all more complex than just keeping the code as is. - [ ] Fix platform specific code Release Notes: - N/A
This commit is contained in:
parent
7f2e3fb5bd
commit
1aefa5178b
256 changed files with 3110 additions and 3200 deletions
|
@ -90,8 +90,8 @@ pub(crate) fn deserialize_terminal_panel(
|
|||
window: &mut Window,
|
||||
cx: &mut App,
|
||||
) -> Task<anyhow::Result<Entity<TerminalPanel>>> {
|
||||
window.spawn(cx, move |mut cx| async move {
|
||||
let terminal_panel = workspace.update_in(&mut cx, |workspace, window, cx| {
|
||||
window.spawn(cx, async move |cx| {
|
||||
let terminal_panel = workspace.update_in(cx, |workspace, window, cx| {
|
||||
cx.new(|cx| {
|
||||
let mut panel = TerminalPanel::new(workspace, window, cx);
|
||||
panel.height = serialized_panel.height.map(|h| h.round());
|
||||
|
@ -106,11 +106,11 @@ pub(crate) fn deserialize_terminal_panel(
|
|||
project,
|
||||
workspace,
|
||||
item_ids.as_slice(),
|
||||
&mut cx,
|
||||
cx,
|
||||
)
|
||||
.await;
|
||||
let active_item = serialized_panel.active_item_id;
|
||||
terminal_panel.update_in(&mut cx, |terminal_panel, window, cx| {
|
||||
terminal_panel.update_in(cx, |terminal_panel, window, cx| {
|
||||
terminal_panel.active_pane.update(cx, |pane, cx| {
|
||||
populate_pane_items(pane, items, active_item, window, cx);
|
||||
});
|
||||
|
@ -123,11 +123,11 @@ pub(crate) fn deserialize_terminal_panel(
|
|||
terminal_panel.clone(),
|
||||
database_id,
|
||||
serialized_pane_group,
|
||||
&mut cx,
|
||||
cx,
|
||||
)
|
||||
.await;
|
||||
if let Some((center_group, active_pane)) = center_pane {
|
||||
terminal_panel.update(&mut cx, |terminal_panel, _| {
|
||||
terminal_panel.update(cx, |terminal_panel, _| {
|
||||
terminal_panel.center = PaneGroup::with_root(center_group);
|
||||
terminal_panel.active_pane =
|
||||
active_pane.unwrap_or_else(|| terminal_panel.center.first_pane());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue