mirror of
https://github.com/immich-app/immich.git
synced 2025-01-01 08:31:59 +00:00
mobile: add initial DCM analysis_options (#5136)
Co-authored-by: shalong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
This commit is contained in:
parent
fa71641ea4
commit
41d43acf5f
2 changed files with 59 additions and 1 deletions
|
@ -61,9 +61,15 @@ IMMICH_SERVER_URL=https://demo.immich.app/api npm run dev
|
||||||
|
|
||||||
Setting these in the IDE give a better developer experience, auto-formatting code on save, and providing instant feedback on lint issues.
|
Setting these in the IDE give a better developer experience, auto-formatting code on save, and providing instant feedback on lint issues.
|
||||||
|
|
||||||
|
### Dart Code Metris
|
||||||
|
|
||||||
|
The mobile app uses DCM (Dart Code Metrics) for linting and metrics calculation. Please refer to the [Getting Started](https://dcm.dev/docs/getting-started/#installation) page for more information on setting up DCM
|
||||||
|
|
||||||
|
Note: Activating the license is not required.
|
||||||
|
|
||||||
### VSCode
|
### VSCode
|
||||||
|
|
||||||
Install `Flutter`, `Prettier`, `ESLint` and `Svelte` extensions.
|
Install `Flutter`, `DCM`, `Prettier`, `ESLint` and `Svelte` extensions.
|
||||||
|
|
||||||
in User `settings.json` (`cmd + shift + p` and search for `Open User Settings JSON`) add the following:
|
in User `settings.json` (`cmd + shift + p` and search for `Open User Settings JSON`) add the following:
|
||||||
|
|
||||||
|
|
|
@ -36,3 +36,55 @@ analyzer:
|
||||||
- openapi/
|
- openapi/
|
||||||
- openapi/test/
|
- openapi/test/
|
||||||
- lib/generated_plugin_registrant.dart
|
- lib/generated_plugin_registrant.dart
|
||||||
|
|
||||||
|
dart_code_metrics:
|
||||||
|
metrics:
|
||||||
|
cyclomatic-complexity: 20
|
||||||
|
number-of-parameters: 4
|
||||||
|
maximum-nesting-level: 5
|
||||||
|
rules:
|
||||||
|
# Common
|
||||||
|
- avoid-accessing-collections-by-constant-index
|
||||||
|
- avoid-accessing-other-classes-private-members
|
||||||
|
- avoid-async-call-in-sync-function
|
||||||
|
- avoid-cascade-after-if-null
|
||||||
|
- avoid-collapsible-if
|
||||||
|
- avoid-collection-methods-with-unrelated-types
|
||||||
|
- avoid-declaring-call-method
|
||||||
|
- avoid-double-slash-imports
|
||||||
|
- avoid-duplicate-cascades
|
||||||
|
- avoid-duplicate-patterns
|
||||||
|
- avoid-generics-shadowing
|
||||||
|
- avoid-global-state
|
||||||
|
# Flutter
|
||||||
|
- add-copy-with:
|
||||||
|
file-name-pattern: '.model.dart'
|
||||||
|
- always-remove-listener
|
||||||
|
- avoid-border-all
|
||||||
|
- avoid-empty-setstate
|
||||||
|
- avoid-expanded-as-spacer
|
||||||
|
- avoid-incomplete-copy-with
|
||||||
|
- avoid-inherited-widget-in-initstate
|
||||||
|
- avoid-late-context
|
||||||
|
- avoid-recursive-widget-calls
|
||||||
|
- avoid-returning-widgets
|
||||||
|
- avoid-shrink-wrap-in-lists
|
||||||
|
- avoid-single-child-column-or-row
|
||||||
|
- avoid-state-constructors
|
||||||
|
- avoid-stateless-widget-initialized-fields
|
||||||
|
- avoid-unnecessary-overrides-in-state
|
||||||
|
- avoid-unnecessary-stateful-widgets
|
||||||
|
- avoid-wrapping-in-padding
|
||||||
|
- dispose-fields
|
||||||
|
- prefer-const-border-radius
|
||||||
|
- prefer-correct-edge-insets-constructor
|
||||||
|
- prefer-dedicated-media-query-methods
|
||||||
|
- prefer-define-hero-tag
|
||||||
|
- prefer-extracting-callbacks
|
||||||
|
- prefer-single-widget-per-file:
|
||||||
|
ignore-private-widgets: true
|
||||||
|
- prefer-sliver-prefix
|
||||||
|
- prefer-text-rich
|
||||||
|
- prefer-using-list-view
|
||||||
|
- proper-super-calls
|
||||||
|
- use-setstate-synchronously
|
||||||
|
|
Loading…
Reference in a new issue