Class AbstractMethodComplexityCodeLensSupplier
java.lang.Object
com.github._1c_syntax.bsl.languageserver.codelenses.AbstractMethodComplexityCodeLensSupplier
- All Implemented Interfaces:
CodeLensSupplier<AbstractMethodComplexityCodeLensSupplier.ComplexityCodeLensData>
- Direct Known Subclasses:
CognitiveComplexityCodeLensSupplier
,CyclomaticComplexityCodeLensSupplier
public abstract class AbstractMethodComplexityCodeLensSupplier
extends Object
implements CodeLensSupplier<AbstractMethodComplexityCodeLensSupplier.ComplexityCodeLensData>
Базовый класс для реализации линз, показывающих сложность методов в документе.
Конкретный сапплаер должен иметь ресурс-бандл со свойством title
, имеющим один числовой параметр %d
.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic final class
DTO для хранения данных линз о сложности методов в документе. -
Field Summary
Fields inherited from interface com.github._1c_syntax.bsl.languageserver.codelenses.CodeLensSupplier
CODE_LENS_SUPPLIER_SUFFIX
-
Constructor Summary
ConstructorDescriptionAbstractMethodComplexityCodeLensSupplier
(LanguageServerConfiguration configuration, AbstractToggleComplexityInlayHintsCommandSupplier commandSupplier) -
Method Summary
Modifier and TypeMethodDescriptionПолучить класс для хранения данных линзы.getCodeLenses
(DocumentContext documentContext) Получить список линз, доступных в документе.protected abstract Map<MethodSymbol,
Integer> getMethodsComplexity
(DocumentContext documentContext) Получить данные о сложности в разрезе символов.resolve
(DocumentContext documentContext, CodeLens unresolved, AbstractMethodComplexityCodeLensSupplier.ComplexityCodeLensData data) Выполнить операцию "разрешения" линзы.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.github._1c_syntax.bsl.languageserver.codelenses.CodeLensSupplier
getId, isApplicable
-
Field Details
-
configuration
-
-
Constructor Details
-
AbstractMethodComplexityCodeLensSupplier
@ConstructorProperties({"configuration","commandSupplier"}) public AbstractMethodComplexityCodeLensSupplier(LanguageServerConfiguration configuration, AbstractToggleComplexityInlayHintsCommandSupplier commandSupplier)
-
-
Method Details
-
getCodeLenses
Description copied from interface:CodeLensSupplier
Получить список линз, доступных в документе.Предпочтительно, чтобы линзы, возвращаемые этим методом были "не-разрешенными"
- Specified by:
getCodeLenses
in interfaceCodeLensSupplier<AbstractMethodComplexityCodeLensSupplier.ComplexityCodeLensData>
- Parameters:
documentContext
- Документ, для которого надо рассчитать линзы.- Returns:
- Список линз.
-
resolve
public CodeLens resolve(DocumentContext documentContext, CodeLens unresolved, AbstractMethodComplexityCodeLensSupplier.ComplexityCodeLensData data) Description copied from interface:CodeLensSupplier
Выполнить операцию "разрешения" линзы.По умолчанию линза возвращается не-разрешенной.
- Specified by:
resolve
in interfaceCodeLensSupplier<AbstractMethodComplexityCodeLensSupplier.ComplexityCodeLensData>
- Parameters:
documentContext
- Документ, которому принадлежит линза.unresolved
- Линза, которую надо разрешить.data
- Десериализованные данные линзы.- Returns:
- Разрешенная линза (с заполненным полем
CodeLens.getCommand()
)
-
getCodeLensDataClass
public Class<AbstractMethodComplexityCodeLensSupplier.ComplexityCodeLensData> getCodeLensDataClass()Description copied from interface:CodeLensSupplier
Получить класс для хранения данных линзы.При создании не-разрешенной линзы поле
CodeLens.setData(Object)
должно заполняться объектом данного класса.- Specified by:
getCodeLensDataClass
in interfaceCodeLensSupplier<AbstractMethodComplexityCodeLensSupplier.ComplexityCodeLensData>
- Returns:
- Конкретный класс для хранения данных линзы.
-
getMethodsComplexity
Получить данные о сложности в разрезе символов.- Parameters:
documentContext
- Документ, для которого нужно рассчитать информацию о сложностях методов.- Returns:
- Данные о сложности методов.
-