assistant: Clean up completion building in /docs command (#13877)

This PR cleans up the building of completions in the `/docs` command a
bit after #13876.

Release Notes:

- N/A
This commit is contained in:
Marshall Bowers 2024-07-05 13:42:27 -04:00 committed by GitHub
parent 68accaeb00
commit 950e7e5414
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -104,12 +104,7 @@ impl SlashCommand for DocsSlashCommand {
.ok_or_else(|| anyhow!("no docs provider specified"))
.and_then(|provider| IndexedDocsStore::try_global(provider, cx));
cx.background_executor().spawn(async move {
/// HACK: Prefixes the completions with the provider ID so that it doesn't get deleted
/// when a completion is accepted.
///
/// We will likely want to extend `complete_argument` with support for replacing just
/// a particular range of the argument when a completion is accepted.
fn prefix_with_provider(
fn build_completions(
provider: ProviderId,
items: Vec<String>,
) -> Vec<ArgumentCompletion> {
@ -149,7 +144,7 @@ impl SlashCommand for DocsSlashCommand {
}
let items = store.search(package).await;
Ok(prefix_with_provider(provider, items))
Ok(build_completions(provider, items))
}
DocsSlashCommandArgs::SearchItemDocs {
provider,
@ -158,7 +153,7 @@ impl SlashCommand for DocsSlashCommand {
} => {
let store = store?;
let items = store.search(item_path).await;
Ok(prefix_with_provider(provider, items))
Ok(build_completions(provider, items))
}
}
})