Skip to main content

CommonLibrary/LanguageFeature/
ProvideWorkspaceSymbols.rs

1//! # ProvideWorkspaceSymbols Effect
2//!
3//! Defines the `ActionEffect` for requesting workspace symbols from a language
4//! feature provider.
5
6use std::sync::Arc;
7
8use serde_json::Value;
9
10use super::LanguageFeatureProviderRegistry::LanguageFeatureProviderRegistry;
11use crate::{Effect::ActionEffect::ActionEffect, Error::CommonError::CommonError};
12
13/// Creates an effect that, when executed, will request workspace symbols.
14pub fn ProvideWorkspaceSymbols(
15	Query:String,
16) -> ActionEffect<Arc<dyn LanguageFeatureProviderRegistry>, CommonError, Option<Value>> {
17	ActionEffect::New(Arc::new(move |Registry:Arc<dyn LanguageFeatureProviderRegistry>| {
18		let QueryClone = Query.clone();
19
20		Box::pin(async move { Registry.ProvideWorkspaceSymbols(QueryClone).await })
21	}))
22}