Class SourceDefinedMethodCallInlayHintSupplier

java.lang.Object
com.github._1c_syntax.bsl.languageserver.inlayhints.AbstractMethodCallInlayHintSupplier<DefaultInlayHintData>
com.github._1c_syntax.bsl.languageserver.inlayhints.SourceDefinedMethodCallInlayHintSupplier
All Implemented Interfaces:
InlayHintSupplier<DefaultInlayHintData>

@Component public class SourceDefinedMethodCallInlayHintSupplier extends AbstractMethodCallInlayHintSupplier<DefaultInlayHintData>
Поставщик подсказок о параметрах вызываемого метода.

Метка хинта рендерится не голой строкой, а единственной частью InlayHintLabelPart, к которой привязывается ссылка (InlayHintLabelPart.setLocation(Location)) на объявление соответствующего параметра в сигнатуре вызываемого source-defined метода. Клик по подсказке выполняет переход к объявлению параметра.

Объявление параметра уже известно на этапе построения хинта (метод вызова разрешён по индексу ссылок), поэтому ссылка проставляется жадно — без отложенного inlayHint/resolve. «Тяжёлых» полей, требующих ленивого разрешения, у хинта нет, поэтому он не несёт data.

  • Constructor Details

  • Method Details

    • getInlayHintDataClass

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

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

      Хинт имени параметра проставляет ссылку части метки жадно и не откладывает полей на резолв — используется дефолтный дата-класс DefaultInlayHintData.

      Returns:
      Класс DefaultInlayHintData.
    • getInlayHints

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