Skip to main content

Mountain/RPC/CocoonService/Provider/
ProvideWorkspaceSymbols.rs

1//! Forward a workspace-symbols query to the registered provider.
2
3use tonic::{Response, Status};
4use CommonLibrary::LanguageFeature::LanguageFeatureProviderRegistry::LanguageFeatureProviderRegistry;
5
6use crate::{
7	RPC::CocoonService::CocoonServiceImpl,
8	Vine::Generated::{ProvideWorkspaceSymbolsRequest, ProvideWorkspaceSymbolsResponse},
9	dev_log,
10};
11
12pub async fn Fn(
13	Service:&CocoonServiceImpl,
14
15	Request:ProvideWorkspaceSymbolsRequest,
16) -> Result<Response<ProvideWorkspaceSymbolsResponse>, Status> {
17	dev_log!(
18		"cocoon",
19		"[CocoonService] Providing workspace symbols for query: {}",
20		Request.query
21	);
22
23	match Service.environment.ProvideWorkspaceSymbols(Request.query).await {
24		Ok(_) => Ok(Response::new(ProvideWorkspaceSymbolsResponse::default())),
25
26		Err(Error) => Err(Status::internal(format!("Workspace symbols failed: {}", Error))),
27	}
28}