Class AbstractComplexityInlayHintSupplier

java.lang.Object
com.github._1c_syntax.bsl.languageserver.inlayhints.AbstractComplexityInlayHintSupplier
All Implemented Interfaces:
InlayHintSupplier<DefaultInlayHintData>
Direct Known Subclasses:
CognitiveComplexityInlayHintSupplier, CyclomaticComplexityInlayHintSupplier

public abstract class AbstractComplexityInlayHintSupplier extends Object implements InlayHintSupplier<DefaultInlayHintData>
Абстрактный поставщик подсказок о сложности методов.

По умолчанию подсказки отключены. Для включения нужно вызвать метод toggleHints(URI, String).

  • Constructor Details

    • AbstractComplexityInlayHintSupplier

      public AbstractComplexityInlayHintSupplier()
  • Method Details

    • getInlayHintDataClass

      public Class<DefaultInlayHintData> getInlayHintDataClass()
      Получить класс для хранения данных хинта.

      При создании не-разрешённого хинта поле InlayHint.setData(Object) должно заполняться объектом данного класса.

      Подсказки сложности не откладывают построение полей на резолв, поэтому используется дефолтный дата-класс DefaultInlayHintData.

      Specified by:
      getInlayHintDataClass in interface InlayHintSupplier<DefaultInlayHintData>
      Returns:
      Конкретный класс для хранения данных хинта.
    • getInlayHints

      public List<InlayHint> getInlayHints(DocumentContext documentContext, InlayHintParams params)
      Получение подсказок о местах увеличения сложности метода.

      Получить inlay hints, доступные в документе.

      Specified by:
      getInlayHints in interface InlayHintSupplier<DefaultInlayHintData>
      Parameters:
      documentContext - Контекст документа, для которого надо рассчитать inlay hints.
      params - Параметры запроса.
      Returns:
      Список inlay hints в документе.
    • toggleHints

      public void toggleHints(URI uri, String methodName)
      Переключить показ подсказок сложности для метода.
      Parameters:
      uri - URI документа.
      methodName - Имя метода.
    • handleDocumentClosed

      @EventListener public void handleDocumentClosed(ServerContextDocumentClosedEvent event)
      Очищает состояние подсказок при закрытии документа.
      Parameters:
      event - событие закрытия документа
    • getComplexityLocations

      protected abstract Map<MethodSymbol, List<ComplexitySecondaryLocation>> getComplexityLocations(DocumentContext documentContext)
      Получение мест увеличения сложности метода. Нужно переопределить в наследниках.
      Parameters:
      documentContext - Контекст документа.
      Returns:
      Места увеличения сложности метода.