@@ -20,6 +20,11 @@ library;
2020
2121import 'package:analysis_server_plugin/plugin.dart' ;
2222import 'package:analysis_server_plugin/registry.dart' ;
23+ // ignore: implementation_imports
24+ import 'package:analysis_server_plugin/src/plugin_server.dart' ;
25+ // ignore: implementation_imports
26+ import 'package:analysis_server_plugin/src/registry.dart' as plugin_registry;
27+ import 'package:analyzer/analysis_rule/analysis_rule.dart' ;
2328
2429// Rules
2530import 'package:many_lints/src/rules/always_remove_listener.dart' ;
@@ -214,106 +219,106 @@ class ManyLintsPlugin extends Plugin {
214219 @override
215220 void register (PluginRegistry registry) {
216221 // Register warning rules (enabled by default)
217- registry. registerWarningRule ( AlwaysRemoveListener ());
218- registry. registerWarningRule ( AvoidBlocPublicMethods ());
219- registry. registerWarningRule ( AvoidPassingBlocToBloc ());
220- registry. registerWarningRule ( AvoidPassingBuildContextToBlocs ());
221- registry. registerWarningRule ( PreferBlocExtensions ());
222- registry. registerWarningRule ( PreferImmutableBlocState ());
223- registry. registerWarningRule ( PreferMultiBlocProvider ());
224- registry. registerWarningRule ( AvoidCascadeAfterIfNull ());
225- registry. registerWarningRule ( AvoidCommentedOutCode ());
226- registry. registerWarningRule ( AvoidDuplicateCascades ());
227- registry. registerWarningRule ( AvoidConstantConditions ());
228- registry. registerWarningRule ( AvoidConstantSwitches ());
229- registry. registerWarningRule ( AvoidContradictoryExpressions ());
230- registry. registerWarningRule ( AvoidAccessingCollectionsByConstantIndex ());
231- registry. registerWarningRule ( AvoidGenericsShadowing ());
232- registry. registerWarningRule ( AvoidMapKeysContains ());
233- registry. registerWarningRule ( AvoidMisusedTestMatchers ());
234- registry. registerWarningRule ( AvoidOnlyRethrow ());
235- registry. registerWarningRule ( AvoidThrowInCatchBlock ());
236- registry. registerWarningRule ( AvoidUnassignedStreamSubscriptions ());
237- registry. registerWarningRule ( AvoidFlexibleOutsideFlex ());
238- registry. registerWarningRule ( AvoidIncompleteCopyWith ());
239- registry. registerWarningRule ( AvoidIncorrectImageOpacity ());
240- registry. registerWarningRule ( AvoidUnnecessaryGestureDetector ());
241- registry. registerWarningRule ( AvoidUnnecessaryOverrides ());
242- registry. registerWarningRule ( AvoidUnnecessaryOverridesInState ());
243- registry. registerWarningRule ( AvoidUnnecessarySetstate ());
244- registry. registerWarningRule ( AvoidUnnecessaryStatefulWidgets ());
245- registry. registerWarningRule ( AvoidMountedInSetstate ());
246- registry. registerWarningRule ( AvoidCollectionEqualityChecks ());
247- registry. registerWarningRule ( DisposeFields ());
248- registry. registerWarningRule ( DisposeProvidedInstances ());
249- registry. registerWarningRule ( AvoidCollectionMethodsWithUnrelatedTypes ());
250- registry. registerWarningRule ( PreferAbstractFinalStaticClass ());
251- registry. registerWarningRule ( PreferCenterOverAlign ());
252- registry. registerWarningRule ( PreferAlignOverContainer ());
253- registry. registerWarningRule ( PreferExplicitFunctionType ());
254- registry. registerWarningRule ( PreferOverridingParentEquality ());
255- registry. registerWarningRule ( PreferPaddingOverContainer ());
256- registry. registerWarningRule ( PreferReturnAwait ());
257- registry. registerWarningRule ( PreferReturningShorthands ());
258- registry. registerWarningRule ( PreferShorthandsWithConstructors ());
259- registry. registerWarningRule ( PreferShorthandsWithEnums ());
260- registry. registerWarningRule ( PreferShorthandsWithStaticFields ());
261- registry. registerWarningRule ( PreferSimplerPatternsNullCheck ());
262- registry. registerWarningRule ( PreferSwitchExpression ());
263- registry. registerWarningRule ( PreferWildcardPattern ());
264- registry. registerWarningRule ( PreferTypeOverVar ());
265- registry. registerWarningRule ( PreferAnyOrEvery ());
266- registry. registerWarningRule ( PreferContains ());
267- registry. registerWarningRule ( PreferEnumsByName ());
268- registry. registerWarningRule ( PreferExpectLater ());
269- registry. registerWarningRule ( PreferIterableOf ());
270- registry. registerWarningRule ( AvoidSingleChildInMultiChildWidgets ());
271- registry. registerWarningRule ( AvoidUnnecessaryHookWidgets ());
272- registry. registerWarningRule ( AvoidConditionalHooks ());
273- registry. registerWarningRule ( AvoidUnnecessaryConsumerWidgets ());
274- registry. registerWarningRule ( UseBlocSuffix ());
275- registry. registerWarningRule ( UseCubitSuffix ());
276- registry. registerWarningRule ( UseNotifierSuffix ());
277- registry. registerWarningRule ( UseDedicatedMediaQueryMethods ());
278- registry. registerWarningRule ( UseGap ());
279- registry. registerWarningRule ( PreferSingleWidgetPerFile ());
280- registry. registerWarningRule ( PreferSpacing ());
281- registry. registerWarningRule ( PreferTestMatchers ());
282- registry. registerWarningRule ( ProperSuperCalls ());
283- registry. registerWarningRule ( PreferClassDestructuring ());
284- registry. registerWarningRule ( UseClosestBuildContext ());
285- registry. registerWarningRule ( UseExistingDestructuring ());
286- registry. registerWarningRule ( UseExistingVariable ());
287- registry. registerWarningRule ( AvoidSingleFieldDestructuring ());
288- registry. registerWarningRule ( AvoidBorderAll ());
289- registry. registerWarningRule ( AvoidExpandedAsSpacer ());
290- registry. registerWarningRule ( AvoidReturningWidgets ());
291- registry. registerWarningRule ( AvoidShrinkWrapInLists ());
292- registry. registerWarningRule ( AvoidNotifierConstructors ());
293- registry. registerWarningRule ( AvoidPublicNotifierProperties ());
294- registry. registerWarningRule ( AvoidRefInsideStateDispose ());
295- registry. registerWarningRule ( AvoidRefReadInsideBuild ());
296- registry. registerWarningRule ( AvoidStateConstructors ());
297- registry. registerWarningRule ( PreferAsyncCallback ());
298- registry. registerWarningRule ( PreferComputeOverIsolateRun ());
299- registry. registerWarningRule ( PreferConstBorderRadius ());
300- registry. registerWarningRule ( AvoidWrappingInPadding ());
301- registry. registerWarningRule ( PreferConstrainedBoxOverContainer ());
302- registry. registerWarningRule ( PreferContainer ());
303- registry. registerWarningRule ( PreferCorrectEdgeInsetsConstructor ());
304- registry. registerWarningRule ( PreferForLoopInChildren ());
305- registry. registerWarningRule ( PreferSingleSetstate ());
306- registry. registerWarningRule ( PreferSizedBoxSquare ());
307- registry. registerWarningRule ( PreferTextRich ());
308- registry. registerWarningRule ( PreferTransformOverContainer ());
309- registry. registerWarningRule ( PreferVoidCallback ());
310- registry. registerWarningRule ( UseRefAndStateSynchronously ());
311- registry. registerWarningRule ( UseRefReadSynchronously ());
312- registry. registerWarningRule ( ListAllEquatableFields ());
313- registry. registerWarningRule ( PreferEquatableMixin ());
314- registry. registerWarningRule ( PreferUseCallback ());
315- registry. registerWarningRule ( PreferUsePrefix ());
316- registry. registerWarningRule ( UseSliverPrefix ());
222+ _registerWarningRule (registry, AlwaysRemoveListener ());
223+ _registerWarningRule (registry, AvoidBlocPublicMethods ());
224+ _registerWarningRule (registry, AvoidPassingBlocToBloc ());
225+ _registerWarningRule (registry, AvoidPassingBuildContextToBlocs ());
226+ _registerWarningRule (registry, PreferBlocExtensions ());
227+ _registerWarningRule (registry, PreferImmutableBlocState ());
228+ _registerWarningRule (registry, PreferMultiBlocProvider ());
229+ _registerWarningRule (registry, AvoidCascadeAfterIfNull ());
230+ _registerWarningRule (registry, AvoidCommentedOutCode ());
231+ _registerWarningRule (registry, AvoidDuplicateCascades ());
232+ _registerWarningRule (registry, AvoidConstantConditions ());
233+ _registerWarningRule (registry, AvoidConstantSwitches ());
234+ _registerWarningRule (registry, AvoidContradictoryExpressions ());
235+ _registerWarningRule (registry, AvoidAccessingCollectionsByConstantIndex ());
236+ _registerWarningRule (registry, AvoidGenericsShadowing ());
237+ _registerWarningRule (registry, AvoidMapKeysContains ());
238+ _registerWarningRule (registry, AvoidMisusedTestMatchers ());
239+ _registerWarningRule (registry, AvoidOnlyRethrow ());
240+ _registerWarningRule (registry, AvoidThrowInCatchBlock ());
241+ _registerWarningRule (registry, AvoidUnassignedStreamSubscriptions ());
242+ _registerWarningRule (registry, AvoidFlexibleOutsideFlex ());
243+ _registerWarningRule (registry, AvoidIncompleteCopyWith ());
244+ _registerWarningRule (registry, AvoidIncorrectImageOpacity ());
245+ _registerWarningRule (registry, AvoidUnnecessaryGestureDetector ());
246+ _registerWarningRule (registry, AvoidUnnecessaryOverrides ());
247+ _registerWarningRule (registry, AvoidUnnecessaryOverridesInState ());
248+ _registerWarningRule (registry, AvoidUnnecessarySetstate ());
249+ _registerWarningRule (registry, AvoidUnnecessaryStatefulWidgets ());
250+ _registerWarningRule (registry, AvoidMountedInSetstate ());
251+ _registerWarningRule (registry, AvoidCollectionEqualityChecks ());
252+ _registerWarningRule (registry, DisposeFields ());
253+ _registerWarningRule (registry, DisposeProvidedInstances ());
254+ _registerWarningRule (registry, AvoidCollectionMethodsWithUnrelatedTypes ());
255+ _registerWarningRule (registry, PreferAbstractFinalStaticClass ());
256+ _registerWarningRule (registry, PreferCenterOverAlign ());
257+ _registerWarningRule (registry, PreferAlignOverContainer ());
258+ _registerWarningRule (registry, PreferExplicitFunctionType ());
259+ _registerWarningRule (registry, PreferOverridingParentEquality ());
260+ _registerWarningRule (registry, PreferPaddingOverContainer ());
261+ _registerWarningRule (registry, PreferReturnAwait ());
262+ _registerWarningRule (registry, PreferReturningShorthands ());
263+ _registerWarningRule (registry, PreferShorthandsWithConstructors ());
264+ _registerWarningRule (registry, PreferShorthandsWithEnums ());
265+ _registerWarningRule (registry, PreferShorthandsWithStaticFields ());
266+ _registerWarningRule (registry, PreferSimplerPatternsNullCheck ());
267+ _registerWarningRule (registry, PreferSwitchExpression ());
268+ _registerWarningRule (registry, PreferWildcardPattern ());
269+ _registerWarningRule (registry, PreferTypeOverVar ());
270+ _registerWarningRule (registry, PreferAnyOrEvery ());
271+ _registerWarningRule (registry, PreferContains ());
272+ _registerWarningRule (registry, PreferEnumsByName ());
273+ _registerWarningRule (registry, PreferExpectLater ());
274+ _registerWarningRule (registry, PreferIterableOf ());
275+ _registerWarningRule (registry, AvoidSingleChildInMultiChildWidgets ());
276+ _registerWarningRule (registry, AvoidUnnecessaryHookWidgets ());
277+ _registerWarningRule (registry, AvoidConditionalHooks ());
278+ _registerWarningRule (registry, AvoidUnnecessaryConsumerWidgets ());
279+ _registerWarningRule (registry, UseBlocSuffix ());
280+ _registerWarningRule (registry, UseCubitSuffix ());
281+ _registerWarningRule (registry, UseNotifierSuffix ());
282+ _registerWarningRule (registry, UseDedicatedMediaQueryMethods ());
283+ _registerWarningRule (registry, UseGap ());
284+ _registerWarningRule (registry, PreferSingleWidgetPerFile ());
285+ _registerWarningRule (registry, PreferSpacing ());
286+ _registerWarningRule (registry, PreferTestMatchers ());
287+ _registerWarningRule (registry, ProperSuperCalls ());
288+ _registerWarningRule (registry, PreferClassDestructuring ());
289+ _registerWarningRule (registry, UseClosestBuildContext ());
290+ _registerWarningRule (registry, UseExistingDestructuring ());
291+ _registerWarningRule (registry, UseExistingVariable ());
292+ _registerWarningRule (registry, AvoidSingleFieldDestructuring ());
293+ _registerWarningRule (registry, AvoidBorderAll ());
294+ _registerWarningRule (registry, AvoidExpandedAsSpacer ());
295+ _registerWarningRule (registry, AvoidReturningWidgets ());
296+ _registerWarningRule (registry, AvoidShrinkWrapInLists ());
297+ _registerWarningRule (registry, AvoidNotifierConstructors ());
298+ _registerWarningRule (registry, AvoidPublicNotifierProperties ());
299+ _registerWarningRule (registry, AvoidRefInsideStateDispose ());
300+ _registerWarningRule (registry, AvoidRefReadInsideBuild ());
301+ _registerWarningRule (registry, AvoidStateConstructors ());
302+ _registerWarningRule (registry, PreferAsyncCallback ());
303+ _registerWarningRule (registry, PreferComputeOverIsolateRun ());
304+ _registerWarningRule (registry, PreferConstBorderRadius ());
305+ _registerWarningRule (registry, AvoidWrappingInPadding ());
306+ _registerWarningRule (registry, PreferConstrainedBoxOverContainer ());
307+ _registerWarningRule (registry, PreferContainer ());
308+ _registerWarningRule (registry, PreferCorrectEdgeInsetsConstructor ());
309+ _registerWarningRule (registry, PreferForLoopInChildren ());
310+ _registerWarningRule (registry, PreferSingleSetstate ());
311+ _registerWarningRule (registry, PreferSizedBoxSquare ());
312+ _registerWarningRule (registry, PreferTextRich ());
313+ _registerWarningRule (registry, PreferTransformOverContainer ());
314+ _registerWarningRule (registry, PreferVoidCallback ());
315+ _registerWarningRule (registry, UseRefAndStateSynchronously ());
316+ _registerWarningRule (registry, UseRefReadSynchronously ());
317+ _registerWarningRule (registry, ListAllEquatableFields ());
318+ _registerWarningRule (registry, PreferEquatableMixin ());
319+ _registerWarningRule (registry, PreferUseCallback ());
320+ _registerWarningRule (registry, PreferUsePrefix ());
321+ _registerWarningRule (registry, UseSliverPrefix ());
317322
318323 // Register fixes for rules
319324 registry.registerFixForRule (
@@ -592,3 +597,24 @@ class ManyLintsPlugin extends Plugin {
592597 registry.registerAssist (ConvertIterableMapToCollectionFor .new );
593598 }
594599}
600+
601+ void _registerWarningRule (PluginRegistry registry, AbstractAnalysisRule rule) {
602+ final isNamedRegistry = identical (
603+ PluginServer .registries['many_lints' ],
604+ registry,
605+ );
606+ if (! isNamedRegistry) {
607+ registry.registerWarningRule (rule);
608+ return ;
609+ }
610+
611+ if (registry is plugin_registry.PluginRegistryImpl ) {
612+ registry.warningRules[rule.name.toLowerCase ()] = rule;
613+ for (final code in rule.diagnosticCodes) {
614+ registry.codeMap[code.lowerCaseUniqueName] = code;
615+ }
616+ return ;
617+ }
618+
619+ registry.registerWarningRule (rule);
620+ }
0 commit comments