mobile-wallet/config/detekt/detekt.yml
Sk Niyaj Ali e45c9b6f59
Refactor - [:feature:make-transfer] Applied Spotless & Detekt Compose Rules (#1724)
* Refactor: Applied Spotless & Detekt Compose Rules

- :feature:accounts
- :feature:auth
- :feature:editpassword
- :feature:finance

* Refactor - [:feature:history] Applied Spotless & Detekt Compose Rules

* Refactor - [:feature:home] Applied Spotless & Detekt Compose Rules

* Refactor - [:feature:invoices] Applied Spotless & Detekt Compose Rules

* Refactor - [:feature:kyc] Applied Spotless & Detekt Compose Rules

* Refactor - [:feature:make-transfer] Applied Spotless & Detekt Compose Rules
2024-08-11 13:36:53 -04:00

985 lines
24 KiB
YAML

build:
maxIssues: 0
excludeCorrectable: false
weights:
# complexity: 2
# LongParameterList: 1
# style: 1
# comments: 1
config:
validation: true
warningsAsErrors: false
checkExhaustiveness: false
# when writing own rules with new properties, exclude the property path e.g.: 'my_rule_set,.*>.*>[my_property]'
excludes: ""
processors:
active: true
exclude:
- "DetektProgressListener"
# - 'KtFileCountProcessor'
# - 'PackageCountProcessor'
# - 'ClassCountProcessor'
# - 'FunctionCountProcessor'
# - 'PropertyCountProcessor'
# - 'ProjectComplexityProcessor'
# - 'ProjectCognitiveComplexityProcessor'
# - 'ProjectLLOCProcessor'
# - 'ProjectCLOCProcessor'
# - 'ProjectLOCProcessor'
# - 'ProjectSLOCProcessor'
# - 'LicenseHeaderLoaderExtension'
console-reports:
active: true
exclude:
- "ProjectStatisticsReport"
- "ComplexityReport"
- "NotificationReport"
- "FindingsReport"
- "FileBasedFindingsReport"
# - 'LiteFindingsReport'
output-reports:
active: true
exclude: []
# - 'TxtOutputReport'
# - 'XmlOutputReport'
# - 'HtmlOutputReport'
# - 'MdOutputReport'
# - 'SarifOutputReport'
comments:
active: true
AbsentOrWrongFileLicense:
active: false
licenseTemplateFile: "license.template"
licenseTemplateIsRegex: false
CommentOverPrivateFunction:
active: false
CommentOverPrivateProperty:
active: false
DeprecatedBlockTag:
active: false
EndOfSentenceFormat:
active: false
endOfSentenceFormat: '([.?!][ \t\n\r\f<])|([.?!:]$)'
KDocReferencesNonPublicProperty:
active: false
excludes:
[
"**/test/**",
"**/androidTest/**",
"**/commonTest/**",
"**/jvmTest/**",
"**/androidUnitTest/**",
"**/androidInstrumentedTest/**",
"**/jsTest/**",
"**/iosTest/**",
]
OutdatedDocumentation:
active: false
matchTypeParameters: true
matchDeclarationsOrder: true
allowParamOnConstructorProperties: false
UndocumentedPublicClass:
active: false
excludes:
[
"**/test/**",
"**/androidTest/**",
"**/commonTest/**",
"**/jvmTest/**",
"**/androidUnitTest/**",
"**/androidInstrumentedTest/**",
"**/jsTest/**",
"**/iosTest/**",
]
searchInNestedClass: true
searchInInnerClass: true
searchInInnerObject: true
searchInInnerInterface: true
searchInProtectedClass: false
UndocumentedPublicFunction:
active: false
excludes:
[
"**/test/**",
"**/androidTest/**",
"**/commonTest/**",
"**/jvmTest/**",
"**/androidUnitTest/**",
"**/androidInstrumentedTest/**",
"**/jsTest/**",
"**/iosTest/**",
]
searchProtectedFunction: false
UndocumentedPublicProperty:
active: false
excludes:
[
"**/test/**",
"**/androidTest/**",
"**/commonTest/**",
"**/jvmTest/**",
"**/androidUnitTest/**",
"**/androidInstrumentedTest/**",
"**/jsTest/**",
"**/iosTest/**",
]
searchProtectedProperty: false
complexity:
active: true
CognitiveComplexMethod:
active: false
threshold: 15
ComplexCondition:
active: true
threshold: 4
ComplexInterface:
active: false
threshold: 10
includeStaticDeclarations: false
includePrivateDeclarations: false
ignoreOverloaded: false
CyclomaticComplexMethod:
active: true
threshold: 15
ignoreSingleWhenExpression: false
ignoreSimpleWhenEntries: false
ignoreNestingFunctions: false
nestingFunctions:
- "also"
- "apply"
- "forEach"
- "isNotNull"
- "ifNull"
- "let"
- "run"
- "use"
- "with"
LabeledExpression:
active: false
ignoredLabels: []
LargeClass:
active: true
threshold: 600
LongMethod:
active: true
threshold: 150 #60
LongParameterList:
active: true
# Updating Common values based on current scenario
functionThreshold: 20 #6
constructorThreshold: 30 #7
ignoreDefaultParameters: false
ignoreDataClasses: true
ignoreAnnotatedParameter: []
MethodOverloading:
active: false
threshold: 6
NamedArguments:
active: false
threshold: 3
ignoreArgumentsMatchingNames: false
NestedBlockDepth:
active: true
threshold: 4
NestedScopeFunctions:
active: false
threshold: 1
functions:
- "kotlin.apply"
- "kotlin.run"
- "kotlin.with"
- "kotlin.let"
- "kotlin.also"
ReplaceSafeCallChainWithRun:
active: false
StringLiteralDuplication:
active: false
excludes:
[
"**/test/**",
"**/androidTest/**",
"**/commonTest/**",
"**/jvmTest/**",
"**/androidUnitTest/**",
"**/androidInstrumentedTest/**",
"**/jsTest/**",
"**/iosTest/**",
]
threshold: 3
ignoreAnnotation: true
excludeStringsWithLessThan5Characters: true
ignoreStringsRegex: "$^"
TooManyFunctions:
active: true
excludes:
[
"**/test/**",
"**/androidTest/**",
"**/commonTest/**",
"**/jvmTest/**",
"**/androidUnitTest/**",
"**/androidInstrumentedTest/**",
"**/jsTest/**",
"**/iosTest/**",
]
# Modifying default values 11 to 20
thresholdInFiles: 20
thresholdInClasses: 20
thresholdInInterfaces: 20
thresholdInObjects: 20
thresholdInEnums: 20
ignoreDeprecated: false
ignorePrivate: false
ignoreOverridden: false
coroutines:
active: true
GlobalCoroutineUsage:
active: false
InjectDispatcher:
active: true
dispatcherNames:
- "IO"
- "Default"
- "Unconfined"
RedundantSuspendModifier:
active: true
SleepInsteadOfDelay:
active: true
SuspendFunSwallowedCancellation:
active: false
SuspendFunWithCoroutineScopeReceiver:
active: false
SuspendFunWithFlowReturnType:
active: true
empty-blocks:
active: true
EmptyCatchBlock:
active: true
allowedExceptionNameRegex: "_|(ignore|expected).*"
EmptyClassBlock:
active: true
EmptyDefaultConstructor:
active: true
EmptyDoWhileBlock:
active: true
EmptyElseBlock:
active: true
EmptyFinallyBlock:
active: true
EmptyForBlock:
active: true
EmptyFunctionBlock:
active: false # Turning off for current implementation
ignoreOverridden: false
EmptyIfBlock:
active: true
EmptyInitBlock:
active: true
EmptyKtFile:
active: true
EmptySecondaryConstructor:
active: true
EmptyTryBlock:
active: true
EmptyWhenBlock:
active: true
EmptyWhileBlock:
active: true
exceptions:
active: true
ExceptionRaisedInUnexpectedLocation:
active: true
methodNames:
- "equals"
- "finalize"
- "hashCode"
- "toString"
InstanceOfCheckForException:
active: true
excludes:
[
"**/test/**",
"**/androidTest/**",
"**/commonTest/**",
"**/jvmTest/**",
"**/androidUnitTest/**",
"**/androidInstrumentedTest/**",
"**/jsTest/**",
"**/iosTest/**",
]
NotImplementedDeclaration:
active: false
ObjectExtendsThrowable:
active: false
PrintStackTrace:
active: true
RethrowCaughtException:
active: true
ReturnFromFinally:
active: true
ignoreLabeled: false
SwallowedException:
active: false # Turning off for current implementation
ignoredExceptionTypes:
- "InterruptedException"
- "MalformedURLException"
- "NumberFormatException"
- "ParseException"
allowedExceptionNameRegex: "_|(ignore|expected).*"
ThrowingExceptionFromFinally:
active: true
ThrowingExceptionInMain:
active: false
ThrowingExceptionsWithoutMessageOrCause:
active: true
excludes:
[
"**/test/**",
"**/androidTest/**",
"**/commonTest/**",
"**/jvmTest/**",
"**/androidUnitTest/**",
"**/androidInstrumentedTest/**",
"**/jsTest/**",
"**/iosTest/**",
]
exceptions:
- "ArrayIndexOutOfBoundsException"
- "Exception"
- "IllegalArgumentException"
- "IllegalMonitorStateException"
- "IllegalStateException"
- "IndexOutOfBoundsException"
- "NullPointerException"
- "RuntimeException"
- "Throwable"
ThrowingNewInstanceOfSameException:
active: true
TooGenericExceptionCaught:
active: false
excludes:
[
"**/test/**",
"**/androidTest/**",
"**/commonTest/**",
"**/jvmTest/**",
"**/androidUnitTest/**",
"**/androidInstrumentedTest/**",
"**/jsTest/**",
"**/iosTest/**",
]
exceptionNames:
- "ArrayIndexOutOfBoundsException"
- "Error"
- "Exception"
- "IllegalMonitorStateException"
- "IndexOutOfBoundsException"
- "NullPointerException"
- "RuntimeException"
- "Throwable"
allowedExceptionNameRegex: "_|(ignore|expected).*"
TooGenericExceptionThrown:
active: false
exceptionNames:
- "Error"
- "Exception"
- "RuntimeException"
- "Throwable"
naming:
active: true
BooleanPropertyNaming:
active: false
allowedPattern: "^(is|has|are)"
ClassNaming:
active: true
classPattern: "[A-Z][a-zA-Z0-9]*"
ConstructorParameterNaming:
active: true
parameterPattern: "[a-z][A-Za-z0-9]*"
privateParameterPattern: "[a-z][A-Za-z0-9]*"
excludeClassPattern: "$^"
EnumNaming:
active: true
enumEntryPattern: "[A-Z][_a-zA-Z0-9]*"
ForbiddenClassName:
active: false
forbiddenName: []
FunctionMaxLength:
active: false
maximumFunctionNameLength: 30
FunctionMinLength:
active: false
minimumFunctionNameLength: 3
FunctionNaming:
active: true
excludes:
[
"**/test/**",
"**/androidTest/**",
"**/commonTest/**",
"**/jvmTest/**",
"**/androidUnitTest/**",
"**/androidInstrumentedTest/**",
"**/jsTest/**",
"**/iosTest/**",
]
functionPattern: "[a-z][a-zA-Z0-9]*"
excludeClassPattern: "$^"
ignoreAnnotated: ["Composable"]
FunctionParameterNaming:
active: true
parameterPattern: "[a-z][A-Za-z0-9]*"
excludeClassPattern: "$^"
InvalidPackageDeclaration:
active: true
rootPackage: ""
requireRootInDeclaration: false
LambdaParameterNaming:
active: false
parameterPattern: "[a-z][A-Za-z0-9]*|_"
MatchingDeclarationName:
active: true
mustBeFirst: true
MemberNameEqualsClassName:
active: true
ignoreOverridden: true
NoNameShadowing:
active: true
NonBooleanPropertyPrefixedWithIs:
active: false
ObjectPropertyNaming:
active: true
constantPattern: "[A-Za-z][_A-Za-z0-9]*"
propertyPattern: "[A-Za-z][_A-Za-z0-9]*"
privatePropertyPattern: "(_)?[A-Za-z][_A-Za-z0-9]*"
PackageNaming:
active: true
packagePattern: '[a-z]+(\.[a-z][A-Za-z0-9]*)*'
TopLevelPropertyNaming:
active: true
constantPattern: "[A-Z][_A-Z0-9]*"
propertyPattern: "[A-Za-z][_A-Za-z0-9]*"
privatePropertyPattern: "_?[A-Za-z][_A-Za-z0-9]*"
VariableMaxLength:
active: false
maximumVariableNameLength: 100 #64
VariableMinLength:
active: false
minimumVariableNameLength: 1
VariableNaming:
active: true
variablePattern: "[a-z][A-Za-z0-9]*"
privateVariablePattern: "(_)?[a-z][A-Za-z0-9]*"
excludeClassPattern: "$^"
performance:
active: true
ArrayPrimitive:
active: true
CouldBeSequence:
active: false
threshold: 3
ForEachOnRange:
active: true
excludes:
[
"**/test/**",
"**/androidTest/**",
"**/commonTest/**",
"**/jvmTest/**",
"**/androidUnitTest/**",
"**/androidInstrumentedTest/**",
"**/jsTest/**",
"**/iosTest/**",
]
SpreadOperator:
active: true
excludes:
[
"**/test/**",
"**/androidTest/**",
"**/commonTest/**",
"**/jvmTest/**",
"**/androidUnitTest/**",
"**/androidInstrumentedTest/**",
"**/jsTest/**",
"**/iosTest/**",
]
UnnecessaryPartOfBinaryExpression:
active: false
UnnecessaryTemporaryInstantiation:
active: true
potential-bugs:
active: true
AvoidReferentialEquality:
active: true
forbiddenTypePatterns:
- "kotlin.String"
CastNullableToNonNullableType:
active: false
CastToNullableType:
active: false
Deprecation:
active: false
DontDowncastCollectionTypes:
active: false
DoubleMutabilityForCollection:
active: true
mutableTypes:
- "kotlin.collections.MutableList"
- "kotlin.collections.MutableMap"
- "kotlin.collections.MutableSet"
- "java.util.ArrayList"
- "java.util.LinkedHashSet"
- "java.util.HashSet"
- "java.util.LinkedHashMap"
- "java.util.HashMap"
ElseCaseInsteadOfExhaustiveWhen:
active: false
ignoredSubjectTypes: []
EqualsAlwaysReturnsTrueOrFalse:
active: true
EqualsWithHashCodeExist:
active: true
ExitOutsideMain:
active: false
ExplicitGarbageCollectionCall:
active: true
HasPlatformType:
active: true
IgnoredReturnValue:
active: true
restrictToConfig: true
returnValueAnnotations:
- "CheckResult"
- "*.CheckResult"
- "CheckReturnValue"
- "*.CheckReturnValue"
ignoreReturnValueAnnotations:
- "CanIgnoreReturnValue"
- "*.CanIgnoreReturnValue"
returnValueTypes:
- "kotlin.sequences.Sequence"
- "kotlinx.coroutines.flow.*Flow"
- "java.util.stream.*Stream"
ignoreFunctionCall: []
ImplicitDefaultLocale:
active: true
ImplicitUnitReturnType:
active: false
allowExplicitReturnType: true
InvalidRange:
active: true
IteratorHasNextCallsNextMethod:
active: true
IteratorNotThrowingNoSuchElementException:
active: true
LateinitUsage:
active: false
excludes:
[
"**/test/**",
"**/androidTest/**",
"**/commonTest/**",
"**/jvmTest/**",
"**/androidUnitTest/**",
"**/androidInstrumentedTest/**",
"**/jsTest/**",
"**/iosTest/**",
]
ignoreOnClassesPattern: ""
MapGetWithNotNullAssertionOperator:
active: true
MissingPackageDeclaration:
active: false
excludes: ["**/*.kts"]
NullCheckOnMutableProperty:
active: false
NullableToStringCall:
active: false
PropertyUsedBeforeDeclaration:
active: false
UnconditionalJumpStatementInLoop:
active: false
UnnecessaryNotNullCheck:
active: false
UnnecessaryNotNullOperator:
active: true
UnnecessarySafeCall:
active: true
UnreachableCatchBlock:
active: true
UnreachableCode:
active: true
UnsafeCallOnNullableType:
active: true
excludes:
[
"**/test/**",
"**/androidTest/**",
"**/commonTest/**",
"**/jvmTest/**",
"**/androidUnitTest/**",
"**/androidInstrumentedTest/**",
"**/jsTest/**",
"**/iosTest/**",
]
UnsafeCast:
active: true
UnusedUnaryOperator:
active: true
UselessPostfixExpression:
active: true
WrongEqualsTypeParameter:
active: true
style:
active: true
AlsoCouldBeApply:
active: false
BracesOnIfStatements:
active: false
singleLine: "never"
multiLine: "always"
BracesOnWhenStatements:
active: false
singleLine: "necessary"
multiLine: "consistent"
CanBeNonNullable:
active: false
CascadingCallWrapping:
active: false
includeElvis: true
ClassOrdering:
active: false
CollapsibleIfStatements:
active: false
DataClassContainsFunctions:
active: false
conversionFunctionPrefix:
- "to"
allowOperators: false
DataClassShouldBeImmutable:
active: false
DestructuringDeclarationWithTooManyEntries:
active: true
maxDestructuringEntries: 3
DoubleNegativeLambda:
active: false
negativeFunctions:
- reason: "Use `takeIf` instead."
value: "takeUnless"
- reason: "Use `all` instead."
value: "none"
negativeFunctionNameParts:
- "not"
- "non"
EqualsNullCall:
active: true
EqualsOnSignatureLine:
active: false
ExplicitCollectionElementAccessMethod:
active: false
ExplicitItLambdaParameter:
active: true
ExpressionBodySyntax:
active: false
includeLineWrapping: false
ForbiddenAnnotation:
active: false
annotations:
- reason: "it is a java annotation. Use `Suppress` instead."
value: "java.lang.SuppressWarnings"
- reason: "it is a java annotation. Use `kotlin.Deprecated` instead."
value: "java.lang.Deprecated"
- reason: "it is a java annotation. Use `kotlin.annotation.MustBeDocumented` instead."
value: "java.lang.annotation.Documented"
- reason: "it is a java annotation. Use `kotlin.annotation.Target` instead."
value: "java.lang.annotation.Target"
- reason: "it is a java annotation. Use `kotlin.annotation.Retention` instead."
value: "java.lang.annotation.Retention"
- reason: "it is a java annotation. Use `kotlin.annotation.Repeatable` instead."
value: "java.lang.annotation.Repeatable"
- reason: "Kotlin does not support @Inherited annotation, see https://youtrack.jetbrains.com/issue/KT-22265"
value: "java.lang.annotation.Inherited"
ForbiddenComment:
active: false # Turning off for this implementation
comments:
- reason: "Forbidden FIXME todo marker in comment, please fix the problem."
value: "FIXME:"
- reason: "Forbidden STOPSHIP todo marker in comment, please address the problem before shipping the code."
value: "STOPSHIP:"
- reason: "Forbidden TODO todo marker in comment, please do the changes."
value: "TODO:"
allowedPatterns: ""
ForbiddenImport:
active: false
imports: []
forbiddenPatterns: ""
ForbiddenMethodCall:
active: false
methods:
- reason: "print does not allow you to configure the output stream. Use a logger instead."
value: "kotlin.io.print"
- reason: "println does not allow you to configure the output stream. Use a logger instead."
value: "kotlin.io.println"
ForbiddenSuppress:
active: false
rules: []
ForbiddenVoid:
active: true
ignoreOverridden: false
ignoreUsageInGenerics: false
FunctionOnlyReturningConstant:
active: true
ignoreOverridableFunction: true
ignoreActualFunction: true
excludedFunctions: []
LoopWithTooManyJumpStatements:
active: true
maxJumpCount: 1
MagicNumber:
active: false # true
excludes:
[
"**/test/**",
"**/androidTest/**",
"**/commonTest/**",
"**/jvmTest/**",
"**/androidUnitTest/**",
"**/androidInstrumentedTest/**",
"**/jsTest/**",
"**/iosTest/**",
"**/*.kts",
]
ignoreNumbers:
- "-1"
- "0"
- "1"
- "2"
ignoreHashCodeFunction: true
ignorePropertyDeclaration: false
ignoreLocalVariableDeclaration: false
ignoreConstantDeclaration: true
ignoreCompanionObjectPropertyDeclaration: true
ignoreAnnotation: false
ignoreNamedArgument: true
ignoreEnums: false
ignoreRanges: false
ignoreExtensionFunctions: true
MandatoryBracesLoops:
active: false
MaxChainedCallsOnSameLine:
active: false
maxChainedCalls: 5
MaxLineLength:
active: true
maxLineLength: 120
excludePackageStatements: true
excludeImportStatements: true
excludeCommentStatements: false
excludeRawStrings: true
MayBeConst:
active: true
ModifierOrder:
active: true
MultilineLambdaItParameter:
active: false
MultilineRawStringIndentation:
active: false
indentSize: 4
trimmingMethods:
- "trimIndent"
- "trimMargin"
NestedClassesVisibility:
active: true
NewLineAtEndOfFile:
active: true
NoTabs:
active: false
NullableBooleanCheck:
active: false
ObjectLiteralToLambda:
active: true
OptionalAbstractKeyword:
active: true
OptionalUnit:
active: false
PreferToOverPairSyntax:
active: false
ProtectedMemberInFinalClass:
active: true
RedundantExplicitType:
active: false
RedundantHigherOrderMapUsage:
active: true
RedundantVisibilityModifierRule:
active: false
ReturnCount:
active: true
max: 2
excludedFunctions:
- "equals"
excludeLabeled: false
excludeReturnFromLambda: true
excludeGuardClauses: false
SafeCast:
active: true
SerialVersionUIDInSerializableClass:
active: true
SpacingBetweenPackageAndImports:
active: false
StringShouldBeRawString:
active: false
maxEscapedCharacterCount: 2
ignoredCharacters: []
ThrowsCount:
active: true
max: 2
excludeGuardClauses: false
TrailingWhitespace:
active: false
TrimMultilineRawString:
active: false
trimmingMethods:
- "trimIndent"
- "trimMargin"
UnderscoresInNumericLiterals:
active: false
acceptableLength: 4
allowNonStandardGrouping: false
UnnecessaryAbstractClass:
active: true
UnnecessaryAnnotationUseSiteTarget:
active: false
UnnecessaryApply:
active: true
UnnecessaryBackticks:
active: false
UnnecessaryBracesAroundTrailingLambda:
active: false
UnnecessaryFilter:
active: true
UnnecessaryInheritance:
active: true
UnnecessaryInnerClass:
active: false
UnnecessaryLet:
active: false
UnnecessaryParentheses:
active: false
allowForUnclearPrecedence: false
UntilInsteadOfRangeTo:
active: false
UnusedImports:
active: false
UnusedParameter:
active: true
allowedNames: "ignored|expected"
UnusedPrivateClass:
active: true
UnusedPrivateMember:
active: true
allowedNames: ""
ignoreAnnotated: ['Preview', 'DevicePreviews']
UnusedPrivateProperty:
active: true
allowedNames: "_|ignored|expected|serialVersionUID"
UseAnyOrNoneInsteadOfFind:
active: true
UseArrayLiteralsInAnnotations:
active: true
UseCheckNotNull:
active: true
UseCheckOrError:
active: true
UseDataClass:
active: false
allowVars: false
UseEmptyCounterpart:
active: false
UseIfEmptyOrIfBlank:
active: false
UseIfInsteadOfWhen:
active: false
ignoreWhenContainingVariableDeclaration: false
UseIsNullOrEmpty:
active: true
UseLet:
active: false
UseOrEmpty:
active: true
UseRequire:
active: true
UseRequireNotNull:
active: true
UseSumOfInsteadOfFlatMapSize:
active: false
UselessCallOnNotNull:
active: true
UtilityClassWithPublicConstructor:
active: true
VarCouldBeVal:
active: true
ignoreLateinitVar: false
WildcardImport:
active: true
excludeImports:
- "java.util.*"
TwitterCompose:
CompositionLocalAllowlist:
active: true
# You can optionally define a list of CompositionLocals that are allowed here
# allowedCompositionLocals: LocalSomething,LocalSomethingElse
CompositionLocalNaming:
active: true
ContentEmitterReturningValues:
active: true
# You can optionally add your own composables here
# contentEmitters: MyComposable,MyOtherComposable
ModifierComposable:
active: true
ModifierMissing:
active: true
ModifierReused:
active: true
ModifierWithoutDefault:
active: true
MultipleEmitters:
active: true
# You can optionally add your own composables here
# contentEmitters: MyComposable,MyOtherComposable
MutableParams:
active: true
ComposableNaming:
active: true
# You can optionally disable the checks in this rule for regex matches against the composable name (e.g. molecule presenters)
# allowedComposableFunctionNames: .*Presenter,.*MoleculePresenter
ComposableParamOrder:
active: true
PreviewNaming:
active: true
PreviewPublic:
active: true
# You can optionally disable that only previews with @PreviewParameter are flagged
# previewPublicOnlyIfParams: false
RememberMissing:
active: true
UnstableCollections:
active: false
ViewModelForwarding:
active: true
ViewModelInjection:
active: true