diff options
author | Norbert Preining <norbert@preining.info> | 2020-05-28 03:03:21 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2020-05-28 03:03:21 +0000 |
commit | 745892fbddea56040139108277e728b53fd8fc11 (patch) | |
tree | 15e55e299b38fccdabce8364f1fbf4f02ef37994 /support/texlab/src/definition/mod.rs | |
parent | 195ca7e0c377d83455867bdd8e409d4e1cf024ea (diff) |
CTAN sync 202005280303
Diffstat (limited to 'support/texlab/src/definition/mod.rs')
-rw-r--r-- | support/texlab/src/definition/mod.rs | 32 |
1 files changed, 13 insertions, 19 deletions
diff --git a/support/texlab/src/definition/mod.rs b/support/texlab/src/definition/mod.rs index 9c7ac0145a..08901454fe 100644 --- a/support/texlab/src/definition/mod.rs +++ b/support/texlab/src/definition/mod.rs @@ -1,16 +1,17 @@ mod bibtex_string; mod latex_citation; -mod latex_command; +mod latex_cmd; mod latex_label; -use self::bibtex_string::BibtexStringDefinitionProvider; -use self::latex_citation::LatexCitationDefinitionProvider; -use self::latex_command::LatexCommandDefinitionProvider; -use self::latex_label::LatexLabelDefinitionProvider; -use crate::workspace::*; -use futures_boxed::boxed; -use lsp_types::{Location, LocationLink, TextDocumentPositionParams}; -use serde::{Deserialize, Serialize}; +use self::{ + bibtex_string::BibtexStringDefinitionProvider, latex_citation::LatexCitationDefinitionProvider, + latex_cmd::LatexCommandDefinitionProvider, latex_label::LatexLabelDefinitionProvider, +}; +use crate::{ + feature::{ConcatProvider, FeatureProvider, FeatureRequest}, + protocol::{LocationLink, TextDocumentPositionParams}, +}; +use async_trait::async_trait; pub struct DefinitionProvider { provider: ConcatProvider<TextDocumentPositionParams, LocationLink>, @@ -35,19 +36,12 @@ impl Default for DefinitionProvider { } } +#[async_trait] impl FeatureProvider for DefinitionProvider { type Params = TextDocumentPositionParams; type Output = Vec<LocationLink>; - #[boxed] - async fn execute<'a>(&'a self, request: &'a FeatureRequest<Self::Params>) -> Self::Output { - self.provider.execute(request).await + async fn execute<'a>(&'a self, req: &'a FeatureRequest<Self::Params>) -> Self::Output { + self.provider.execute(req).await } } - -#[serde(untagged)] -#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)] -pub enum DefinitionResponse { - Locations(Vec<Location>), - LocationLinks(Vec<LocationLink>), -} |