summaryrefslogtreecommitdiff
path: root/support/texlab/src/features/completion/user_environment.rs
diff options
context:
space:
mode:
Diffstat (limited to 'support/texlab/src/features/completion/user_environment.rs')
-rw-r--r--support/texlab/src/features/completion/user_environment.rs21
1 files changed, 3 insertions, 18 deletions
diff --git a/support/texlab/src/features/completion/user_environment.rs b/support/texlab/src/features/completion/user_environment.rs
index a1a5701fac..5529143adc 100644
--- a/support/texlab/src/features/completion/user_environment.rs
+++ b/support/texlab/src/features/completion/user_environment.rs
@@ -1,11 +1,7 @@
use cancellation::CancellationToken;
-use cstree::TextRange;
use lsp_types::CompletionParams;
-use crate::{
- features::cursor::CursorContext,
- syntax::{latex, CstNode},
-};
+use crate::features::cursor::CursorContext;
use super::types::{InternalCompletionItem, InternalCompletionItemData};
@@ -16,18 +12,7 @@ pub fn complete_user_environments<'a>(
) -> Option<()> {
cancellation_token.result().ok()?;
- let token = context.cursor.as_latex()?;
- let group = latex::CurlyGroupWord::cast(token.parent())
- .filter(|group| context.is_inside_latex_curly(group))?;
- if !matches!(group.syntax().parent()?.kind(), latex::BEGIN | latex::END) {
- return None;
- }
-
- let range = if token.kind() == latex::WORD {
- token.text_range()
- } else {
- TextRange::empty(context.offset)
- };
+ let (name, range) = context.find_environment_name()?;
for document in &context.request.subset.documents {
if let Some(data) = document.data.as_latex() {
@@ -35,7 +20,7 @@ pub fn complete_user_environments<'a>(
.extras
.environment_names
.iter()
- .filter(|name| name.as_str() != token.text())
+ .filter(|n| n.as_str() != name)
{
cancellation_token.result().ok()?;
items.push(InternalCompletionItem::new(