Class AbstractMethodSymbol
java.lang.Object
com.github._1c_syntax.bsl.languageserver.context.symbol.AbstractMethodSymbol
- All Implemented Interfaces:
Describable, Exportable, MethodSymbol, SourceDefinedSymbol, Symbol
- Direct Known Subclasses:
ConstructorSymbol, RegularMethodSymbol
Общая структура полей для callable-символов уровня модуля и реализация
контракта
MethodSymbol. Конкретные подтипы добавляют только
SymbolKind и вызов соответствующего
SymbolTreeVisitor-метода в Symbol.accept(SymbolTreeVisitor).-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classAbstractMethodSymbol.AbstractMethodSymbolBuilder<C extends AbstractMethodSymbol, B extends AbstractMethodSymbol.AbstractMethodSymbolBuilder<C,B>> Кастомизация generatedAbstractMethodSymbol.AbstractMethodSymbolBuilder: позволяет передаватьrange/subNameRangeкакRangeвместо четырёх int-полей. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected -
Method Summary
Modifier and TypeMethodDescriptionprotected booleanbooleanАннотации метода: всё, что стоит со&перед сигнатурой и не является compiler-directive (в OScript — пользовательские аннотации вроде&Желудь).Вложенные символы (локальные переменные, области внутри метода и т.п.).Compiler-directive (&НаСервере,&НаКлиенте, …) если стоит перед методом.Распаренная BSL-doc-документация метода (комментарии перед сигнатурой).getName()Имя метода.getOwner()DocumentContext, в котором объявлен метод.Объявленные параметры метода в порядке объявления.Родительский символ — область (#Область), модуль или вложенная область.getRange()Регион/область, в которой объявлен метод/конструктор, если он находится непосредственно внутриRegionSymbol.Диапазон имени метода/конструктора (без ключевых слов и параметров) — используется как selection-range и для матчинга позиции к символу.inthashCode()booleanisAsync()Объявлен ли метод с ключевым словомАсинх(Async).booleanПомечен ли метод как устаревший (через doc-комментарии).booleanisExport()Объявлен ли метод с ключевым словомЭкспорт.booleantrueдля функции (сВозврат),falseдля процедуры.voidsetParent(Optional<SourceDefinedSymbol> parent) Родительский символ — область (#Область), модуль или вложенная область.toString()Methods inherited from interface Describable
getSymbolDescriptionMethods inherited from interface SourceDefinedSymbol
getRootParent, getRootParentMethods inherited from interface Symbol
accept, getSymbolKind, getTags
-
Constructor Details
-
AbstractMethodSymbol
-
-
Method Details
-
getRange
- Specified by:
getRangein interfaceSourceDefinedSymbol- Returns:
- Диапазон, который захватывает символ.
-
getSubNameRange
Description copied from interface:MethodSymbolДиапазон имени метода/конструктора (без ключевых слов и параметров) — используется как selection-range и для матчинга позиции к символу.- Specified by:
getSubNameRangein interfaceMethodSymbol
-
getSelectionRange
- Specified by:
getSelectionRangein interfaceSourceDefinedSymbol- Returns:
- Место интереса символа. Например, диапазон, где указано имя символа (в противовес полной строки декларации символа).
-
getRegion
Description copied from interface:MethodSymbolРегион/область, в которой объявлен метод/конструктор, если он находится непосредственно внутриRegionSymbol.- Specified by:
getRegionin interfaceMethodSymbol
-
getName
Имя метода.- Specified by:
getNamein interfaceMethodSymbol- Specified by:
getNamein interfaceSymbol- Returns:
- Имя символа.
-
getOwner
DocumentContext, в котором объявлен метод.- Specified by:
getOwnerin interfaceSourceDefinedSymbol- Returns:
- Документ, в котором объявлен данный символ.
-
getParent
Родительский символ — область (#Область), модуль или вложенная область. Выставляется снаружи (после построения дерева), поэтому@Setter.- Specified by:
getParentin interfaceSourceDefinedSymbol- Returns:
- Символ, внутри которого располагается данный символ.
-
getChildren
Вложенные символы (локальные переменные, области внутри метода и т.п.).- Specified by:
getChildrenin interfaceSourceDefinedSymbol- Returns:
- Список "детей" символа - символов, которые располагаются внутри данного символа.
-
isFunction
public boolean isFunction()trueдля функции (сВозврат),falseдля процедуры.- Specified by:
isFunctionin interfaceMethodSymbol
-
isExport
public boolean isExport()Объявлен ли метод с ключевым словомЭкспорт.- Specified by:
isExportin interfaceExportable- Specified by:
isExportin interfaceMethodSymbol- Returns:
- Сущность является экспортной.
-
getDescription
Распаренная BSL-doc-документация метода (комментарии перед сигнатурой).- Specified by:
getDescriptionin interfaceDescribable- Specified by:
getDescriptionin interfaceMethodSymbol- Returns:
- Описание символа в форме, поставляемой
bsl-parser'ом (используется диагностиками, которые знают конкретные подтипыMethodDescription/VariableDescriptionи т.п.).
-
isDeprecated
public boolean isDeprecated()Помечен ли метод как устаревший (через doc-комментарии).- Specified by:
isDeprecatedin interfaceMethodSymbol- Specified by:
isDeprecatedin interfaceSymbol- Returns:
- Является ли символ "устаревшим".
-
isAsync
public boolean isAsync()Объявлен ли метод с ключевым словомАсинх(Async).- Specified by:
isAsyncin interfaceMethodSymbol
-
getParameters
Объявленные параметры метода в порядке объявления.- Specified by:
getParametersin interfaceMethodSymbol
-
getCompilerDirectiveKind
Compiler-directive (&НаСервере,&НаКлиенте, …) если стоит перед методом. В OScript обычно отсутствует.- Specified by:
getCompilerDirectiveKindin interfaceMethodSymbol
-
getAnnotations
Аннотации метода: всё, что стоит со&перед сигнатурой и не является compiler-directive (в OScript — пользовательские аннотации вроде&Желудь).- Specified by:
getAnnotationsin interfaceMethodSymbol
-
equals
-
canEqual
-
hashCode
-
toString
-
setParent
Родительский символ — область (#Область), модуль или вложенная область. Выставляется снаружи (после построения дерева), поэтому@Setter.- Specified by:
setParentin interfaceSourceDefinedSymbol- Parameters:
parent- Символ, внутри которого располагается данный символ.
-