diff options
Diffstat (limited to 'support/texlab/src/features/completion/glossary_ref.rs')
-rw-r--r-- | support/texlab/src/features/completion/glossary_ref.rs | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/support/texlab/src/features/completion/glossary_ref.rs b/support/texlab/src/features/completion/glossary_ref.rs index 4529129fd7..66d20e46ff 100644 --- a/support/texlab/src/features/completion/glossary_ref.rs +++ b/support/texlab/src/features/completion/glossary_ref.rs @@ -1,5 +1,4 @@ use cancellation::CancellationToken; -use cstree::TextRange; use lsp_types::CompletionParams; use crate::{ @@ -16,15 +15,8 @@ pub fn complete_glossary_entries<'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))?; + let (_, range, group) = context.find_curly_group_word()?; latex::GlossaryEntryReference::cast(group.syntax().parent()?)?; - let range = if token.kind() == latex::WORD { - token.text_range() - } else { - TextRange::empty(context.offset) - }; for document in &context.request.subset.documents { if let Some(data) = document.data.as_latex() { @@ -33,8 +25,8 @@ pub fn complete_glossary_entries<'a>( if let Some(name) = latex::GlossaryEntryDefinition::cast(node) .and_then(|entry| entry.name()) - .and_then(|name| name.word()) - .map(|name| name.text()) + .and_then(|name| name.key()) + .map(|name| name.to_string()) { items.push(InternalCompletionItem::new( range, @@ -42,8 +34,8 @@ pub fn complete_glossary_entries<'a>( )); } else if let Some(name) = latex::AcronymDefinition::cast(node) .and_then(|entry| entry.name()) - .and_then(|name| name.word()) - .map(|name| name.text()) + .and_then(|name| name.key()) + .map(|name| name.to_string()) { items.push(InternalCompletionItem::new( range, |