Class AbstractExpressionTreeDiagnostic
java.lang.Object
com.github._1c_syntax.bsl.languageserver.utils.expressiontree.ExpressionTreeVisitor
com.github._1c_syntax.bsl.languageserver.diagnostics.AbstractExpressionTreeDiagnostic
- All Implemented Interfaces:
BSLDiagnostic
- Direct Known Subclasses:
CompareWithBooleanDiagnostic, DoubleNegativesDiagnostic, IdenticalExpressionsDiagnostic
public abstract class AbstractExpressionTreeDiagnostic
extends ExpressionTreeVisitor
implements BSLDiagnostic
Диагностика, анализирующая выражения BSL и предоставляющая для этого Expression Tree
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static enumСтратегия по построению дерева выражения на основе выражения AST -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final DiagnosticStorageprotected DocumentContextprotected DiagnosticInfo -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal List<Diagnostic> getDiagnostics(DocumentContext documentContext) Выполнить диагностику документа.getInfo()Получить метаинформацию о диагностике.При входе в выражение вызывается данный метод.voidsetInfo(DiagnosticInfo info) Установить метаинформацию о диагностике.Methods inherited from class ExpressionTreeVisitor
visitAbstractCall, visitBinaryOperation, visitTernaryOperator, visitTopLevelExpression, visitUnaryOperationMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface BSLDiagnostic
configure
-
Field Details
-
info
-
diagnosticStorage
-
documentContext
-
-
Constructor Details
-
AbstractExpressionTreeDiagnostic
public AbstractExpressionTreeDiagnostic()
-
-
Method Details
-
getDiagnostics
Description copied from interface:BSLDiagnosticВыполнить диагностику документа.- Specified by:
getDiagnosticsin interfaceBSLDiagnostic- Parameters:
documentContext- Контекст документа, для которого выполняется диагностика- Returns:
- Список найденных замечаний
-
onExpressionEnter
protected AbstractExpressionTreeDiagnostic.ExpressionVisitorDecision onExpressionEnter(BSLParser.ExpressionContext ctx) При входе в выражение вызывается данный метод. Переопределяя его можно оценить - имеет ли смысл строить дерево выражения, или данное выражение не подходит. Позволяет сократить время на построение дерева, если это не требуется для данного AST.- Parameters:
ctx- - выражение, которое в данный момент посещается.- Returns:
- - флаг дальнейшего поведения. - если надо прекратить обход в глубину и построить Expression Tree на данном выражении - надо вернуть ACCEPT - если надо пройти дальше и посетить дочерние выражения, не затрагивая данное - надо вернуть VISIT_CHILDREN - если надо пропустить выражение, не ходить глубже и не строить Expression Tree - надо вернуть SKIP
-
getInfo
Description copied from interface:BSLDiagnosticПолучить метаинформацию о диагностике.- Specified by:
getInfoin interfaceBSLDiagnostic- Returns:
- Метаинформация о диагностике
-
setInfo
Description copied from interface:BSLDiagnosticУстановить метаинформацию о диагностике.- Specified by:
setInfoin interfaceBSLDiagnostic- Parameters:
info- Метаинформация о диагностике
-