Skip to main content

Mountain/RPC/CocoonService/Provider/
ProvideWorkspaceSymbols.rs

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