Interface InlayHintSupplier<T extends InlayHintData>

Type Parameters:
T - Конкретный тип для данных хинта.
All Known Implementing Classes:
AbstractComplexityInlayHintSupplier, AbstractMethodCallInlayHintSupplier, CognitiveComplexityInlayHintSupplier, CyclomaticComplexityInlayHintSupplier, PlatformMethodCallInlayHintSupplier, SourceDefinedMethodCallInlayHintSupplier, VariableTypeInlayHintSupplier

public interface InlayHintSupplier<T extends InlayHintData>
Базовый интерфейс для наполнения InlayHintProvider данными о доступных в документе inlay hints.

Для хранения промежуточных данных между созданием и разрешением хинта необходимо использовать поле InlayHint.setData(Object), заполняя его объектом класса getInlayHintDataClass().

Конкретный сапплаер может расширить состав данных, хранимых в хинте, доопределив дата-класс, наследующий InlayHintData, и указав его тип в качестве типа-параметра класса.

  • Field Details

  • Method Details

    • getId

      default String getId()
      Идентификатор сапплаера. Если хинт содержит поле InlayHint.getData(), идентификатор в данных хинта должен совпадать с данным идентификатором.
      Returns:
      Идентификатор сапплаера.
    • getInlayHints

      List<InlayHint> getInlayHints(DocumentContext documentContext, InlayHintParams params)
      Получить inlay hints, доступные в документе.
      Parameters:
      documentContext - Контекст документа, для которого надо рассчитать inlay hints.
      params - Параметры запроса.
      Returns:
      Список inlay hints в документе.
    • getInlayHintDataClass

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

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

      Returns:
      Конкретный класс для хранения данных хинта.
    • resolve

      default InlayHint resolve(DocumentContext documentContext, InlayHint unresolved, T data)
      Дорассчитать «тяжёлые» поля хинта (tooltip и т.п.) при обработке inlayHint/resolve.

      Базовая реализация возвращает хинт без изменений: сапплаеры, не откладывающие построение полей, ничего не делают на резолве. Сапплаеры, кладущие данные в InlayHint.getData() при жадном расчёте, должны переопределить метод и восстановить отложенные поля по этим данным.

      Parameters:
      documentContext - Контекст документа, к которому относится хинт.
      unresolved - Неразрешённый хинт (с заполненным InlayHint.getData()).
      data - Десериализованные данные хинта.
      Returns:
      Разрешённый хинт.