From 62748aad9bad2bb2db085f3c55fada490e991a63 Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Mon, 22 Sep 2025 14:31:21 +0800 Subject: [PATCH] editor: Update CompletionProvider return type. (#1270) --- crates/story/examples/editor.rs | 10 ++++------ crates/ui/src/input/lsp/completions.rs | 10 ++++------ 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/crates/story/examples/editor.rs b/crates/story/examples/editor.rs index dfb516ad..cf8a2ea3 100644 --- a/crates/story/examples/editor.rs +++ b/crates/story/examples/editor.rs @@ -194,10 +194,10 @@ impl CompletionProvider for ExampleLspStore { trigger: CompletionContext, _: &mut Window, cx: &mut Context, - ) -> Task>> { + ) -> Task> { let trigger_character = trigger.trigger_character.unwrap_or_default(); if trigger_character.is_empty() { - return Task::ready(Ok(vec![])); + return Task::ready(Ok(CompletionResponse::Array(vec![]))); } // Simulate to delay for fetching completions @@ -232,7 +232,7 @@ impl CompletionProvider for ExampleLspStore { completion_item(&range, "/sad", "😢", "Insert 😢"), completion_item(&range, "/launch", "🚀", "Insert 🚀"), ]; - return Ok(vec![CompletionResponse::Array(items)]); + return Ok(CompletionResponse::Array(items)); } let items = items @@ -246,9 +246,7 @@ impl CompletionProvider for ExampleLspStore { }) .collect::>(); - let responses = vec![CompletionResponse::Array(items)]; - - Ok(responses) + Ok(CompletionResponse::Array(items)) }) } diff --git a/crates/ui/src/input/lsp/completions.rs b/crates/ui/src/input/lsp/completions.rs index 55b7d677..4946d2ee 100644 --- a/crates/ui/src/input/lsp/completions.rs +++ b/crates/ui/src/input/lsp/completions.rs @@ -23,7 +23,7 @@ pub trait CompletionProvider { trigger: CompletionContext, window: &mut Window, cx: &mut Context, - ) -> Task>>; + ) -> Task>; fn resolve_completions( &self, @@ -111,11 +111,9 @@ impl InputState { self._context_menu_task = cx.spawn_in(window, async move |editor, cx| { let mut completions: Vec = vec![]; if let Some(provider_responses) = provider_responses.await.ok() { - for resp in provider_responses { - match resp { - CompletionResponse::Array(items) => completions.extend(items), - CompletionResponse::List(list) => completions.extend(list.items), - } + match provider_responses { + CompletionResponse::Array(items) => completions.extend(items), + CompletionResponse::List(list) => completions.extend(list.items), } }