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:
parent
9815358bdd
commit
016b5d60e1
41 changed files with 127 additions and 152 deletions
|
@ -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)
|
||||
|
|
|
@ -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),
|
||||
},
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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| {
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
}
|
||||
|
|
|
@ -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 |_| {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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])
|
||||
}
|
||||
|
|
|
@ -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"))
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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>())
|
||||
|
|
|
@ -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 =
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue