Class MethodCallInlayHintSupplier
java.lang.Object
com.github._1c_syntax.bsl.languageserver.inlayhints.MethodCallInlayHintSupplier
- All Implemented Interfaces:
InlayHintSupplier<DefaultInlayHintData>
@Component
public class MethodCallInlayHintSupplier
extends Object
implements InlayHintSupplier<DefaultInlayHintData>
Единый поставщик подсказок об именах параметров для вызовов методов.
Подсказки у вызовов source-defined методов и платформенных методов/глобальных
функций/конструкторов выглядят одинаково (имя параметра рядом с передаваемым
значением) и отличаются лишь источником метаданных и способом резолва вызова,
поэтому управляются единым ключом конфигурации inlayHint.parameters.methodCall
(идентификатор сапплаера — methodCall).
Построение делегируется двум коллекторам:
SourceDefinedMethodCallInlayHintCollector— вызовы source-defined методов (в т.ч. голые вызовы процедур текущего модуля), разрешаемые по индексу ссылок; метка несёт ссылку на объявление параметра;PlatformMethodCallInlayHintCollector— платформенные методы, глобальные функции и конструкторы, разрешаемые через систему типов.
sourceSymbol, которые относятся к source-defined вызовам.-
Field Summary
Fields inherited from interface InlayHintSupplier
INLAY_HINT_SUPPLIER -
Constructor Summary
ConstructorsConstructorDescriptionMethodCallInlayHintSupplier(SourceDefinedMethodCallInlayHintCollector sourceDefinedCollector, PlatformMethodCallInlayHintCollector platformCollector) -
Method Summary
Modifier and TypeMethodDescriptionПолучить класс для хранения данных хинта.getInlayHints(DocumentContext documentContext, InlayHintParams params) Получить inlay hints, доступные в документе.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface InlayHintSupplier
getId, resolve
-
Constructor Details
-
MethodCallInlayHintSupplier
public MethodCallInlayHintSupplier(SourceDefinedMethodCallInlayHintCollector sourceDefinedCollector, PlatformMethodCallInlayHintCollector platformCollector)
-
-
Method Details
-
getInlayHintDataClass
Получить класс для хранения данных хинта.При создании не-разрешённого хинта поле
InlayHint.setData(Object)должно заполняться объектом данного класса.Хинты имён параметров проставляют ссылку части метки жадно (там, где она есть) и не откладывают полей на резолв — используется дефолтный дата-класс
DefaultInlayHintData.- Specified by:
getInlayHintDataClassin interfaceInlayHintSupplier<DefaultInlayHintData>- Returns:
- Класс
DefaultInlayHintData.
-
getInlayHints
Description copied from interface:InlayHintSupplierПолучить inlay hints, доступные в документе.- Specified by:
getInlayHintsin interfaceInlayHintSupplier<DefaultInlayHintData>- Parameters:
documentContext- Контекст документа, для которого надо рассчитать inlay hints.params- Параметры запроса.- Returns:
- Список inlay hints в документе.
-