diff options
Diffstat (limited to 'support/texlab/src/reference/mod.rs')
-rw-r--r-- | support/texlab/src/reference/mod.rs | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/support/texlab/src/reference/mod.rs b/support/texlab/src/reference/mod.rs index 120807a9f1..fc4379d394 100644 --- a/support/texlab/src/reference/mod.rs +++ b/support/texlab/src/reference/mod.rs @@ -2,12 +2,15 @@ mod bibtex_entry; mod bibtex_string; mod latex_label; -use self::bibtex_entry::BibtexEntryReferenceProvider; -use self::bibtex_string::BibtexStringReferenceProvider; -use self::latex_label::LatexLabelReferenceProvider; -use crate::workspace::*; -use futures_boxed::boxed; -use lsp_types::{Location, ReferenceParams}; +use self::{ + bibtex_entry::BibtexEntryReferenceProvider, bibtex_string::BibtexStringReferenceProvider, + latex_label::LatexLabelReferenceProvider, +}; +use crate::{ + feature::{ConcatProvider, FeatureProvider, FeatureRequest}, + protocol::{Location, ReferenceParams}, +}; +use async_trait::async_trait; pub struct ReferenceProvider { provider: ConcatProvider<ReferenceParams, Location>, @@ -31,12 +34,12 @@ impl Default for ReferenceProvider { } } +#[async_trait] impl FeatureProvider for ReferenceProvider { type Params = ReferenceParams; type Output = Vec<Location>; - #[boxed] - async fn execute<'a>(&'a self, request: &'a FeatureRequest<ReferenceParams>) -> Vec<Location> { - self.provider.execute(request).await + async fn execute<'a>(&'a self, req: &'a FeatureRequest<Self::Params>) -> Self::Output { + self.provider.execute(req).await } } |