diff --git a/crates/editor/src/code_context_menus.rs b/crates/editor/src/code_context_menus.rs index e9642657f8b7cba328bce0413e09d29ebbc9cfd4..291c03422def426054457c04ab8c9e4e710112a7 100644 --- a/crates/editor/src/code_context_menus.rs +++ b/crates/editor/src/code_context_menus.rs @@ -1205,7 +1205,7 @@ impl CodeActionContents { tasks_len + code_actions_len + self.debug_scenarios.len() } - fn is_empty(&self) -> bool { + pub fn is_empty(&self) -> bool { self.len() == 0 } diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index ddecdcabcff11b411a01b66be31271b04057d945..ffb08e4290e6eb359e011e4a1e817abb247be33a 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -5976,15 +5976,23 @@ impl Editor { editor.update_in(cx, |editor, window, cx| { crate::hover_popover::hide_hover(editor, cx); + let actions = CodeActionContents::new( + resolved_tasks, + code_actions, + debug_scenarios, + task_context.unwrap_or_default(), + ); + + // Don't show the menu if there are no actions available + if actions.is_empty() { + cx.notify(); + return Task::ready(Ok(())); + } + *editor.context_menu.borrow_mut() = Some(CodeContextMenu::CodeActions(CodeActionsMenu { buffer, - actions: CodeActionContents::new( - resolved_tasks, - code_actions, - debug_scenarios, - task_context.unwrap_or_default(), - ), + actions, selected_item: Default::default(), scroll_handle: UniformListScrollHandle::default(), deployed_from,