Class AbstractFindMethodDiagnostic

java.lang.Object
org.antlr.v4.runtime.tree.AbstractParseTreeVisitor<Result>
com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor<org.antlr.v4.runtime.tree.ParseTree>
com.github._1c_syntax.bsl.languageserver.diagnostics.AbstractVisitorDiagnostic
com.github._1c_syntax.bsl.languageserver.diagnostics.AbstractFindMethodDiagnostic
All Implemented Interfaces:
BSLDiagnostic, com.github._1c_syntax.bsl.parser.BSLParserVisitor<org.antlr.v4.runtime.tree.ParseTree>, org.antlr.v4.runtime.tree.ParseTreeVisitor<org.antlr.v4.runtime.tree.ParseTree>
Direct Known Subclasses:
DeprecatedCurrentDateDiagnostic, DeprecatedFindDiagnostic, DeprecatedMessageDiagnostic, DeprecatedMethods8317Diagnostic, FormDataToValueDiagnostic, GetFormMethodDiagnostic, IncorrectUseOfStrTemplateDiagnostic, OSUsersMethodDiagnostic, TempFilesDirDiagnostic, UnsafeSafeModeMethodCallDiagnostic, WrongUseFunctionProceedWithCallDiagnostic, WrongUseOfRollbackTransactionMethodDiagnostic

