diff --git a/crates/agent_ui/src/agent_configuration/tool_picker.rs b/crates/agent_ui/src/agent_configuration/tool_picker.rs index 25947a1e58..2ba92fa6b7 100644 --- a/crates/agent_ui/src/agent_configuration/tool_picker.rs +++ b/crates/agent_ui/src/agent_configuration/tool_picker.rs @@ -318,7 +318,7 @@ impl PickerDelegate for ToolPickerDelegate { _window: &mut Window, cx: &mut Context>, ) -> Option { - let item = &self.filtered_items[ix]; + let item = &self.filtered_items.get(ix)?; match item { PickerItem::ContextServer { server_id, .. } => Some( div() diff --git a/crates/agent_ui/src/context_picker/file_context_picker.rs b/crates/agent_ui/src/context_picker/file_context_picker.rs index 6c224caf4c..43b1fa5e92 100644 --- a/crates/agent_ui/src/context_picker/file_context_picker.rs +++ b/crates/agent_ui/src/context_picker/file_context_picker.rs @@ -160,7 +160,7 @@ impl PickerDelegate for FileContextPickerDelegate { _window: &mut Window, cx: &mut Context>, ) -> Option { - let FileMatch { mat, .. } = &self.matches[ix]; + let FileMatch { mat, .. } = &self.matches.get(ix)?; Some( ListItem::new(ix) diff --git a/crates/agent_ui/src/context_picker/rules_context_picker.rs b/crates/agent_ui/src/context_picker/rules_context_picker.rs index f3982f61cb..677011577a 100644 --- a/crates/agent_ui/src/context_picker/rules_context_picker.rs +++ b/crates/agent_ui/src/context_picker/rules_context_picker.rs @@ -146,7 +146,7 @@ impl PickerDelegate for RulesContextPickerDelegate { _window: &mut Window, cx: &mut Context>, ) -> Option { - let thread = &self.matches[ix]; + let thread = &self.matches.get(ix)?; Some(ListItem::new(ix).inset(true).toggle_state(selected).child( render_thread_context_entry(thread, self.context_store.clone(), cx), diff --git a/crates/agent_ui/src/context_picker/symbol_context_picker.rs b/crates/agent_ui/src/context_picker/symbol_context_picker.rs index b00d4e3693..993d65bd12 100644 --- a/crates/agent_ui/src/context_picker/symbol_context_picker.rs +++ b/crates/agent_ui/src/context_picker/symbol_context_picker.rs @@ -169,7 +169,7 @@ impl PickerDelegate for SymbolContextPickerDelegate { _window: &mut Window, _: &mut Context>, ) -> Option { - let mat = &self.matches[ix]; + let mat = &self.matches.get(ix)?; Some(ListItem::new(ix).inset(true).toggle_state(selected).child( render_symbol_context_entry(ElementId::named_usize("symbol-ctx-picker", ix), mat), diff --git a/crates/agent_ui/src/context_picker/thread_context_picker.rs b/crates/agent_ui/src/context_picker/thread_context_picker.rs index 66654f3d8c..9e843779c2 100644 --- a/crates/agent_ui/src/context_picker/thread_context_picker.rs +++ b/crates/agent_ui/src/context_picker/thread_context_picker.rs @@ -220,7 +220,7 @@ impl PickerDelegate for ThreadContextPickerDelegate { _window: &mut Window, cx: &mut Context>, ) -> Option { - let thread = &self.matches[ix]; + let thread = &self.matches.get(ix)?; Some(ListItem::new(ix).inset(true).toggle_state(selected).child( render_thread_context_entry(thread, self.context_store.clone(), cx), diff --git a/crates/collab_ui/src/collab_panel/contact_finder.rs b/crates/collab_ui/src/collab_panel/contact_finder.rs index 3c23ccc017..e5823d0e78 100644 --- a/crates/collab_ui/src/collab_panel/contact_finder.rs +++ b/crates/collab_ui/src/collab_panel/contact_finder.rs @@ -148,7 +148,7 @@ impl PickerDelegate for ContactFinderDelegate { _: &mut Window, cx: &mut Context>, ) -> Option { - let user = &self.potential_contacts[ix]; + let user = &self.potential_contacts.get(ix)?; let request_status = self.user_store.read(cx).contact_request_status(user); let icon_path = match request_status { diff --git a/crates/debugger_ui/src/attach_modal.rs b/crates/debugger_ui/src/attach_modal.rs index 3e3bc3ec27..8926b3bb6f 100644 --- a/crates/debugger_ui/src/attach_modal.rs +++ b/crates/debugger_ui/src/attach_modal.rs @@ -289,7 +289,7 @@ impl PickerDelegate for AttachModalDelegate { _window: &mut Window, _: &mut Context>, ) -> Option { - let hit = &self.matches[ix]; + let hit = &self.matches.get(ix)?; let candidate = self.candidates.get(hit.candidate_id)?; Some( diff --git a/crates/debugger_ui/src/new_process_modal.rs b/crates/debugger_ui/src/new_process_modal.rs index efa5e4700a..eeed36ac1d 100644 --- a/crates/debugger_ui/src/new_process_modal.rs +++ b/crates/debugger_ui/src/new_process_modal.rs @@ -1446,7 +1446,7 @@ impl PickerDelegate for DebugDelegate { window: &mut Window, cx: &mut Context>, ) -> Option { - let hit = &self.matches[ix]; + let hit = &self.matches.get(ix)?; let highlighted_location = HighlightedMatch { text: hit.string.clone(), diff --git a/crates/extensions_ui/src/extension_version_selector.rs b/crates/extensions_ui/src/extension_version_selector.rs index aaf5d5e8eb..fe7a419fbe 100644 --- a/crates/extensions_ui/src/extension_version_selector.rs +++ b/crates/extensions_ui/src/extension_version_selector.rs @@ -207,8 +207,8 @@ impl PickerDelegate for ExtensionVersionSelectorDelegate { _: &mut Window, cx: &mut Context>, ) -> Option { - let version_match = &self.matches[ix]; - let extension_version = &self.extension_versions[version_match.candidate_id]; + let version_match = &self.matches.get(ix)?; + let extension_version = &self.extension_versions.get(version_match.candidate_id)?; let is_version_compatible = extension_host::is_version_compatible(ReleaseChannel::global(cx), extension_version); diff --git a/crates/file_finder/src/file_finder.rs b/crates/file_finder/src/file_finder.rs index e2f8d55cf2..53cf0552f2 100644 --- a/crates/file_finder/src/file_finder.rs +++ b/crates/file_finder/src/file_finder.rs @@ -1599,10 +1599,7 @@ impl PickerDelegate for FileFinderDelegate { ) -> Option { let settings = FileFinderSettings::get_global(cx); - let path_match = self - .matches - .get(ix) - .expect("Invalid matches state: no element for index {ix}"); + let path_match = self.matches.get(ix)?; let history_icon = match &path_match { Match::History { .. } => Icon::new(IconName::HistoryRerun) diff --git a/crates/git_ui/src/branch_picker.rs b/crates/git_ui/src/branch_picker.rs index e5bdce7722..42558b7b79 100644 --- a/crates/git_ui/src/branch_picker.rs +++ b/crates/git_ui/src/branch_picker.rs @@ -454,7 +454,7 @@ impl PickerDelegate for BranchListDelegate { _window: &mut Window, cx: &mut Context>, ) -> Option { - let entry = &self.matches[ix]; + let entry = &self.matches.get(ix)?; let (commit_time, author_name, subject) = entry .branch diff --git a/crates/git_ui/src/picker_prompt.rs b/crates/git_ui/src/picker_prompt.rs index 3f1d507c42..9997b0590c 100644 --- a/crates/git_ui/src/picker_prompt.rs +++ b/crates/git_ui/src/picker_prompt.rs @@ -216,7 +216,7 @@ impl PickerDelegate for PickerPromptDelegate { _window: &mut Window, _cx: &mut Context>, ) -> Option { - let hit = &self.matches[ix]; + let hit = &self.matches.get(ix)?; let shortened_option = util::truncate_and_trailoff(&hit.string, self.max_match_length); Some( diff --git a/crates/jj_ui/src/bookmark_picker.rs b/crates/jj_ui/src/bookmark_picker.rs index f6121fb9fc..95c23e73f5 100644 --- a/crates/jj_ui/src/bookmark_picker.rs +++ b/crates/jj_ui/src/bookmark_picker.rs @@ -182,7 +182,7 @@ impl PickerDelegate for BookmarkPickerDelegate { _window: &mut Window, _cx: &mut Context>, ) -> Option { - let entry = &self.matches[ix]; + let entry = &self.matches.get(ix)?; Some( ListItem::new(ix) diff --git a/crates/language_selector/src/language_selector.rs b/crates/language_selector/src/language_selector.rs index f6e2d75015..991cce50ba 100644 --- a/crates/language_selector/src/language_selector.rs +++ b/crates/language_selector/src/language_selector.rs @@ -283,7 +283,7 @@ impl PickerDelegate for LanguageSelectorDelegate { _: &mut Window, cx: &mut Context>, ) -> Option { - let mat = &self.matches[ix]; + let mat = &self.matches.get(ix)?; let (label, language_icon) = self.language_data_for_match(mat, cx); Some( ListItem::new(ix) diff --git a/crates/line_ending_selector/src/line_ending_selector.rs b/crates/line_ending_selector/src/line_ending_selector.rs index 532f0b051d..7f75a1ebe3 100644 --- a/crates/line_ending_selector/src/line_ending_selector.rs +++ b/crates/line_ending_selector/src/line_ending_selector.rs @@ -171,7 +171,7 @@ impl PickerDelegate for LineEndingSelectorDelegate { _: &mut Window, _: &mut Context>, ) -> Option { - let line_ending = self.matches[ix]; + let line_ending = self.matches.get(ix)?; let label = match line_ending { LineEnding::Unix => "LF", LineEnding::Windows => "CRLF", @@ -183,7 +183,7 @@ impl PickerDelegate for LineEndingSelectorDelegate { .toggle_state(selected) .child(Label::new(label)); - if self.line_ending == line_ending { + if &self.line_ending == line_ending { list_item = list_item.end_slot(Icon::new(IconName::Check).color(Color::Muted)); } diff --git a/crates/onboarding/src/base_keymap_picker.rs b/crates/onboarding/src/base_keymap_picker.rs index 79a716cc9e..950ed1d313 100644 --- a/crates/onboarding/src/base_keymap_picker.rs +++ b/crates/onboarding/src/base_keymap_picker.rs @@ -213,7 +213,7 @@ impl PickerDelegate for BaseKeymapSelectorDelegate { _window: &mut Window, _cx: &mut Context>, ) -> Option { - let keymap_match = &self.matches[ix]; + let keymap_match = &self.matches.get(ix)?; Some( ListItem::new(ix) diff --git a/crates/project_symbols/src/project_symbols.rs b/crates/project_symbols/src/project_symbols.rs index ea67499acb..cec7729252 100644 --- a/crates/project_symbols/src/project_symbols.rs +++ b/crates/project_symbols/src/project_symbols.rs @@ -217,8 +217,8 @@ impl PickerDelegate for ProjectSymbolsDelegate { _window: &mut Window, cx: &mut Context>, ) -> Option { - let string_match = &self.matches[ix]; - let symbol = &self.symbols[string_match.candidate_id]; + let string_match = &self.matches.get(ix)?; + let symbol = &self.symbols.get(string_match.candidate_id)?; let syntax_runs = styled_runs_for_code_label(&symbol.label, cx.theme().syntax()); let mut path = symbol.path.path.to_string_lossy(); diff --git a/crates/settings_profile_selector/src/settings_profile_selector.rs b/crates/settings_profile_selector/src/settings_profile_selector.rs index d7ebd6488d..0bba83beaf 100644 --- a/crates/settings_profile_selector/src/settings_profile_selector.rs +++ b/crates/settings_profile_selector/src/settings_profile_selector.rs @@ -257,8 +257,8 @@ impl PickerDelegate for SettingsProfileSelectorDelegate { _: &mut Window, _: &mut Context>, ) -> Option { - let mat = &self.matches[ix]; - let profile_name = &self.profile_names[mat.candidate_id]; + let mat = &self.matches.get(ix)?; + let profile_name = &self.profile_names.get(mat.candidate_id)?; Some( ListItem::new(ix) diff --git a/crates/snippets_ui/src/snippets_ui.rs b/crates/snippets_ui/src/snippets_ui.rs index db76ab6f9a..7f2689f0be 100644 --- a/crates/snippets_ui/src/snippets_ui.rs +++ b/crates/snippets_ui/src/snippets_ui.rs @@ -310,7 +310,7 @@ impl PickerDelegate for ScopeSelectorDelegate { _window: &mut Window, cx: &mut Context>, ) -> Option { - let mat = &self.matches[ix]; + let mat = &self.matches.get(ix)?; let name_label = mat.string.clone(); let scope_name = ScopeName(Cow::Owned( diff --git a/crates/tab_switcher/src/tab_switcher.rs b/crates/tab_switcher/src/tab_switcher.rs index 241642115a..2923ee6dd4 100644 --- a/crates/tab_switcher/src/tab_switcher.rs +++ b/crates/tab_switcher/src/tab_switcher.rs @@ -649,10 +649,7 @@ impl PickerDelegate for TabSwitcherDelegate { window: &mut Window, cx: &mut Context>, ) -> Option { - let tab_match = self - .matches - .get(ix) - .expect("Invalid matches state: no element for index {ix}"); + let tab_match = self.matches.get(ix)?; let params = TabContentParams { detail: Some(tab_match.detail), diff --git a/crates/tasks_ui/src/modal.rs b/crates/tasks_ui/src/modal.rs index 423c28c710..e14b42af2b 100644 --- a/crates/tasks_ui/src/modal.rs +++ b/crates/tasks_ui/src/modal.rs @@ -443,7 +443,7 @@ impl PickerDelegate for TasksModalDelegate { cx: &mut Context>, ) -> Option { let candidates = self.candidates.as_ref()?; - let hit = &self.matches[ix]; + let hit = &self.matches.get(ix)?; let (source_kind, resolved_task) = &candidates.get(hit.candidate_id)?; let template = resolved_task.original_task(); let display_label = resolved_task.display_label(); diff --git a/crates/theme_selector/src/icon_theme_selector.rs b/crates/theme_selector/src/icon_theme_selector.rs index af7abdee62..5b26124079 100644 --- a/crates/theme_selector/src/icon_theme_selector.rs +++ b/crates/theme_selector/src/icon_theme_selector.rs @@ -287,7 +287,7 @@ impl PickerDelegate for IconThemeSelectorDelegate { _window: &mut Window, _cx: &mut Context>, ) -> Option { - let theme_match = &self.matches[ix]; + let theme_match = &self.matches.get(ix)?; Some( ListItem::new(ix) diff --git a/crates/theme_selector/src/theme_selector.rs b/crates/theme_selector/src/theme_selector.rs index 8c48f295dd..8cc450c97f 100644 --- a/crates/theme_selector/src/theme_selector.rs +++ b/crates/theme_selector/src/theme_selector.rs @@ -345,7 +345,7 @@ impl PickerDelegate for ThemeSelectorDelegate { _window: &mut Window, _cx: &mut Context>, ) -> Option { - let theme_match = &self.matches[ix]; + let theme_match = &self.matches.get(ix)?; Some( ListItem::new(ix) diff --git a/crates/toolchain_selector/src/toolchain_selector.rs b/crates/toolchain_selector/src/toolchain_selector.rs index 2f946a6915..3804238634 100644 --- a/crates/toolchain_selector/src/toolchain_selector.rs +++ b/crates/toolchain_selector/src/toolchain_selector.rs @@ -1011,8 +1011,8 @@ impl PickerDelegate for ToolchainSelectorDelegate { _: &mut Window, cx: &mut Context>, ) -> Option { - let mat = &self.matches[ix]; - let (toolchain, scope) = &self.candidates[mat.candidate_id]; + let mat = &self.matches.get(ix)?; + let (toolchain, scope) = &self.candidates.get(mat.candidate_id)?; let label = toolchain.name.clone(); let path = Self::relativize_path(toolchain.path.clone(), &self.worktree_abs_path_root); diff --git a/crates/vim/src/state.rs b/crates/vim/src/state.rs index 8503bffca6..cd9382da46 100644 --- a/crates/vim/src/state.rs +++ b/crates/vim/src/state.rs @@ -1192,10 +1192,7 @@ impl PickerDelegate for RegistersViewDelegate { _: &mut Window, cx: &mut Context>, ) -> Option { - let register_match = self - .matches - .get(ix) - .expect("Invalid matches state: no element for index {ix}"); + let register_match = self.matches.get(ix)?; let mut output = String::new(); let mut runs = Vec::new(); @@ -1584,10 +1581,7 @@ impl PickerDelegate for MarksViewDelegate { _: &mut Window, cx: &mut Context>, ) -> Option { - let mark_match = self - .matches - .get(ix) - .expect("Invalid matches state: no element for index {ix}"); + let mark_match = self.matches.get(ix)?; let mut left_output = String::new(); let mut left_runs = Vec::new();