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/completion/preselect.rs | |
parent | 195ca7e0c377d83455867bdd8e409d4e1cf024ea (diff) |
CTAN sync 202005280303
Diffstat (limited to 'support/texlab/src/completion/preselect.rs')
-rw-r--r-- | support/texlab/src/completion/preselect.rs | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/support/texlab/src/completion/preselect.rs b/support/texlab/src/completion/preselect.rs deleted file mode 100644 index dd4265f5c6..0000000000 --- a/support/texlab/src/completion/preselect.rs +++ /dev/null @@ -1,55 +0,0 @@ -use crate::range::RangeExt; -use crate::syntax::*; -use crate::workspace::*; -use futures_boxed::boxed; -use lsp_types::{CompletionItem, CompletionParams}; - -#[derive(Debug)] -pub struct PreselectCompletionProvider<F> { - provider: F, -} - -impl<F> PreselectCompletionProvider<F> { - pub fn new(provider: F) -> Self { - Self { provider } - } -} - -impl<F> FeatureProvider for PreselectCompletionProvider<F> -where - F: FeatureProvider<Params = CompletionParams, Output = Vec<CompletionItem>> + Send + Sync, -{ - type Params = CompletionParams; - type Output = Vec<CompletionItem>; - - #[boxed] - async fn execute<'a>(&'a self, request: &'a FeatureRequest<Self::Params>) -> Self::Output { - let mut items = self.provider.execute(request).await; - if let SyntaxTree::Latex(tree) = &request.document().tree { - for environment in &tree.env.environments { - if let Some(name) = environment.left.name() { - let right_args = &environment.right.command.args[0]; - let cond1 = right_args - .range() - .contains_exclusive(request.params.text_document_position.position); - let cond2 = right_args.right.is_none() - && right_args - .range() - .contains(request.params.text_document_position.position); - - if cond1 || cond2 { - for item in &mut items { - item.preselect = Some(false); - if item.label == name.text() { - item.preselect = Some(true); - break; - } - } - } - } - } - } - - items - } -} |