Class InjectionPointCodeLensSupplier
java.lang.Object
com.github._1c_syntax.bsl.languageserver.codelenses.InjectionPointCodeLensSupplier
- All Implemented Interfaces:
CodeLensSupplier<InjectionPointCodeLensSupplier.InjectionPointCodeLensData>
@Component
@Order(6)
public class InjectionPointCodeLensSupplier
extends Object
implements CodeLensSupplier<InjectionPointCodeLensSupplier.InjectionPointCodeLensData>
Прямая линза навигации по внедрению зависимостей фреймворка «ОСень»: над точкой внедрения
(
&Пластилин на поле модуля или параметре конструктора) показывает, какой желудь сюда
внедряется, и ведёт к объявлению его производителя — конструктору класса-компонента
(&Желудь/&Дуб) или фабричному методу (&Завязь).
Производитель резолвится по правилам DI-вывода через AutumnBeanIndex; при нескольких
кандидатах (например, конфликт имён без &Верховный) команда открывает поповер со
списком целей. Линза показывается только для разрешимых внедрений по имени желудя; для
прилепляемых коллекций навигация строится ко всем подходящим производителям.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classDTO линзы точки внедрения: добавляет к базовым данным имя внедряемого желудя. -
Field Summary
Fields inherited from interface CodeLensSupplier
CODE_LENS_SUPPLIER_SUFFIX -
Constructor Summary
ConstructorsConstructorDescriptionInjectionPointCodeLensSupplier(Resources resources, AutumnComponentInferencer componentInferencer, AutumnNavigation autumnNavigation, NavigationCommandBuilder navigationCommandBuilder) -
Method Summary
Modifier and TypeMethodDescriptionПолучить класс для хранения данных линзы.getCodeLenses(DocumentContext documentContext) Получить список линз, доступных в документе.booleanisApplicable(DocumentContext documentContext) Возвращает необходимость применения сапплаера на конкретном документе.resolve(DocumentContext documentContext, CodeLens unresolved, InjectionPointCodeLensSupplier.InjectionPointCodeLensData data) Выполнить операцию "разрешения" линзы.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface CodeLensSupplier
getId
-
Constructor Details
-
Method Details
-
isApplicable
Description copied from interface:CodeLensSupplierВозвращает необходимость применения сапплаера на конкретном документе.- Specified by:
isApplicablein interfaceCodeLensSupplier<InjectionPointCodeLensSupplier.InjectionPointCodeLensData>- Parameters:
documentContext- Документ.- Returns:
- Необходимость применения.
-
getCodeLenses
Description copied from interface:CodeLensSupplierПолучить список линз, доступных в документе.Предпочтительно, чтобы линзы, возвращаемые этим методом были "не-разрешенными"
- Specified by:
getCodeLensesin interfaceCodeLensSupplier<InjectionPointCodeLensSupplier.InjectionPointCodeLensData>- Parameters:
documentContext- Документ, для которого надо рассчитать линзы.- Returns:
- Список линз.
-
resolve
public CodeLens resolve(DocumentContext documentContext, CodeLens unresolved, InjectionPointCodeLensSupplier.InjectionPointCodeLensData data) Description copied from interface:CodeLensSupplierВыполнить операцию "разрешения" линзы.По умолчанию линза возвращается не-разрешенной.
- Specified by:
resolvein interfaceCodeLensSupplier<InjectionPointCodeLensSupplier.InjectionPointCodeLensData>- Parameters:
documentContext- Документ, которому принадлежит линза.unresolved- Линза, которую надо разрешить.data- Десериализованные данные линзы.- Returns:
- Разрешенная линза (с заполненным полем
CodeLens.getCommand())
-
getCodeLensDataClass
Description copied from interface:CodeLensSupplierПолучить класс для хранения данных линзы.При создании не-разрешенной линзы поле
CodeLens.setData(Object)должно заполняться объектом данного класса.- Specified by:
getCodeLensDataClassin interfaceCodeLensSupplier<InjectionPointCodeLensSupplier.InjectionPointCodeLensData>- Returns:
- Конкретный класс для хранения данных линзы.
-