Class SymbolTree
java.lang.Object
com.github._1c_syntax.bsl.languageserver.context.symbol.SymbolTree
Символьное дерево документа. Содержит все символы документа, вложенные друг в друга по принципу родитель -> дети
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanСписок всех символов всех уровней (за исключением символа модуля документа), преобразованных в плоский список.<T> List<T> getChildrenFlat(Class<T> clazz) Список всех символов всех уровней указанного типа (за исключением символа модуля документа), преобразованных в плоский список.Список методов документа.getMethodSymbol(String methodName) Поиск MethodSymbol в дереве по указанному имени (без учета регистра).Попытка поиска символа метода по узлу дерева разбора.Корневой символ модуля документа.getSymbolAtPosition(Position position) Поиск самого вложенного символа, содержащего указанную позицию.Плоский список всех переменных документаgetVariableSymbol(String variableName, SourceDefinedSymbol scopeSymbol) Поиск VariableSymbol в дереве по указанному имени (без учета регистра) и области объявления.Попытка поиска символа переменной по узлу дерева разбора.inthashCode()toString()
-
Constructor Details
-
SymbolTree
Creates a newSymbolTreeinstance.- Parameters:
module- Корневой символ модуля документа.
-
-
Method Details
-
getChildren
- Returns:
- Список символов верхнего уровня за исключением символа модуля документа.
-
getChildrenFlat
Список всех символов всех уровней указанного типа (за исключением символа модуля документа), преобразованных в плоский список.- Type Parameters:
T- тип искомого символа.- Parameters:
clazz- класс искомого символа.- Returns:
- плоский список символов указанного типа.
-
getModuleLevelRegions
- Returns:
- Список областей, расположенных на верхнем уровне документа.
-
getRegionsFlat
- Returns:
- плоский список всех областей документа.
-
getMethodSymbol
Попытка поиска символа метода по узлу дерева разбора.Implementation note - Поиск осуществляется по месту определения метода (declaration).
- Parameters:
ctx- узел дерева разбора документа.- Returns:
- найденный символ метода.
-
getMethodSymbol
Поиск MethodSymbol в дереве по указанному имени (без учета регистра).- Parameters:
methodName- Имя метода- Returns:
- MethodSymbol, если он был найден в дереве символов.
-
getVariableSymbol
Попытка поиска символа переменной по узлу дерева разбора.Implementation note Поиск осуществляется по месту определения переменной (declaration).
- Parameters:
ctx- узел дерева разбора документа.- Returns:
- найденный символ переменной.
-
getVariableSymbol
public Optional<VariableSymbol> getVariableSymbol(String variableName, SourceDefinedSymbol scopeSymbol) Поиск VariableSymbol в дереве по указанному имени (без учета регистра) и области объявления.- Parameters:
variableName- Имя переменнойscopeSymbol- Символ, внутри которого осуществляется поиск. Например,ModuleSymbolилиMethodSymbol.- Returns:
- VariableSymbol, если он был найден в дереве символов.
-
getSymbolAtPosition
Поиск самого вложенного символа, содержащего указанную позицию.Использует иерархический спуск по дереву символов вместо линейного поиска.
- Parameters:
position- Позиция в документе.- Returns:
- Символ, содержащий позицию, или символ модуля, если позиция вне всех символов.
-
getModule
Корневой символ модуля документа. -
equals
-
hashCode
-
toString
-
getChildrenFlat
Список всех символов всех уровней (за исключением символа модуля документа), преобразованных в плоский список. -
getMethods
Список методов документа. -
getMethodsByName
-
getVariables
Плоский список всех переменных документа -
getVariablesByName
-