Cleanups preparing for WindowContext refactor (#22475)

* Remove unnecessary WindowContext and ViewContext '_ lifetimes

* Removed some cases where WindowContext has a different name than `cx`.

Release Notes:

- N/A
This commit is contained in:
Michael Sloan 2024-12-28 14:36:14 -07:00 committed by GitHub
parent 9815358bdd
commit 016b5d60e1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
41 changed files with 127 additions and 152 deletions

View file

@ -4966,8 +4966,8 @@ fn fold_toggle(
) -> impl Fn(
MultiBufferRow,
bool,
Arc<dyn Fn(bool, &mut WindowContext<'_>) + Send + Sync>,
&mut WindowContext<'_>,
Arc<dyn Fn(bool, &mut WindowContext) + Send + Sync>,
&mut WindowContext,
) -> AnyElement {
move |row, is_folded, fold, _cx| {
Disclosure::new((name, row.0 as u64), !is_folded)

View file

@ -27,8 +27,8 @@ enum SlashCommandEntry {
Info(SlashCommandInfo),
Advert {
name: SharedString,
renderer: fn(&mut WindowContext<'_>) -> AnyElement,
on_confirm: fn(&mut WindowContext<'_>),
renderer: fn(&mut WindowContext) -> AnyElement,
on_confirm: fn(&mut WindowContext),
},
}

View file

@ -16,7 +16,7 @@ fn is_c_language(language: &Language) -> bool {
pub fn switch_source_header(
editor: &mut Editor,
_: &SwitchSourceHeader,
cx: &mut ViewContext<'_, Editor>,
cx: &mut ViewContext<Editor>,
) {
let Some(project) = &editor.project else {
return;

View file

@ -3513,7 +3513,7 @@ impl Editor {
}
}
fn visible_inlay_hints(&self, cx: &ViewContext<'_, Editor>) -> Vec<Inlay> {
fn visible_inlay_hints(&self, cx: &ViewContext<Editor>) -> Vec<Inlay> {
self.display_map
.read(cx)
.current_inlays()
@ -6009,7 +6009,7 @@ impl Editor {
fn gather_revert_changes(
&mut self,
selections: &[Selection<Point>],
cx: &mut ViewContext<'_, Editor>,
cx: &mut ViewContext<Editor>,
) -> HashMap<BufferId, Vec<(Range<text::Anchor>, Rope)>> {
let mut revert_changes = HashMap::default();
let snapshot = self.snapshot(cx);
@ -8936,7 +8936,7 @@ impl Editor {
fn templates_with_tags(
project: &Model<Project>,
runnable: &mut Runnable,
cx: &WindowContext<'_>,
cx: &WindowContext,
) -> Vec<(TaskSourceKind, TaskTemplate)> {
let (inventory, worktree_id, file) = project.read_with(cx, |project, cx| {
let (worktree_id, file) = project
@ -9248,7 +9248,7 @@ impl Editor {
&mut self,
snapshot: &EditorSnapshot,
position: Point,
cx: &mut ViewContext<'_, Editor>,
cx: &mut ViewContext<Editor>,
) -> Option<MultiBufferDiffHunk> {
for (ix, position) in [position, Point::zero()].into_iter().enumerate() {
if let Some(hunk) = self.go_to_next_hunk_in_direction(
@ -9277,7 +9277,7 @@ impl Editor {
&mut self,
snapshot: &EditorSnapshot,
position: Point,
cx: &mut ViewContext<'_, Editor>,
cx: &mut ViewContext<Editor>,
) -> Option<MultiBufferDiffHunk> {
for (ix, position) in [position, snapshot.buffer_snapshot.max_point()]
.into_iter()
@ -13842,7 +13842,7 @@ impl SemanticsProvider for Model<Project> {
fn inlay_hint_settings(
location: Anchor,
snapshot: &MultiBufferSnapshot,
cx: &mut ViewContext<'_, Editor>,
cx: &mut ViewContext<Editor>,
) -> InlayHintSettings {
let file = snapshot.file_at(location);
let language = snapshot.language_at(location).map(|l| l.name());

View file

@ -4991,7 +4991,7 @@ fn jump_data(
block_row_start: DisplayRow,
height: u32,
for_excerpt: &ExcerptInfo,
cx: &mut WindowContext<'_>,
cx: &mut WindowContext,
) -> JumpData {
let range = &for_excerpt.range;
let buffer = &for_excerpt.buffer;
@ -5066,7 +5066,7 @@ fn prepaint_gutter_button(
scroll_pixel_position: gpui::Point<Pixels>,
gutter_hitbox: &Hitbox,
rows_with_hunk_bounds: &HashMap<DisplayRow, Bounds<Pixels>>,
cx: &mut WindowContext<'_>,
cx: &mut WindowContext,
) -> AnyElement {
let mut button = button.into_any_element();
let available_space = size(
@ -5099,7 +5099,7 @@ fn render_inline_blame_entry(
blame_entry: BlameEntry,
style: &EditorStyle,
workspace: Option<WeakView<Workspace>>,
cx: &mut WindowContext<'_>,
cx: &mut WindowContext,
) -> AnyElement {
let relative_timestamp = blame_entry_relative_timestamp(&blame_entry);
@ -5139,7 +5139,7 @@ fn render_blame_entry(
style: &EditorStyle,
last_used_color: &mut Option<(PlayerColor, Oid)>,
editor: View<Editor>,
cx: &mut WindowContext<'_>,
cx: &mut WindowContext,
) -> AnyElement {
let mut sha_color = cx
.theme()
@ -5221,7 +5221,7 @@ fn deploy_blame_entry_context_menu(
details: Option<&CommitDetails>,
editor: View<Editor>,
position: gpui::Point<Pixels>,
cx: &mut WindowContext<'_>,
cx: &mut WindowContext,
) {
let context_menu = ContextMenu::build(cx, move |menu, _| {
let sha = format!("{}", blame_entry.sha);

View file

@ -266,7 +266,7 @@ pub fn update_inlay_link_and_hover_points(
editor: &mut Editor,
secondary_held: bool,
shift_held: bool,
cx: &mut ViewContext<'_, Editor>,
cx: &mut ViewContext<Editor>,
) {
let hovered_offset = if point_for_position.column_overshoot_after_line_end == 0 {
Some(snapshot.display_point_to_inlay_offset(point_for_position.exact_unclipped, Bias::Left))

View file

@ -365,7 +365,7 @@ impl Editor {
&mut self,
diff_base_buffer: Option<Model<Buffer>>,
hunk: &HoveredHunk,
cx: &mut ViewContext<'_, Editor>,
cx: &mut ViewContext<Editor>,
) -> Option<()> {
let buffer = self.buffer.clone();
let multi_buffer_snapshot = buffer.read(cx).snapshot(cx);
@ -454,7 +454,7 @@ impl Editor {
fn apply_diff_hunks_in_range(
&mut self,
range: Range<Anchor>,
cx: &mut ViewContext<'_, Editor>,
cx: &mut ViewContext<Editor>,
) -> Option<()> {
let (buffer, range, _) = self
.buffer
@ -530,7 +530,7 @@ impl Editor {
fn hunk_header_block(
&self,
hunk: &HoveredHunk,
cx: &mut ViewContext<'_, Editor>,
cx: &mut ViewContext<Editor>,
) -> BlockProperties<Anchor> {
let is_branch_buffer = self
.buffer
@ -801,7 +801,7 @@ impl Editor {
hunk: &HoveredHunk,
diff_base_buffer: Model<Buffer>,
deleted_text_height: u32,
cx: &mut ViewContext<'_, Editor>,
cx: &mut ViewContext<Editor>,
) -> BlockProperties<Anchor> {
let gutter_color = match hunk.status {
DiffHunkStatus::Added => unreachable!(),
@ -864,7 +864,7 @@ impl Editor {
}
}
pub(super) fn clear_expanded_diff_hunks(&mut self, cx: &mut ViewContext<'_, Editor>) -> bool {
pub(super) fn clear_expanded_diff_hunks(&mut self, cx: &mut ViewContext<Editor>) -> bool {
if self.diff_map.expand_all {
return false;
}
@ -887,7 +887,7 @@ impl Editor {
pub(super) fn sync_expanded_diff_hunks(
diff_map: &mut DiffMap,
buffer_id: BufferId,
cx: &mut ViewContext<'_, Self>,
cx: &mut ViewContext<Self>,
) {
let diff_base_state = diff_map.diff_bases.get_mut(&buffer_id);
let mut diff_base_buffer = None;
@ -1134,7 +1134,7 @@ fn editor_with_deleted_text(
diff_base_buffer: Model<Buffer>,
deleted_color: Hsla,
hunk: &HoveredHunk,
cx: &mut ViewContext<'_, Editor>,
cx: &mut ViewContext<Editor>,
) -> (u32, View<Editor>) {
let parent_editor = cx.view().downgrade();
let editor = cx.new_view(|cx| {

View file

@ -579,7 +579,7 @@ impl InlayHintCache {
buffer_id: BufferId,
excerpt_id: ExcerptId,
id: InlayId,
cx: &mut ViewContext<'_, Editor>,
cx: &mut ViewContext<Editor>,
) {
if let Some(excerpt_hints) = self.hints.get(&excerpt_id) {
let mut guard = excerpt_hints.write();
@ -640,7 +640,7 @@ fn spawn_new_update_tasks(
excerpts_to_query: HashMap<ExcerptId, (Model<Buffer>, Global, Range<usize>)>,
invalidate: InvalidationStrategy,
update_cache_version: usize,
cx: &mut ViewContext<'_, Editor>,
cx: &mut ViewContext<Editor>,
) {
for (excerpt_id, (excerpt_buffer, new_task_buffer_version, excerpt_visible_range)) in
excerpts_to_query
@ -797,7 +797,7 @@ fn new_update_task(
query: ExcerptQuery,
query_ranges: QueryRanges,
excerpt_buffer: Model<Buffer>,
cx: &mut ViewContext<'_, Editor>,
cx: &mut ViewContext<Editor>,
) -> Task<()> {
cx.spawn(move |editor, mut cx| async move {
let visible_range_update_results = future::join_all(
@ -1129,7 +1129,7 @@ fn apply_hint_update(
invalidate: bool,
buffer_snapshot: BufferSnapshot,
multi_buffer_snapshot: MultiBufferSnapshot,
cx: &mut ViewContext<'_, Editor>,
cx: &mut ViewContext<Editor>,
) {
let cached_excerpt_hints = editor
.inlay_hint_cache
@ -3434,7 +3434,7 @@ pub mod tests {
labels
}
pub fn visible_hint_labels(editor: &Editor, cx: &ViewContext<'_, Editor>) -> Vec<String> {
pub fn visible_hint_labels(editor: &Editor, cx: &ViewContext<Editor>) -> Vec<String> {
let mut hints = editor
.visible_inlay_hints(cx)
.into_iter()

View file

@ -33,7 +33,7 @@ pub fn apply_related_actions(editor: &View<Editor>, cx: &mut WindowContext) {
pub fn expand_macro_recursively(
editor: &mut Editor,
_: &ExpandMacroRecursively,
cx: &mut ViewContext<'_, Editor>,
cx: &mut ViewContext<Editor>,
) {
if editor.selections.count() == 0 {
return;
@ -98,7 +98,7 @@ pub fn expand_macro_recursively(
.detach_and_log_err(cx);
}
pub fn open_docs(editor: &mut Editor, _: &OpenDocs, cx: &mut ViewContext<'_, Editor>) {
pub fn open_docs(editor: &mut Editor, _: &OpenDocs, cx: &mut ViewContext<Editor>) {
if editor.selections.count() == 0 {
return;
}

View file

@ -8,7 +8,7 @@ use workspace::Workspace;
fn task_context_with_editor(
editor: &mut Editor,
cx: &mut WindowContext<'_>,
cx: &mut WindowContext,
) -> AsyncTask<Option<TaskContext>> {
let Some(project) = editor.project.clone() else {
return AsyncTask::ready(None);
@ -74,7 +74,7 @@ fn task_context_with_editor(
})
}
pub fn task_context(workspace: &Workspace, cx: &mut WindowContext<'_>) -> AsyncTask<TaskContext> {
pub fn task_context(workspace: &Workspace, cx: &mut WindowContext) -> AsyncTask<TaskContext> {
let Some(editor) = workspace
.active_item(cx)
.and_then(|item| item.act_as::<Editor>(cx))

View file

@ -843,7 +843,7 @@ impl ExtensionsPage {
}
}
fn fetch_extensions_debounced(&mut self, cx: &mut ViewContext<'_, ExtensionsPage>) {
fn fetch_extensions_debounced(&mut self, cx: &mut ViewContext<ExtensionsPage>) {
self.extension_fetch_task = Some(cx.spawn(|this, mut cx| async move {
let search = this
.update(&mut cx, |this, cx| this.search_query(cx))

View file

@ -884,7 +884,7 @@ impl FileFinderDelegate {
fn lookup_absolute_path(
&self,
query: FileSearchQuery,
cx: &mut ViewContext<'_, Picker<Self>>,
cx: &mut ViewContext<Picker<Self>>,
) -> Task<()> {
cx.spawn(|picker, mut cx| async move {
let Some(project) = picker

View file

@ -1044,7 +1044,7 @@ impl GitPanel {
hunks: Rc<OnceCell<Vec<DiffHunk>>>,
change_focus: bool,
debounce: Option<Duration>,
cx: &mut ViewContext<'_, Self>,
cx: &mut ViewContext<Self>,
) {
let workspace = self.workspace.clone();
let Some(diff_editor) = self.git_diff_editor.clone() else {

View file

@ -1490,7 +1490,7 @@ impl Context for AppContext {
fn update_window<T, F>(&mut self, handle: AnyWindowHandle, update: F) -> Result<T>
where
F: FnOnce(AnyView, &mut WindowContext<'_>) -> T,
F: FnOnce(AnyView, &mut WindowContext) -> T,
{
self.update(|cx| {
let mut window = cx

View file

@ -84,7 +84,7 @@ impl Context for AsyncAppContext {
fn update_window<T, F>(&mut self, window: AnyWindowHandle, f: F) -> Result<T>
where
F: FnOnce(AnyView, &mut WindowContext<'_>) -> T,
F: FnOnce(AnyView, &mut WindowContext) -> T,
{
let app = self.app.upgrade().context("app was released")?;
let mut lock = app.borrow_mut();
@ -349,7 +349,7 @@ impl Context for AsyncWindowContext {
fn update_window<T, F>(&mut self, window: AnyWindowHandle, update: F) -> Result<T>
where
F: FnOnce(AnyView, &mut WindowContext<'_>) -> T,
F: FnOnce(AnyView, &mut WindowContext) -> T,
{
self.app.update_window(window, update)
}
@ -369,7 +369,7 @@ impl Context for AsyncWindowContext {
impl VisualContext for AsyncWindowContext {
fn new_view<V>(
&mut self,
build_view_state: impl FnOnce(&mut ViewContext<'_, V>) -> V,
build_view_state: impl FnOnce(&mut ViewContext<V>) -> V,
) -> Self::Result<View<V>>
where
V: 'static + Render,
@ -381,7 +381,7 @@ impl VisualContext for AsyncWindowContext {
fn update_view<V: 'static, R>(
&mut self,
view: &View<V>,
update: impl FnOnce(&mut V, &mut ViewContext<'_, V>) -> R,
update: impl FnOnce(&mut V, &mut ViewContext<V>) -> R,
) -> Self::Result<R> {
self.window
.update(self, |_, cx| cx.update_view(view, update))
@ -389,7 +389,7 @@ impl VisualContext for AsyncWindowContext {
fn replace_root_view<V>(
&mut self,
build_view: impl FnOnce(&mut ViewContext<'_, V>) -> V,
build_view: impl FnOnce(&mut ViewContext<V>) -> V,
) -> Self::Result<View<V>>
where
V: 'static + Render,

View file

@ -263,7 +263,7 @@ impl<'a, T> Context for ModelContext<'a, T> {
fn update_window<R, F>(&mut self, window: AnyWindowHandle, update: F) -> Result<R>
where
F: FnOnce(AnyView, &mut WindowContext<'_>) -> R,
F: FnOnce(AnyView, &mut WindowContext) -> R,
{
self.app.update_window(window, update)
}

View file

@ -77,7 +77,7 @@ impl Context for TestAppContext {
fn update_window<T, F>(&mut self, window: AnyWindowHandle, f: F) -> Result<T>
where
F: FnOnce(AnyView, &mut WindowContext<'_>) -> T,
F: FnOnce(AnyView, &mut WindowContext) -> T,
{
let mut lock = self.app.borrow_mut();
lock.update_window(window, f)
@ -916,7 +916,7 @@ impl Context for VisualTestContext {
fn update_window<T, F>(&mut self, window: AnyWindowHandle, f: F) -> Result<T>
where
F: FnOnce(AnyView, &mut WindowContext<'_>) -> T,
F: FnOnce(AnyView, &mut WindowContext) -> T,
{
self.cx.update_window(window, f)
}
@ -936,7 +936,7 @@ impl Context for VisualTestContext {
impl VisualContext for VisualTestContext {
fn new_view<V>(
&mut self,
build_view: impl FnOnce(&mut ViewContext<'_, V>) -> V,
build_view: impl FnOnce(&mut ViewContext<V>) -> V,
) -> Self::Result<View<V>>
where
V: 'static + Render,
@ -949,7 +949,7 @@ impl VisualContext for VisualTestContext {
fn update_view<V: 'static, R>(
&mut self,
view: &View<V>,
update: impl FnOnce(&mut V, &mut ViewContext<'_, V>) -> R,
update: impl FnOnce(&mut V, &mut ViewContext<V>) -> R,
) -> Self::Result<R> {
self.window
.update(&mut self.cx, |_, cx| cx.update_view(view, update))
@ -958,7 +958,7 @@ impl VisualContext for VisualTestContext {
fn replace_root_view<V>(
&mut self,
build_view: impl FnOnce(&mut ViewContext<'_, V>) -> V,
build_view: impl FnOnce(&mut ViewContext<V>) -> V,
) -> Self::Result<View<V>>
where
V: 'static + Render,
@ -993,7 +993,7 @@ impl AnyWindowHandle {
pub fn build_view<V: Render + 'static>(
&self,
cx: &mut TestAppContext,
build_view: impl FnOnce(&mut ViewContext<'_, V>) -> V,
build_view: impl FnOnce(&mut ViewContext<V>) -> V,
) -> View<V> {
self.update(cx, |_, cx| cx.new_view(build_view)).unwrap()
}

View file

@ -2499,7 +2499,7 @@ impl ScrollAnchor {
}
}
/// Request scroll to this item on the next frame.
pub fn scroll_to(&self, cx: &mut WindowContext<'_>) {
pub fn scroll_to(&self, cx: &mut WindowContext) {
let this = self.clone();
cx.on_next_frame(move |_| {

View file

@ -472,9 +472,9 @@ pub struct InteractiveText {
element_id: ElementId,
text: StyledText,
click_listener:
Option<Box<dyn Fn(&[Range<usize>], InteractiveTextClickEvent, &mut WindowContext<'_>)>>,
hover_listener: Option<Box<dyn Fn(Option<usize>, MouseMoveEvent, &mut WindowContext<'_>)>>,
tooltip_builder: Option<Rc<dyn Fn(usize, &mut WindowContext<'_>) -> Option<AnyView>>>,
Option<Box<dyn Fn(&[Range<usize>], InteractiveTextClickEvent, &mut WindowContext)>>,
hover_listener: Option<Box<dyn Fn(Option<usize>, MouseMoveEvent, &mut WindowContext)>>,
tooltip_builder: Option<Rc<dyn Fn(usize, &mut WindowContext) -> Option<AnyView>>>,
clickable_ranges: Vec<Range<usize>>,
}
@ -510,7 +510,7 @@ impl InteractiveText {
pub fn on_click(
mut self,
ranges: Vec<Range<usize>>,
listener: impl Fn(usize, &mut WindowContext<'_>) + 'static,
listener: impl Fn(usize, &mut WindowContext) + 'static,
) -> Self {
self.click_listener = Some(Box::new(move |ranges, event, cx| {
for (range_ix, range) in ranges.iter().enumerate() {
@ -528,7 +528,7 @@ impl InteractiveText {
/// index of the hovered character, or None if the mouse leaves the text.
pub fn on_hover(
mut self,
listener: impl Fn(Option<usize>, MouseMoveEvent, &mut WindowContext<'_>) + 'static,
listener: impl Fn(Option<usize>, MouseMoveEvent, &mut WindowContext) + 'static,
) -> Self {
self.hover_listener = Some(Box::new(listener));
self
@ -537,7 +537,7 @@ impl InteractiveText {
/// tooltip lets you specify a tooltip for a given character index in the string.
pub fn tooltip(
mut self,
builder: impl Fn(usize, &mut WindowContext<'_>) -> Option<AnyView> + 'static,
builder: impl Fn(usize, &mut WindowContext) -> Option<AnyView> + 'static,
) -> Self {
self.tooltip_builder = Some(Rc::new(builder));
self

View file

@ -202,7 +202,7 @@ pub trait Context {
/// Update a window for the given handle.
fn update_window<T, F>(&mut self, window: AnyWindowHandle, f: F) -> Result<T>
where
F: FnOnce(AnyView, &mut WindowContext<'_>) -> T;
F: FnOnce(AnyView, &mut WindowContext) -> T;
/// Read a window off of the application context.
fn read_window<T, R>(
@ -231,7 +231,7 @@ pub trait VisualContext: Context {
/// Construct a new view in the window referenced by this context.
fn new_view<V>(
&mut self,
build_view: impl FnOnce(&mut ViewContext<'_, V>) -> V,
build_view: impl FnOnce(&mut ViewContext<V>) -> V,
) -> Self::Result<View<V>>
where
V: 'static + Render;
@ -240,13 +240,13 @@ pub trait VisualContext: Context {
fn update_view<V: 'static, R>(
&mut self,
view: &View<V>,
update: impl FnOnce(&mut V, &mut ViewContext<'_, V>) -> R,
update: impl FnOnce(&mut V, &mut ViewContext<V>) -> R,
) -> Self::Result<R>;
/// Replace the root view of a window with a new view.
fn replace_root_view<V>(
&mut self,
build_view: impl FnOnce(&mut ViewContext<'_, V>) -> V,
build_view: impl FnOnce(&mut ViewContext<V>) -> V,
) -> Self::Result<View<V>>
where
V: 'static + Render;

View file

@ -69,7 +69,7 @@ impl<V: 'static> View<V> {
pub fn update<C, R>(
&self,
cx: &mut C,
f: impl FnOnce(&mut V, &mut ViewContext<'_, V>) -> R,
f: impl FnOnce(&mut V, &mut ViewContext<V>) -> R,
) -> C::Result<R>
where
C: VisualContext,
@ -183,7 +183,7 @@ impl<V: 'static> WeakView<V> {
pub fn update<C, R>(
&self,
cx: &mut C,
f: impl FnOnce(&mut V, &mut ViewContext<'_, V>) -> R,
f: impl FnOnce(&mut V, &mut ViewContext<V>) -> R,
) -> Result<R>
where
C: VisualContext,

View file

@ -703,15 +703,11 @@ impl LspLogView {
});
let editor_subscription = cx.subscribe(
&editor,
|_, _, event: &EditorEvent, cx: &mut ViewContext<'_, LspLogView>| {
cx.emit(event.clone())
},
|_, _, event: &EditorEvent, cx: &mut ViewContext<LspLogView>| cx.emit(event.clone()),
);
let search_subscription = cx.subscribe(
&editor,
|_, _, event: &SearchEvent, cx: &mut ViewContext<'_, LspLogView>| {
cx.emit(event.clone())
},
|_, _, event: &SearchEvent, cx: &mut ViewContext<LspLogView>| cx.emit(event.clone()),
);
(editor, vec![editor_subscription, search_subscription])
}
@ -730,15 +726,11 @@ impl LspLogView {
});
let editor_subscription = cx.subscribe(
&editor,
|_, _, event: &EditorEvent, cx: &mut ViewContext<'_, LspLogView>| {
cx.emit(event.clone())
},
|_, _, event: &EditorEvent, cx: &mut ViewContext<LspLogView>| cx.emit(event.clone()),
);
let search_subscription = cx.subscribe(
&editor,
|_, _, event: &SearchEvent, cx: &mut ViewContext<'_, LspLogView>| {
cx.emit(event.clone())
},
|_, _, event: &SearchEvent, cx: &mut ViewContext<LspLogView>| cx.emit(event.clone()),
);
(editor, vec![editor_subscription, search_subscription])
}

View file

@ -273,7 +273,7 @@ impl SyntaxTreeView {
}
impl Render for SyntaxTreeView {
fn render(&mut self, cx: &mut gpui::ViewContext<'_, Self>) -> impl IntoElement {
fn render(&mut self, cx: &mut gpui::ViewContext<Self>) -> impl IntoElement {
let mut rendered = div().flex_1();
if let Some(layer) = self
@ -422,7 +422,7 @@ impl SyntaxTreeToolbarItemView {
}
}
fn render_menu(&mut self, cx: &mut ViewContext<'_, Self>) -> Option<PopoverMenu<ContextMenu>> {
fn render_menu(&mut self, cx: &mut ViewContext<Self>) -> Option<PopoverMenu<ContextMenu>> {
let tree_view = self.tree_view.as_ref()?;
let tree_view = tree_view.read(cx);
@ -492,7 +492,7 @@ fn format_node_range(node: Node) -> String {
}
impl Render for SyntaxTreeToolbarItemView {
fn render(&mut self, cx: &mut ViewContext<'_, Self>) -> impl IntoElement {
fn render(&mut self, cx: &mut ViewContext<Self>) -> impl IntoElement {
self.render_menu(cx)
.unwrap_or_else(|| PopoverMenu::new("Empty Syntax Tree"))
}

View file

@ -149,7 +149,7 @@ impl SearchState {
previous_matches: HashMap<Range<editor::Anchor>, Arc<OnceLock<SearchData>>>,
new_matches: Vec<Range<editor::Anchor>>,
theme: Arc<SyntaxTheme>,
cx: &mut ViewContext<'_, OutlinePanel>,
cx: &mut ViewContext<OutlinePanel>,
) -> Self {
let (highlight_search_match_tx, highlight_search_match_rx) = channel::unbounded();
let (notify_tx, notify_rx) = channel::unbounded::<()>();
@ -1661,7 +1661,7 @@ impl OutlinePanel {
}
}
fn reveal_entry_for_selection(&mut self, editor: View<Editor>, cx: &mut ViewContext<'_, Self>) {
fn reveal_entry_for_selection(&mut self, editor: View<Editor>, cx: &mut ViewContext<Self>) {
if !self.active || !OutlinePanelSettings::get_global(cx).auto_reveal_entries {
return;
}
@ -2656,7 +2656,7 @@ impl OutlinePanel {
self.clear_previous(cx);
let buffer_search_subscription = cx.subscribe(
&new_active_editor,
|outline_panel: &mut Self, _, e: &SearchEvent, cx: &mut ViewContext<'_, Self>| {
|outline_panel: &mut Self, _, e: &SearchEvent, cx: &mut ViewContext<Self>| {
if matches!(e, SearchEvent::MatchesInvalidated) {
outline_panel.update_search_matches(cx);
};
@ -2675,7 +2675,7 @@ impl OutlinePanel {
self.update_fs_entries(new_active_editor, None, cx);
}
fn clear_previous(&mut self, cx: &mut WindowContext<'_>) {
fn clear_previous(&mut self, cx: &mut WindowContext) {
self.fs_entries_update_task = Task::ready(());
self.outline_fetch_tasks.clear();
self.cached_entries_update_task = Task::ready(());
@ -3124,7 +3124,7 @@ impl OutlinePanel {
&self,
is_singleton: bool,
query: Option<String>,
cx: &mut ViewContext<'_, Self>,
cx: &mut ViewContext<Self>,
) -> Task<(Vec<CachedEntry>, Option<usize>)> {
let project = self.project.clone();
let Some(active_editor) = self.active_editor() else {
@ -4078,7 +4078,7 @@ impl OutlinePanel {
query: Option<String>,
show_indent_guides: bool,
indent_size: f32,
cx: &mut ViewContext<'_, Self>,
cx: &mut ViewContext<Self>,
) -> Div {
let contents = if self.cached_entries.is_empty() {
let header = if self.updating_fs_entries {
@ -4266,7 +4266,7 @@ impl OutlinePanel {
v_flex().w_full().flex_1().overflow_hidden().child(contents)
}
fn render_filter_footer(&mut self, pinned: bool, cx: &mut ViewContext<'_, Self>) -> Div {
fn render_filter_footer(&mut self, pinned: bool, cx: &mut ViewContext<Self>) -> Div {
v_flex().flex_none().child(horizontal_separator(cx)).child(
h_flex()
.p_2()

View file

@ -16,7 +16,7 @@ pub(crate) enum Head {
impl Head {
pub fn editor<V: 'static>(
placeholder_text: Arc<str>,
edit_handler: impl FnMut(&mut V, View<Editor>, &EditorEvent, &mut ViewContext<'_, V>) + 'static,
edit_handler: impl FnMut(&mut V, View<Editor>, &EditorEvent, &mut ViewContext<V>) + 'static,
cx: &mut ViewContext<V>,
) -> Self {
let editor = cx.new_view(|cx| {
@ -29,7 +29,7 @@ impl Head {
}
pub fn empty<V: 'static>(
blur_handler: impl FnMut(&mut V, &mut ViewContext<'_, V>) + 'static,
blur_handler: impl FnMut(&mut V, &mut ViewContext<V>) + 'static,
cx: &mut ViewContext<V>,
) -> Self {
let head = cx.new_view(EmptyHead::new);

View file

@ -425,7 +425,7 @@ impl<D: PickerDelegate> Picker<D> {
self.cancel(&menu::Cancel, cx);
}
pub fn refresh_placeholder(&mut self, cx: &mut WindowContext<'_>) {
pub fn refresh_placeholder(&mut self, cx: &mut WindowContext) {
match &self.head {
Head::Editor(view) => {
let placeholder = self.delegate.placeholder_text(cx);
@ -493,7 +493,7 @@ impl<D: PickerDelegate> Picker<D> {
}
}
pub fn set_query(&self, query: impl Into<Arc<str>>, cx: &mut WindowContext<'_>) {
pub fn set_query(&self, query: impl Into<Arc<str>>, cx: &mut WindowContext) {
if let Head::Editor(ref editor) = &self.head {
editor.update(cx, |editor, cx| {
editor.set_text(query, cx);

View file

@ -1209,7 +1209,7 @@ impl ProjectPanel {
self.remove(false, action.skip_prompt, cx);
}
fn remove(&mut self, trash: bool, skip_prompt: bool, cx: &mut ViewContext<'_, ProjectPanel>) {
fn remove(&mut self, trash: bool, skip_prompt: bool, cx: &mut ViewContext<ProjectPanel>) {
maybe!({
let items_to_delete = self.disjoint_entries(cx);
if items_to_delete.is_empty() {
@ -3705,7 +3705,7 @@ impl ProjectPanel {
project: Model<Project>,
entry_id: ProjectEntryId,
skip_ignored: bool,
cx: &mut ViewContext<'_, Self>,
cx: &mut ViewContext<Self>,
) {
if let Some(worktree) = project.read(cx).worktree_for_entry(entry_id, cx) {
let worktree = worktree.read(cx);

View file

@ -61,7 +61,7 @@ struct CreateRemoteServer {
}
impl CreateRemoteServer {
fn new(cx: &mut WindowContext<'_>) -> Self {
fn new(cx: &mut WindowContext) -> Self {
let address_editor = cx.new_view(Editor::single_line);
address_editor.update(cx, |this, cx| {
this.focus_handle(cx).focus(cx);
@ -88,7 +88,7 @@ struct EditNicknameState {
}
impl EditNicknameState {
fn new(index: usize, cx: &mut WindowContext<'_>) -> Self {
fn new(index: usize, cx: &mut WindowContext) -> Self {
let this = Self {
index,
editor: cx.new_view(Editor::single_line),
@ -264,7 +264,7 @@ struct DefaultState {
servers: Vec<ProjectEntry>,
}
impl DefaultState {
fn new(cx: &WindowContext<'_>) -> Self {
fn new(cx: &WindowContext) -> Self {
let handle = ScrollHandle::new();
let scrollbar = ScrollbarState::new(handle.clone());
let add_new_server = NavigableEntry::new(&handle, cx);
@ -309,7 +309,7 @@ enum Mode {
}
impl Mode {
fn default_mode(cx: &WindowContext<'_>) -> Self {
fn default_mode(cx: &WindowContext) -> Self {
Self::Default(DefaultState::new(cx))
}
}
@ -1003,7 +1003,7 @@ impl RemoteServerProjects {
fn callback(
workspace: WeakView<Workspace>,
connection_string: SharedString,
cx: &mut WindowContext<'_>,
cx: &mut WindowContext,
) {
cx.write_to_clipboard(ClipboardItem::new_string(
connection_string.to_string(),
@ -1069,7 +1069,7 @@ impl RemoteServerProjects {
remote_servers: View<RemoteServerProjects>,
index: usize,
connection_string: SharedString,
cx: &mut WindowContext<'_>,
cx: &mut WindowContext,
) {
let prompt_message =
format!("Remove server `{}`?", connection_string);

View file

@ -1254,7 +1254,7 @@ impl ProjectSearchView {
fn buffer_search_query(
workspace: &mut Workspace,
item: &dyn ItemHandle,
cx: &mut ViewContext<'_, Workspace>,
cx: &mut ViewContext<Workspace>,
) -> Option<String> {
let buffer_search_bar = workspace
.pane_for(item)

View file

@ -196,7 +196,7 @@ impl ProjectIndexDebugView {
}
impl Render for ProjectIndexDebugView {
fn render(&mut self, cx: &mut gpui::ViewContext<'_, Self>) -> impl IntoElement {
fn render(&mut self, cx: &mut gpui::ViewContext<Self>) -> impl IntoElement {
if let Some(selected_path) = self.selected_path.as_ref() {
v_flex()
.child(

View file

@ -253,7 +253,7 @@ impl TabSwitcherDelegate {
fn select_item(
&mut self,
item_id: EntityId,
cx: &mut ViewContext<'_, Picker<TabSwitcherDelegate>>,
cx: &mut ViewContext<Picker<TabSwitcherDelegate>>,
) {
let selected_idx = self
.matches
@ -263,7 +263,7 @@ impl TabSwitcherDelegate {
self.set_selected_index(selected_idx, cx);
}
fn close_item_at(&mut self, ix: usize, cx: &mut ViewContext<'_, Picker<TabSwitcherDelegate>>) {
fn close_item_at(&mut self, ix: usize, cx: &mut ViewContext<Picker<TabSwitcherDelegate>>) {
let Some(tab_match) = self.matches.get(ix) else {
return;
};

View file

@ -105,7 +105,7 @@ fn spawn_task_or_modal(workspace: &mut Workspace, action: &Spawn, cx: &mut ViewC
fn toggle_modal(
workspace: &mut Workspace,
reveal_target: Option<RevealTarget>,
cx: &mut ViewContext<'_, Workspace>,
cx: &mut ViewContext<Workspace>,
) -> AsyncTask<()> {
let task_store = workspace.project().read(cx).task_store().clone();
let workspace_handle = workspace.weak_handle();

View file

@ -143,7 +143,7 @@ fn populate_pane_items(
pane: &mut Pane,
items: Vec<View<TerminalView>>,
active_item: Option<u64>,
cx: &mut ViewContext<'_, Pane>,
cx: &mut ViewContext<Pane>,
) {
let mut item_index = pane.items_len();
for item in items {

View file

@ -867,7 +867,7 @@ impl Element for TerminalElement {
bounds: Bounds<Pixels>,
_: &mut Self::RequestLayoutState,
layout: &mut Self::PrepaintState,
cx: &mut WindowContext<'_>,
cx: &mut WindowContext,
) {
cx.with_content_mask(Some(ContentMask { bounds }), |cx| {
let scroll_top = self.terminal_view.read(cx).scroll_top;

View file

@ -824,7 +824,7 @@ impl TerminalPanel {
task_pane: View<Pane>,
terminal_item_index: usize,
terminal_to_replace: View<TerminalView>,
cx: &mut ViewContext<'_, Self>,
cx: &mut ViewContext<Self>,
) -> Task<Option<()>> {
let reveal = spawn_task.reveal;
let reveal_target = spawn_task.reveal_target;
@ -1122,7 +1122,7 @@ async fn wait_for_terminals_tasks(
let _: Vec<()> = join_all(pending_tasks).await;
}
fn add_paths_to_terminal(pane: &mut Pane, paths: &[PathBuf], cx: &mut ViewContext<'_, Pane>) {
fn add_paths_to_terminal(pane: &mut Pane, paths: &[PathBuf], cx: &mut ViewContext<Pane>) {
if let Some(terminal_view) = pane
.active_item()
.and_then(|item| item.downcast::<TerminalView>())

View file

@ -606,7 +606,7 @@ impl TerminalView {
dispatch_context
}
fn set_terminal(&mut self, terminal: Model<Terminal>, cx: &mut ViewContext<'_, TerminalView>) {
fn set_terminal(&mut self, terminal: Model<Terminal>, cx: &mut ViewContext<TerminalView>) {
self._terminal_subscriptions =
subscribe_for_terminal_events(&terminal, self.workspace.clone(), cx);
self.terminal = terminal;
@ -616,7 +616,7 @@ impl TerminalView {
fn subscribe_for_terminal_events(
terminal: &Model<Terminal>,
workspace: WeakView<Workspace>,
cx: &mut ViewContext<'_, TerminalView>,
cx: &mut ViewContext<TerminalView>,
) -> Vec<Subscription> {
let terminal_subscription = cx.observe(terminal, |_, _, cx| cx.notify());
let terminal_events_subscription =

View file

@ -60,7 +60,7 @@ impl ApplicationMenu {
cleaned
}
fn build_menu_from_items(entry: MenuEntry, cx: &mut WindowContext<'_>) -> View<ContextMenu> {
fn build_menu_from_items(entry: MenuEntry, cx: &mut WindowContext) -> View<ContextMenu> {
ContextMenu::build(cx, |menu, cx| {
let menu = menu.when_some(cx.focused(), |menu, focused| menu.context(focused));
let sanitized_items = Self::sanitize_menu_items(entry.menu.items);
@ -150,7 +150,7 @@ impl ApplicationMenu {
// Defer to prevent focus race condition with the previously open menu
let handle = current_handle.clone();
cx.defer(move |w| handle.show(w));
cx.defer(move |cx| handle.show(cx));
}
})
}

View file

@ -18,14 +18,14 @@ pub struct NavigableEntry {
impl NavigableEntry {
/// Creates a new [NavigableEntry] for a given scroll handle.
pub fn new(scroll_handle: &ScrollHandle, cx: &WindowContext<'_>) -> Self {
pub fn new(scroll_handle: &ScrollHandle, cx: &WindowContext) -> Self {
Self {
focus_handle: cx.focus_handle(),
scroll_anchor: Some(ScrollAnchor::for_handle(scroll_handle.clone())),
}
}
/// Create a new [NavigableEntry] that cannot be scrolled to.
pub fn focusable(cx: &WindowContext<'_>) -> Self {
pub fn focusable(cx: &WindowContext) -> Self {
Self {
focus_handle: cx.focus_handle(),
scroll_anchor: None,
@ -51,7 +51,7 @@ impl Navigable {
fn find_focused(
selectable_children: &[NavigableEntry],
cx: &mut WindowContext<'_>,
cx: &mut WindowContext,
) -> Option<usize> {
selectable_children
.iter()
@ -59,7 +59,7 @@ impl Navigable {
}
}
impl RenderOnce for Navigable {
fn render(self, _: &mut WindowContext<'_>) -> impl crate::IntoElement {
fn render(self, _: &mut WindowContext) -> impl crate::IntoElement {
div()
.on_action({
let children = self.selectable_children.clone();

View file

@ -1942,7 +1942,7 @@ impl Pane {
}
}
fn toggle_pin_tab(&mut self, _: &TogglePinTab, cx: &mut ViewContext<'_, Self>) {
fn toggle_pin_tab(&mut self, _: &TogglePinTab, cx: &mut ViewContext<Self>) {
if self.items.is_empty() {
return;
}
@ -1954,7 +1954,7 @@ impl Pane {
}
}
fn pin_tab_at(&mut self, ix: usize, cx: &mut ViewContext<'_, Self>) {
fn pin_tab_at(&mut self, ix: usize, cx: &mut ViewContext<Self>) {
maybe!({
let pane = cx.view().clone();
let destination_index = self.pinned_tab_count.min(ix);
@ -1971,7 +1971,7 @@ impl Pane {
});
}
fn unpin_tab_at(&mut self, ix: usize, cx: &mut ViewContext<'_, Self>) {
fn unpin_tab_at(&mut self, ix: usize, cx: &mut ViewContext<Self>) {
maybe!({
let pane = cx.view().clone();
self.pinned_tab_count = self.pinned_tab_count.checked_sub(1)?;
@ -2003,7 +2003,7 @@ impl Pane {
item: &dyn ItemHandle,
detail: usize,
focus_handle: &FocusHandle,
cx: &mut ViewContext<'_, Pane>,
cx: &mut ViewContext<Pane>,
) -> impl IntoElement {
let is_active = ix == self.active_item_index;
let is_preview = self
@ -2416,7 +2416,7 @@ impl Pane {
})
}
fn render_tab_bar(&mut self, cx: &mut ViewContext<'_, Pane>) -> impl IntoElement {
fn render_tab_bar(&mut self, cx: &mut ViewContext<Pane>) -> impl IntoElement {
let focus_handle = self.focus_handle.clone();
let navigate_backward = IconButton::new("navigate_backward", IconName::ArrowLeft)
.icon_size(IconSize::Small)
@ -2592,12 +2592,7 @@ impl Pane {
}
}
fn handle_tab_drop(
&mut self,
dragged_tab: &DraggedTab,
ix: usize,
cx: &mut ViewContext<'_, Self>,
) {
fn handle_tab_drop(&mut self, dragged_tab: &DraggedTab, ix: usize, cx: &mut ViewContext<Self>) {
if let Some(custom_drop_handle) = self.custom_drop_handle.clone() {
if let ControlFlow::Break(()) = custom_drop_handle(self, dragged_tab, cx) {
return;
@ -2663,7 +2658,7 @@ impl Pane {
&mut self,
dragged_selection: &DraggedSelection,
dragged_onto: Option<usize>,
cx: &mut ViewContext<'_, Self>,
cx: &mut ViewContext<Self>,
) {
if let Some(custom_drop_handle) = self.custom_drop_handle.clone() {
if let ControlFlow::Break(()) = custom_drop_handle(self, dragged_selection, cx) {
@ -2681,7 +2676,7 @@ impl Pane {
&mut self,
project_entry_id: &ProjectEntryId,
target: Option<usize>,
cx: &mut ViewContext<'_, Self>,
cx: &mut ViewContext<Self>,
) {
if let Some(custom_drop_handle) = self.custom_drop_handle.clone() {
if let ControlFlow::Break(()) = custom_drop_handle(self, project_entry_id, cx) {
@ -2746,11 +2741,7 @@ impl Pane {
.log_err();
}
fn handle_external_paths_drop(
&mut self,
paths: &ExternalPaths,
cx: &mut ViewContext<'_, Self>,
) {
fn handle_external_paths_drop(&mut self, paths: &ExternalPaths, cx: &mut ViewContext<Self>) {
if let Some(custom_drop_handle) = self.custom_drop_handle.clone() {
if let ControlFlow::Break(()) = custom_drop_handle(self, paths, cx) {
return;

View file

@ -11,7 +11,7 @@ pub fn schedule_task(
task_to_resolve: &TaskTemplate,
task_cx: &TaskContext,
omit_history: bool,
cx: &mut ViewContext<'_, Workspace>,
cx: &mut ViewContext<Workspace>,
) {
match workspace.project.read(cx).ssh_connection_state(cx) {
None | Some(ConnectionState::Connected) => {}
@ -44,7 +44,7 @@ pub fn schedule_resolved_task(
task_source_kind: TaskSourceKind,
mut resolved_task: ResolvedTask,
omit_history: bool,
cx: &mut ViewContext<'_, Workspace>,
cx: &mut ViewContext<Workspace>,
) {
if let Some(spawn_in_terminal) = resolved_task.resolved.take() {
if !omit_history {

View file

@ -1706,11 +1706,11 @@ impl Workspace {
cx.defer(|cx| {
cx.windows().iter().find(|window| {
window
.update(cx, |_, window| {
if window.is_window_active() {
.update(cx, |_, cx| {
if cx.is_window_active() {
//This can only get called when the window's project connection has been lost
//so we don't need to prompt the user for anything and instead just close the window
window.remove_window();
cx.remove_window();
true
} else {
false
@ -4561,7 +4561,7 @@ impl Workspace {
div
}
pub fn has_active_modal(&self, cx: &WindowContext<'_>) -> bool {
pub fn has_active_modal(&self, cx: &WindowContext) -> bool {
self.modal_layer.read(cx).has_active_modal()
}
@ -5018,7 +5018,7 @@ impl Render for Workspace {
fn resize_bottom_dock(
new_size: Pixels,
workspace: &mut Workspace,
cx: &mut ViewContext<'_, Workspace>,
cx: &mut ViewContext<Workspace>,
) {
let size = new_size.min(workspace.bounds.bottom() - RESIZE_HANDLE_SIZE);
workspace.bottom_dock.update(cx, |bottom_dock, cx| {
@ -5026,22 +5026,14 @@ fn resize_bottom_dock(
});
}
fn resize_right_dock(
new_size: Pixels,
workspace: &mut Workspace,
cx: &mut ViewContext<'_, Workspace>,
) {
fn resize_right_dock(new_size: Pixels, workspace: &mut Workspace, cx: &mut ViewContext<Workspace>) {
let size = new_size.max(workspace.bounds.left() - RESIZE_HANDLE_SIZE);
workspace.right_dock.update(cx, |right_dock, cx| {
right_dock.resize_active_panel(Some(size), cx);
});
}
fn resize_left_dock(
new_size: Pixels,
workspace: &mut Workspace,
cx: &mut ViewContext<'_, Workspace>,
) {
fn resize_left_dock(new_size: Pixels, workspace: &mut Workspace, cx: &mut ViewContext<Workspace>) {
let size = new_size.min(workspace.bounds.right() - RESIZE_HANDLE_SIZE);
workspace.left_dock.update(cx, |left_dock, cx| {
@ -6149,7 +6141,7 @@ fn resize_edge(
}
}
fn join_pane_into_active(active_pane: &View<Pane>, pane: &View<Pane>, cx: &mut WindowContext<'_>) {
fn join_pane_into_active(active_pane: &View<Pane>, pane: &View<Pane>, cx: &mut WindowContext) {
if pane == active_pane {
return;
} else if pane.read(cx).items_len() == 0 {
@ -6163,7 +6155,7 @@ fn join_pane_into_active(active_pane: &View<Pane>, pane: &View<Pane>, cx: &mut W
}
}
fn move_all_items(from_pane: &View<Pane>, to_pane: &View<Pane>, cx: &mut WindowContext<'_>) {
fn move_all_items(from_pane: &View<Pane>, to_pane: &View<Pane>, cx: &mut WindowContext) {
let destination_is_different = from_pane != to_pane;
let mut moved_items = 0;
for (item_ix, item_handle) in from_pane
@ -6195,7 +6187,7 @@ pub fn move_item(
destination: &View<Pane>,
item_id_to_move: EntityId,
destination_index: usize,
cx: &mut WindowContext<'_>,
cx: &mut WindowContext,
) {
let Some((item_ix, item_handle)) = source
.read(cx)
@ -6227,7 +6219,7 @@ pub fn move_active_item(
destination: &View<Pane>,
focus_destination: bool,
close_if_empty: bool,
cx: &mut WindowContext<'_>,
cx: &mut WindowContext,
) {
if source == destination {
return;