diff options
Diffstat (limited to 'support/texlab/src/features/symbol/latex.rs')
-rw-r--r-- | support/texlab/src/features/symbol/latex.rs | 29 |
1 files changed, 4 insertions, 25 deletions
diff --git a/support/texlab/src/features/symbol/latex.rs b/support/texlab/src/features/symbol/latex.rs index 81927ab515..8bb5680483 100644 --- a/support/texlab/src/features/symbol/latex.rs +++ b/support/texlab/src/features/symbol/latex.rs @@ -9,7 +9,6 @@ use crate::{ syntax::latex::{self, HasBrack, HasCurly}, util::{ label::{find_caption_by_parent, LabeledFloatKind}, - lang_data::LANGUAGE_DATA, line_index_ext::LineIndexExt, }, Db, @@ -41,17 +40,9 @@ fn visit(db: &dyn Db, document: Document, node: latex::SyntaxNode) -> Vec<Intern .and_then(|name| name.key()) .map(|name| name.to_string()) .and_then(|name| { - if LANGUAGE_DATA - .math_environments - .iter() - .any(|env| env == &name) - { + if db.config().syntax.math_environments.contains(&name) { visit_equation_environment(db, document, node.clone()) - } else if LANGUAGE_DATA - .enum_environments - .iter() - .any(|env| env == &name) - { + } else if db.config().syntax.enum_environments.contains(&name) { visit_enumeration(db, document, node.clone(), &name) } else if let Ok(float_kind) = LabeledFloatKind::from_str(&name) { visit_float(db, document, node.clone(), float_kind) @@ -86,7 +77,6 @@ fn visit_section( ) -> Option<InternalSymbol> { let section = latex::Section::cast(node)?; let full_range = document - .contents(db) .line_index(db) .line_col_lsp_range(latex::small_range(§ion)); @@ -133,6 +123,7 @@ fn visit_enum_item( document: Document, node: latex::SyntaxNode, ) -> Option<InternalSymbol> { + let enum_envs = &db.config().syntax.enum_environments; let enum_item = latex::EnumItem::cast(node.clone())?; if !enum_item .syntax() @@ -141,18 +132,12 @@ fn visit_enum_item( .filter_map(|environment| environment.begin()) .filter_map(|begin| begin.name()) .filter_map(|name| name.key()) - .any(|name| { - LANGUAGE_DATA - .enum_environments - .iter() - .any(|e| e == &name.to_string()) - }) + .any(|name| enum_envs.contains(&name.to_string())) { return None; } let full_range = document - .contents(db) .line_index(db) .line_col_lsp_range(latex::small_range(&enum_item)); @@ -198,7 +183,6 @@ fn visit_equation( let equation = latex::Equation::cast(node)?; let full_range = document - .contents(db) .line_index(db) .line_col_lsp_range(latex::small_range(&equation)); @@ -213,7 +197,6 @@ fn visit_equation_environment( let environment = latex::Environment::cast(node)?; let full_range = document - .contents(db) .line_index(db) .line_col_lsp_range(latex::small_range(&environment)); @@ -268,7 +251,6 @@ fn visit_enumeration( ) -> Option<InternalSymbol> { let environment = latex::Environment::cast(node)?; let full_range = document - .contents(db) .line_index(db) .line_col_lsp_range(latex::small_range(&environment)); @@ -315,7 +297,6 @@ fn visit_float( ) -> Option<InternalSymbol> { let environment = latex::Environment::cast(node)?; let full_range = document - .contents(db) .line_index(db) .line_col_lsp_range(latex::small_range(&environment)); @@ -382,7 +363,6 @@ fn visit_theorem( .and_then(|option| option.content_text()); let full_range = document - .contents(db) .line_index(db) .line_col_lsp_range(latex::small_range(&node)); @@ -454,7 +434,6 @@ fn find_label_by_parent( let node = parent.children().find_map(latex::LabelDefinition::cast)?; let name = Word::new(db, node.name()?.key()?.to_string()); let range = document - .contents(db) .line_index(db) .line_col_lsp_range(latex::small_range(&node)); |