editor: Update CompletionProvider return type. (#1270)

This commit is contained in:
Jason Lee 2025-09-22 14:31:21 +08:00 committed by GitHub
parent aa0f6d6222
commit 62748aad9b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 8 additions and 12 deletions

View file

@ -194,10 +194,10 @@ impl CompletionProvider for ExampleLspStore {
trigger: CompletionContext,
_: &mut Window,
cx: &mut Context<InputState>,
) -> Task<Result<Vec<CompletionResponse>>> {
) -> Task<Result<CompletionResponse>> {
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::<Vec<_>>();
let responses = vec![CompletionResponse::Array(items)];
Ok(responses)
Ok(CompletionResponse::Array(items))
})
}

View file

@ -23,7 +23,7 @@ pub trait CompletionProvider {
trigger: CompletionContext,
window: &mut Window,
cx: &mut Context<InputState>,
) -> Task<Result<Vec<CompletionResponse>>>;
) -> Task<Result<CompletionResponse>>;
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<CompletionItem> = 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),
}
}