public abstract class AbstractFindMethodDiagnostic extends AbstractVisitorDiagnostic
Абстрактная диагностика, предназначенная для поиска вызова обычных методов и методов глобального контекста с использованием регулярного выражения. AbstractFindMethodDiagnostic предоставляет для переопределения два метода проверки вызовов и один метод генерации сообщения пользователю. По умолчанию проверяется, что имя вызываемого метода соответствует переданному в конструкторе регулярному выражению. Важно: наследование данной диагностики без переопределения getMessage подразумевает, что первым параметром сообщения пользователю всегда будет имя найденного метода.
  • Field Summary

    Fields inherited from class com.github._1c_syntax.bsl.languageserver.diagnostics.AbstractVisitorDiagnostic

    diagnosticStorage, documentContext, info
  • Method Summary

    Modifier and Type
    Method
    Description
    protected boolean
    checkGlobalMethodCall​(com.github._1c_syntax.bsl.parser.BSLParser.GlobalMethodCallContext ctx)
    Проверка контекста глобального метода
    protected boolean
    checkMethodCall​(com.github._1c_syntax.bsl.parser.BSLParser.MethodCallContext ctx)
    Проверка контекста обычного метода
    protected String
    getMessage​(com.github._1c_syntax.bsl.parser.BSLParserRuleContext ctx)
    Получает сообщение диагностики для пользователя
     
    void
    setMethodPattern​(Pattern methodPattern)
     
    org.antlr.v4.runtime.tree.ParseTree
    visitGlobalMethodCall​(com.github._1c_syntax.bsl.parser.BSLParser.GlobalMethodCallContext ctx)
    Обработчик узла глобального метода.
    org.antlr.v4.runtime.tree.ParseTree
    visitMethodCall​(com.github._1c_syntax.bsl.parser.BSLParser.MethodCallContext ctx)
    Обработчик узла обычного метода.

    Methods inherited from class com.github._1c_syntax.bsl.languageserver.diagnostics.AbstractVisitorDiagnostic

    getDiagnostics, getInfo, setInfo

    Methods inherited from class com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor

    visitAcceptor, visitAccessCall, visitAccessIndex, visitAccessProperty, visitAddHandlerStatement, visitAnnotation, visitAnnotationName, visitAnnotationParam, visitAnnotationParamName, visitAnnotationParams, visitAssignment, visitBoolOperation, visitBreakStatement, visitCallParam, visitCallParamList, visitCallStatement, visitCodeBlock, visitCompareOperation, visitCompilerDirective, visitCompilerDirectiveSymbol, visitComplexIdentifier, visitCompoundStatement, visitConstValue, visitContinueStatement, visitDefaultValue, visitDoCall, visitElseBranch, visitElsifBranch, visitEvent, visitExceptCodeBlock, visitExecuteStatement, visitExpression, visitFile, visitFileCodeBlock, visitFileCodeBlockBeforeSub, visitForEachStatement, visitForStatement, visitFuncDeclaration, visitFunction, visitGotoStatement, visitHandler, visitIfBranch, visitIfStatement, visitLabel, visitLabelName, visitLValue, visitMember, visitMethodName, visitModifier, visitModuleVar, visitModuleVarDeclaration, visitModuleVars, visitModuleVarsList, visitMultilineString, visitNewExpression, visitNumeric, visitOperation, visitParam, visitParamList, visitPreproc_boolOperation, visitPreproc_else, visitPreproc_elsif, visitPreproc_endif, visitPreproc_expression, visitPreproc_if, visitPreproc_logicalExpression, visitPreproc_logicalOperand, visitPreproc_symbol, visitPreproc_unknownSymbol, visitPreprocessor, visitProcDeclaration, visitProcedure, visitRaiseStatement, visitRegionEnd, visitRegionName, visitRegionStart, visitRemoveHandlerStatement, visitReturnStatement, visitShebang, visitStatement, visitString, visitSub, visitSubCodeBlock, visitSubName, visitSubs, visitSubVar, visitSubVarDeclaration, visitSubVars, visitSubVarsList, visitTernaryOperator, visitTryCodeBlock, visitTryStatement, visitTypeName, visitUnaryModifier, visitUse, visitUsedLib, visitVar_name, visitWaitStatement, visitWhileStatement

    Methods inherited from class org.antlr.v4.runtime.tree.AbstractParseTreeVisitor

    aggregateResult, defaultResult, shouldVisitNextChild, visit, visitChildren, visitErrorNode, visitTerminal

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface com.github._1c_syntax.bsl.languageserver.diagnostics.BSLDiagnostic

    configure

    Methods inherited from interface org.antlr.v4.runtime.tree.ParseTreeVisitor

    visit, visitChildren, visitErrorNode, visitTerminal
  • Method Details

    • checkGlobalMethodCall

      protected boolean checkGlobalMethodCall(com.github._1c_syntax.bsl.parser.BSLParser.GlobalMethodCallContext ctx)
      Проверка контекста глобального метода
      Parameters:
      ctx - контекст глобального метода
      Returns:
      true если имя метода соответствует регулярному выражению
    • checkMethodCall

      protected boolean checkMethodCall(com.github._1c_syntax.bsl.parser.BSLParser.MethodCallContext ctx)
      Проверка контекста обычного метода
      Parameters:
      ctx - контекст метода
      Returns:
      true если имя метода соответствует регулярному выражению
    • getMessage

      protected String getMessage(com.github._1c_syntax.bsl.parser.BSLParserRuleContext ctx)
      Получает сообщение диагностики для пользователя
      Parameters:
      ctx - контекст узла
      Returns:
      В случае если передан контекст метода, параметризованное сообщение, первым параметром которого всегда будет имя метода. В противном случае возвращается обычное сообщение без параметров.
    • visitGlobalMethodCall

      public org.antlr.v4.runtime.tree.ParseTree visitGlobalMethodCall(com.github._1c_syntax.bsl.parser.BSLParser.GlobalMethodCallContext ctx)
      Обработчик узла глобального метода. Добавляет информацию о сработавшей диагностике в случае если проверка метода checkGlobalMethodCall(BSLParser.GlobalMethodCallContext) возвращает true
      Specified by:
      visitGlobalMethodCall in interface com.github._1c_syntax.bsl.parser.BSLParserVisitor<org.antlr.v4.runtime.tree.ParseTree>
      Overrides:
      visitGlobalMethodCall in class com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor<org.antlr.v4.runtime.tree.ParseTree>
      Parameters:
      ctx - контекст глобального метода
      Returns:
      результат посещения ноды по умолчанию.
    • visitMethodCall

      public org.antlr.v4.runtime.tree.ParseTree visitMethodCall(com.github._1c_syntax.bsl.parser.BSLParser.MethodCallContext ctx)
      Обработчик узла обычного метода. Добавляет информацию о сработавшей диагностике в случае если проверка метода checkMethodCall(BSLParser.MethodCallContext) возвращает true
      Specified by:
      visitMethodCall in interface com.github._1c_syntax.bsl.parser.BSLParserVisitor<org.antlr.v4.runtime.tree.ParseTree>
      Overrides:
      visitMethodCall in class com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor<org.antlr.v4.runtime.tree.ParseTree>
      Parameters:
      ctx - контекст метода
      Returns:
      результат посещения ноды по умолчанию.
    • getMethodPattern

      public Pattern getMethodPattern()
    • setMethodPattern

      public void setMethodPattern(Pattern methodPattern)