Software analytics tool that helps developers analyse and improve software quality.

Overview

Build Status Coverage Status Pub Version Dart SDK Version License Pub popularity GitHub popularity

Dart Code Metrics logo

Dart Code Metrics

Note: you can find the full documentation on the website

Configuration | Rules | Metrics | Anti-patterns

Flutter Favorite Badge

Dart Code Metrics is a static analysis tool that helps you analyse and improve your code quality.

Links

Installation

$ dart pub add --dev dart_code_metrics

# or for a Flutter package
$ flutter pub add --dev dart_code_metrics

OR

add it manually to pubspec.yaml

dev_dependencies:
  dart_code_metrics: ^4.8.1

and then run

$ dart pub get

# or for a Flutter package
$ flutter pub get

Basic configuration

Add configuration to analysis_options.yaml

dart_code_metrics:
  anti-patterns:
    - long-method
    - long-parameter-list
  metrics:
    cyclomatic-complexity: 20
    maximum-nesting-level: 5
    number-of-parameters: 4
    source-lines-of-code: 50
  metrics-exclude:
    - test/**
  rules:
    - newline-before-return
    - no-boolean-literal-compare
    - no-empty-block
    - prefer-trailing-comma
    - prefer-conditional-expressions
    - no-equal-then-else

Reload IDE to allow the analyzer to discover the plugin config.

You can read more about the configuration on the website.

Usage

Analyzer plugin

Dart Code Metrics can be used as a plugin for the Dart analyzer package providing additional rules. All issues produced by rules or anti-patterns will be highlighted in IDE.

Highlighted issue example

Rules that marked with a has auto-fix badge have auto-fixes available through the IDE context menu. VS Code example:

VS Code example

CLI

The package can be used as CLI and supports multiple commands:

Command Example of use Short description
analyze dart run dart_code_metrics:metrics analyze lib Reports code metrics, rules and anti-patterns violations.
check-unused-files dart run dart_code_metrics:metrics check-unused-files lib Checks unused *.dart files.
check-unused-l10n dart run dart_code_metrics:metrics check-unused-l10n lib Check unused localization in *.dart files.

For additional help on any of the commands, enter dart run dart_code_metrics:metrics help <command>

Note: if you're setting up Dart Code Metrics for multi-package repository, check out this website section.

Analyze

Reports code metrics, rules and anti-patterns violations. To execute the command, run

$ dart run dart_code_metrics:metrics analyze lib

# or for a Flutter package
$ flutter pub run dart_code_metrics:metrics analyze lib

It will produce a result in one of the format:

  • Console
  • GitHub
  • Codeclimate
  • HTML
  • JSON

Console report example:

Console report example

Check unused files

Checks unused *.dart files. To execute the command, run

$ dart run dart_code_metrics:metrics check-unused-files lib

# or for a Flutter package
$ flutter pub run dart_code_metrics:metrics check-unused-files lib

It will produce a result in one of the format:

  • Console
  • JSON

Console report example:

Console report example

Check unused localization

Checks unused Dart class members, that encapsulates the app’s localized values.

An example of such class:

class ClassWithLocalization {
  String get title {
    return Intl.message(
      'Hello World',
      name: 'title',
      desc: 'Title for the Demo application',
      locale: localeName,
    );
  }
}

To execute the command, run

$ dart run dart_code_metrics:metrics check-unused-l10n lib

# or for a Flutter package
$ flutter pub run dart_code_metrics:metrics check-unused-l10n lib

It will produce a result in one of the format:

  • Console
  • JSON

Console report example:

Console report example

Troubleshooting

Please read the following guide if the plugin is not working as you'd expect it to work.

Contributing

If you are interested in contributing, please check out the contribution guidelines. Feedback and contributions are welcome!

Articles

En

Ru

How to reach us

Please feel free to ask any questions about this tool. Join our community chat on Telegram. We speak both English and Russian.

LICENSE

MIT

Comments
  • [BUG] - `flutter pub run dart_code_metrics:metrics check-unused-files lib` never finishes

    [BUG] - `flutter pub run dart_code_metrics:metrics check-unused-files lib` never finishes

    • Dart code metrics version: 4.14.0

    • Dart sdk version:

    Dart SDK version: 2.16.2 (stable) (Tue Mar 22 13:15:13 2022 +0100) on "macos_x64"
    

    Please show your full configuration:

    Configuration
    include: package:flutter_lints/flutter.yaml
    
    analyzer:
      plugins:
        - dart_code_metrics
      strong-mode:
        implicit-casts: false
        implicit-dynamic: true
      errors:
        undefined_prefixed_name: ignore
    linter:
      rules:
        always_put_required_named_parameters_first: true
        always_use_package_imports: true
        avoid_bool_literals_in_conditional_expressions: true
        avoid_classes_with_only_static_members: true
        avoid_double_and_int_checks: true
        avoid_dynamic_calls: true
        avoid_escaping_inner_quotes: true
        avoid_field_initializers_in_const_classes: true
        avoid_js_rounded_ints: true
        avoid_multiple_declarations_per_line: true
        avoid_null_checks_in_equality_operators: true
        avoid_private_typedef_functions: true
        avoid_redundant_argument_values: true
        avoid_returning_null_for_future: true
        avoid_setters_without_getters: true
        avoid_shadowing_type_parameters: true
        avoid_slow_async_io: true
        avoid_type_to_string: true
        avoid_types_on_closure_parameters: true
        avoid_unused_constructor_parameters: true
        avoid_void_async: true
        cancel_subscriptions: true
        cascade_invocations: true
        cast_nullable_to_non_nullable: true
        close_sinks: true
        comment_references: true
        conditional_uri_does_not_exist: true
        depend_on_referenced_packages: true
        directives_ordering: true
        empty_constructor_bodies: true
        eol_at_end_of_file: true
        flutter_style_todos: true
        invariant_booleans: true
        join_return_with_assignment: true
        leading_newlines_in_multiline_strings: true
        lines_longer_than_80_chars: false # We use 160: true
        literal_only_boolean_expressions: true
        missing_whitespace_between_adjacent_strings: true
        no_adjacent_strings_in_list: true
        no_logic_in_create_state: true
        no_runtimeType_toString: true
        noop_primitive_operations: true
        null_check_on_nullable_type_parameter: true
        omit_local_variable_types: true
        one_member_abstracts: false # Flutter disabled it because it is useful to have abstract classes with only one member
        only_throw_errors: true
        package_api_docs: true
        parameter_assignments: true
        prefer_asserts_in_initializer_lists: true
        prefer_constructors_over_static_methods: true
        prefer_final_in_for_each: true
        prefer_final_locals: true
        prefer_foreach: true
        prefer_if_elements_to_conditional_expressions: true
        prefer_null_aware_method_calls: true
        prefer_null_aware_operators: true
        prefer_mixin: false # Has false positives, see https://github.com/dart-lang/linter/issues/3018.
        prefer_single_quotes: true
        public_member_api_docs: true
        sized_box_shrink_expand: true
        sort_child_properties_last: true
        sort_constructors_first: true
        sort_pub_dependencies: true
        sort_unnamed_constructors_first: true
        test_types_in_equals: true
        throw_in_finally: true
        tighten_type_of_initializing_formals: true
        unawaited_futures: true
        unnecessary_await_in_return: true
        unnecessary_constructor_name: true
        unnecessary_lambdas: true
        unnecessary_late: true
        unnecessary_null_aware_assignments: true
        unnecessary_null_checks: true
        unnecessary_nullable_for_final_variable_declarations: true
        unnecessary_parenthesis: true
        unnecessary_raw_strings: true
        unnecessary_statements: true
        unsafe_html: true
        use_decorated_box: true
        use_if_null_to_convert_nulls_to_bools: true
        use_is_even_rather_than_modulo: true
        use_key_in_widget_constructors: false
        use_late_for_private_fields_and_variables: true
        use_named_constants: true
        use_raw_strings: true
        use_setters_to_change_properties: true
        use_test_throws_matchers: true
        valid_regexps: true
        void_checks: true
    
    dart_code_metrics:
      anti-patterns:
        - long-method
        - long-parameter-list
      metrics:
        cyclomatic-complexity: 20
        maximum-nesting-level: 5
        number-of-parameters: 4
        source-lines-of-code: 50
      metrics-exclude:
        - "lib/generated_plugin_registrant.dart" # This file is automatically created when you debug on web
        - "**/*.g.dart"
        - "**/*.gql.dart"
      rules:
        - avoid-nested-conditional-expressions
        - no-boolean-literal-compare
        - no-empty-block:
            exclude:
              - test/** # we often pass empty callbacks in tests when they are required
        - prefer-trailing-comma:
            severity: style # default is warning and that would fail on Bitrise
        - no-equal-then-else
        - avoid-border-all
        - avoid-returning-widgets
        # It is a rule name.
        # cSpell:disable-next-line
        - avoid-unnecessary-setstate
        - avoid-wrapping-in-padding
        - prefer-const-border-radius
        - avoid-missing-enum-constant-in-map
        - format-comment
        - no-magic-number
        - prefer-async-await
        - prefer-commenting-analyzer-ignores
        - prefer-first
        - prefer-last
    
    

    What did you do? Please include the source code example causing the issue.

    flutter pub run dart_code_metrics:metrics check-unused-files lib
    

    What did you expect to happen? Something

    What actually happened?

    Nothing, there is no log at all.

    Are you willing to submit a pull request to fix this bug?

    Why not, but I have not looked at the code.

    type: bug area-unused-files 
    opened by ValentinVignal 39
  • [BUG] Extreme CPU and Memory Usage

    [BUG] Extreme CPU and Memory Usage

    I'm not sure if this should be a question or a bug:

    Is there a way to reduce the CPU and Memory load of the plugin?

    I am using VSCode. When I set dart_code_metrics as an analyzer plugin I am seeing an immediate and sustained jump in CPU and Memory usage on my Macbook Pro 2.4ghz 32gb ram.

    Here is my pubspec.yaml. I'm currently on flutter version 2.5.1

    name: my_flutter_package
    publish_to: "none"
    version: 1.0.0+1
    
    environment:
      sdk: ">=2.12.0 <3.0.0"
      flutter: ">=2.5.0 <2.6.0"
    
    dev_dependencies:
      dart_code_metrics: ^4.3.0
      flutter_lints: ^1.0.4
    

    Here is my analysis_options.yaml:

    include: package:flutter_lints/flutter.yaml
    
    analyzer:
      errors:
        todo: info
        include_file_not_found: ignore
        unrelated_type_equality_checks: error
      exclude:
        - .flutter/**
        - /**/build/**
        - /**/mocks/**
        - /**/l10n/**
      plugins:
        - dart_code_metrics
    
    dart_code_metrics:
      anti-patterns:
        - long-method
        - long-parameter-list
      metrics:
        cyclomatic-complexity: 20
        lines-of-executable-code: 50
        number-of-parameters: 4
        maximum-nesting: 5
      metrics-exclude:
        - test/**
        - .flutter/**
        - /**/build/**
        - /**/mocks/**
        - /**/l10n/**
      rules:
        - newline-before-return
        - no-boolean-literal-compare
        - no-empty-block
        - prefer-trailing-comma
        - prefer-conditional-expressions
        - no-equal-then-else
    

    When I have the plugin in the analyzer plugins, I am seeing this in the analyzer server diagnostics:

    Screen Shot 2021-10-28 at 1 20 09 PM

    As soon as I remove this line and reload my VSCode, I see the following:

    plugins:
      - dart_code_metrics
    

    Screen Shot 2021-10-28 at 1 10 07 PM

    type: bug critical severity area-plugin 
    opened by m-skolnick 30
  • [Bug] Using code_metrics for a plugin that has an example app causes the Dart analysis server not to pickup on metrics analysis

    [Bug] Using code_metrics for a plugin that has an example app causes the Dart analysis server not to pickup on metrics analysis

    At work, I develop and maintain a Flutter plugin and I added code metrics to it yesterday. I configured it as I normally do. However, metrics analysis doesn't show up in Android Studio's analyzer tab, and when I view the diagnostics it shows errors because of the example. So I tried two things, and while they solved the error, neither results in the metrics being shown in the ide:

    1. Have the analyzer ignore the example
    2. Add code metrics to the example

    Unfortunately, I cannot share any code or logs - GitHub is blocked on my work machine (I'm filing this on my phone) and the code is private.

    I'd be very grateful for whatever insight you guys might have on this.

    type: bug 
    opened by GroovinChip 29
  • chore: bump react, react-dom and @types/react in /website

    chore: bump react, react-dom and @types/react in /website

    Bumps react, react-dom and @types/react. These dependencies needed to be updated together. Updates react from 17.0.2 to 18.2.0

    Release notes

    Sourced from react's releases.

    18.2.0 (June 14, 2022)

    React DOM

    React DOM Server

    • Pass information about server errors to the client. (@​salazarm and @​gnoff in #24551 and #24591)
    • Allow to provide a reason when aborting the HTML stream. (@​gnoff in #24680)
    • Eliminate extraneous text separators in the HTML where possible. (@​gnoff in #24630)
    • Disallow complex children inside <title> elements to match the browser constraints. (@​gnoff in #24679)
    • Fix buffering in some worker environments by explicitly setting highWaterMark to 0. (@​jplhomer in #24641)

    Server Components (Experimental)

    18.1.0 (April 26, 2022)

    React DOM

    React DOM Server

    • Fix escaping for the bootstrapScriptContent contents. (@​gnoff in #24385)
    • Significantly improve performance of renderToPipeableStream. (@​gnoff in #24291)

    ESLint Plugin: React Hooks

    Use Subscription

    • Replace the implementation with the use-sync-external-store shim. (@​gaearon in #24289)

    18.0.0 (March 29, 2022)

    ... (truncated)

    Changelog

    Sourced from react's changelog.

    18.2.0 (June 14, 2022)

    React DOM

    React DOM Server

    • Pass information about server errors to the client. (@​salazarm and @​gnoff in #24551 and #24591)
    • Allow to provide a reason when aborting the HTML stream. (@​gnoff in #24680)
    • Eliminate extraneous text separators in the HTML where possible. (@​gnoff in #24630)
    • Disallow complex children inside <title> elements to match the browser constraints. (@​gnoff in #24679)
    • Fix buffering in some worker environments by explicitly setting highWaterMark to 0. (@​jplhomer in #24641)

    Server Components (Experimental)

    18.1.0 (April 26, 2022)

    React DOM

    React DOM Server

    • Fix escaping for the bootstrapScriptContent contents. (@​gnoff in #24385)
    • Significantly improve performance of renderToPipeableStream. (@​gnoff in #24291)

    ESLint Plugin: React Hooks

    Use Subscription

    • Replace the implementation with the use-sync-external-store shim. (@​gaearon in #24289)

    ... (truncated)

    Commits
    Maintainer changes

    This version was pushed to npm by gnoff, a new releaser for react since your current version.


    Updates react-dom from 17.0.2 to 18.2.0

    Release notes

    Sourced from react-dom's releases.

    18.2.0 (June 14, 2022)

    React DOM

    React DOM Server

    • Pass information about server errors to the client. (@​salazarm and @​gnoff in #24551 and #24591)
    • Allow to provide a reason when aborting the HTML stream. (@​gnoff in #24680)
    • Eliminate extraneous text separators in the HTML where possible. (@​gnoff in #24630)
    • Disallow complex children inside <title> elements to match the browser constraints. (@​gnoff in #24679)
    • Fix buffering in some worker environments by explicitly setting highWaterMark to 0. (@​jplhomer in #24641)

    Server Components (Experimental)

    18.1.0 (April 26, 2022)

    React DOM

    React DOM Server

    • Fix escaping for the bootstrapScriptContent contents. (@​gnoff in #24385)
    • Significantly improve performance of renderToPipeableStream. (@​gnoff in #24291)

    ESLint Plugin: React Hooks

    Use Subscription

    • Replace the implementation with the use-sync-external-store shim. (@​gaearon in #24289)

    18.0.0 (March 29, 2022)

    ... (truncated)

    Changelog

    Sourced from react-dom's changelog.

    18.2.0 (June 14, 2022)

    React DOM

    React DOM Server

    • Pass information about server errors to the client. (@​salazarm and @​gnoff in #24551 and #24591)
    • Allow to provide a reason when aborting the HTML stream. (@​gnoff in #24680)
    • Eliminate extraneous text separators in the HTML where possible. (@​gnoff in #24630)
    • Disallow complex children inside <title> elements to match the browser constraints. (@​gnoff in #24679)
    • Fix buffering in some worker environments by explicitly setting highWaterMark to 0. (@​jplhomer in #24641)

    Server Components (Experimental)

    18.1.0 (April 26, 2022)

    React DOM

    React DOM Server

    • Fix escaping for the bootstrapScriptContent contents. (@​gnoff in #24385)
    • Significantly improve performance of renderToPipeableStream. (@​gnoff in #24291)

    ESLint Plugin: React Hooks

    Use Subscription

    • Replace the implementation with the use-sync-external-store shim. (@​gaearon in #24289)

    ... (truncated)

    Commits
    Maintainer changes

    This version was pushed to npm by gnoff, a new releaser for react-dom since your current version.


    Updates @types/react from 17.0.45 to 18.0.15

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 20
  • feat: Support l10n extensions

    feat: Support l10n extensions

    Support l10n extensions

    [ ] Documentation update [ ] Bug fix [ ] New rule [ ] Changes an existing rule [ ] Add autofixing to a rule [ ] Add a CLI option [ ] Add something to the core [ ] Other, please explain:

    • I didn't include tests because:

      • Current tests are not working on my local.
    • Documentation is not clear about how to use check-unused-l10n. https://dartcodemetrics.dev/docs/cli/check-unused-l10n The -p param would be used to find files with that pattern too, is not just for Class names.

    What changes did you make? (Give an overview)

    • The changes I made were on UnusedL10nVisitor class, now we support unused code called from extensions, the only requirements to find unused Strings on extension are:
      • The file name where the Localization is implemented should contain the name of the getter for the extension. Eg:
    filename: class_with_l10n.dart
    
    class DemoLocalizations {
      DemoLocalizations(this.localeName);
    
     final String localeName;
      
      String get hello {
        return Intl.message(
          'Hello World',
          name: 'hello,
          locale: localeName,
        );
      }
      ...
    }
    

    extension:

    filename: anyname.dart
    
    extension MyLocalizationExtension on BuildContext {
      DemoLocalizations get l10n => DemoLocalizations.of(this);
    }
    

    l10n is the name that we are going to search, then the usage will be :

    flutter pub run dart_code_metrics:metrics check-unused-l10n lib -p l10n
    

    Where l10n will find the class inside class_with_l10n.dart and the getter l10n from the extension MyLocalizationExtension.

    NOTE: I'm sure that you could improve this (maybe another param?).

    Is there anything you'd like reviewers to focus on?

    • Yes, help me to improve the documentation and adding unit tests or any other change that this PR requires in order to improve the detection of unused l10n strings (extensions or any other class).
    type: enhancement area-unused-l10n 
    opened by diegoveloper 20
  • [BUG] Problem with excluding files from analysis in VSCode (only for Windows)

    [BUG] Problem with excluding files from analysis in VSCode (only for Windows)

    I am trying to set up dart_code_metrics and Visual Studio Code. Everything works fine from command line but not in IDE.

    Here is a very simple project I created to reproduce the issue: test_app.zip

    Note that src/exclude_me.dart is excluded from analysis and prefer_single_quotes analysis error is not shown in Visual Studio Code. But I still get newline-before-return analysis error from dart_code_metrics.

    I tried both approaches to exclude files: exclude option for analyzer and metrics-exclude option for dart_code_metrics - both give the same result. Everything is ok from command line but not in IDE.

    I am not sure where is the source of this issue: dart_code_metrics plugin, Dart/Flutter VSCode extension or even analyzer package / analysis server. I am not sure if I am doing something wrong, can you please assist?

    type: bug 
    opened by roman-petrov 20
  • [BUG] check-unused-l10n doesn't find methods called via getter

    [BUG] check-unused-l10n doesn't find methods called via getter

    • Dart code metrics version: 4.7.0
    • Dart sdk version: 2.14.4 (stable)

    Please show your full configuration:

    Configuration
    analyzer:
      exclude:
        - "**/*.g.dart"
        - "**/*.gr.dart"
        - "**/*.freezed.dart"
        - "**/generated/**.dart"
        - "**/*.gform.dart"
        - "ios/**"
      strong-mode:
        implicit-casts: false
        implicit-dynamic: false
      errors:
        missing_required_param: warning
        missing_return: error
      plugins:
        - dart_code_metrics
    
    dart_code_metrics:
      anti-patterns:
        - long-method
        - long-parameter-list
      metrics:
        cyclomatic-complexity: 27
        source-lines-of-code: 50
        number-of-parameters: 4
        maximum-nesting-level: 5
      metrics-exclude:
        - test/**
        - e2e/**
        - ios/**
      rules:
        - always-remove-listener
        - avoid-non-null-assertion
        - avoid-returning-widgets
        - avoid-unnecessary-setstate
        - avoid-unused-parameters
        - avoid-wrapping-in-padding
        - double-literal-format
        - newline-before-return
        - no-boolean-literal-compare
        - prefer-match-file-name:
            exclude:
              - test/**
        - prefer-single-widget-per-file
        - prefer-trailing-comma
        - no-equal-then-else
        - binary-expression-operand-order
    

    What did you do? Please include the source code example causing the issue.

    flutter pub run dart_code_metrics:metrics check-unused-l10n lib -p ^S$
    

    Code details

    class S {
      S();
    
      static S? _current;
    
      static S get current {
        assert(_current != null,
            'No instance of S was loaded. Try to initialize the S delegate before accessing S.current.');
        return _current!;
      }
    …
    }
    
    

    What did you expect to happen? the command consider S.current.title as used l10n

    What actually happened? the command doesn't consider S.current.title as used l10n

    type: bug area-unused-l10n 
    opened by furaiev 19
  • [DO_NOT_MERGE] research: CLI performance issue profiling

    [DO_NOT_MERGE] research: CLI performance issue profiling

    I started integrating the project into our codebase and found that CLI runs extremely slow compared to dart analyze command.

    dart analyze command takes about 3-5 seconds on our codebase, dart_code_metrics CLI runs about two minutes.

    I am not sure if this is some environment configuration or maybe Windows issue. On my machine results of this simple profiling code are:

    contextForMs: 76, getResolvedUnitMs: 115290, runAnalysisforFileMs: 128.

    So analysisContext.currentSession.getResolvedUnit method call seems to be extremely slow (in another performance test I made I see that it might even take several seconds to complete for just one file). At the moment I do not know how to speed up this...

    @incendial, @dkrutskikh - can you please check (when you have time) if this issue can be reproduced on your machines and if we actually have serious performance issue here?

    opened by roman-petrov 19
  • feat: add static code diagnostic consistent-update-render-object

    feat: add static code diagnostic consistent-update-render-object

    What is the purpose of this pull request? (put an "X" next to an item)

    • [ ] Documentation update
    • [ ] Bug fix
    • [X] New rule
    • [ ] Changes an existing rule
    • [ ] Add autofixing to a rule
    • [ ] Add a CLI option
    • [ ] Add something to the core
    • [ ] Other, please explain:
    type: enhancement area-rules 
    opened by incendial 17
  • [Question] only analyze opened files in VSCode

    [Question] only analyze opened files in VSCode

    What do you want to discuss? I just learned to add dart-code-metrics to my test project, but after I added configurations to the analysis_options.yaml, and written some code that against a rule ('avoid-returning-widgets', which is added to the analysis_options.yaml file), then I switched to another file which didn't have any proplem, and finaly I restart my VS Code, and found that the warning info only show when I switch back to the one with proplem. My question is 'How to make the analyzer plugin analyze the full project when I open the IDE or project?', thanks.

    type: question area-plugin 
    opened by taibaiyinxing 17
  • feat: add byte store to improve performance

    feat: add byte store to improve performance

    What is the purpose of this pull request? (put an "X" next to an item)

    [ ] Documentation update [ ] Bug fix [ ] New rule [ ] Changes an existing rule [ ] Add autofixing to a rule [ ] Add a CLI option [X] Add something to the core [ ] Other, please explain:

    area-core 
    opened by incendial 17
  • feat: exclude `.freezed.dart` files by default

    feat: exclude `.freezed.dart` files by default

    What is the purpose of this pull request? (put an "X" next to an item)

    • [ ] Documentation update
    • [ ] Bug fix
    • [ ] New rule
    • [ ] Changes an existing rule
    • [ ] Add autofixing to a rule
    • [ ] Add a CLI option
    • [ ] Add something to the core
    • [ ] Other, please explain:

    What changes did you make? (Give an overview)

    Is there anything you'd like reviewers to focus on?

    area-core 
    opened by dkrutskikh 2
  • feat: introduce prefer-provide-intl-description rule

    feat: introduce prefer-provide-intl-description rule

    What is the purpose of this pull request? (put an "X" next to an item)

    • [ ] Documentation update
    • [ ] Bug fix
    • [x] New rule
    • [ ] Changes an existing rule
    • [ ] Add autofixing to a rule
    • [ ] Add a CLI option
    • [ ] Add something to the core
    • [ ] Other, please explain:

    What changes did you make? (Give an overview)

    Is there anything you'd like reviewers to focus on?

    area-rules 
    opened by dkrutskikh 2
  • [BUG] `use-setstate-synchronously` with switch cases and exception on handling.

    [BUG] `use-setstate-synchronously` with switch cases and exception on handling.

    See comments in code examples

    When using exception on handling.

    } on FirstException {
        if (!mounted) {
          return;
        }
        setState(() {
        });
    } on SecondException {
        // Missing analyzer warning here
        setState(() {
        });
     }
    

    When using switch case handling.

        switch (enumStatus) {
          case MyEnum.FIRST:
            if (!mounted) {
              return;
            }
            setState(() {
            });
            return;
          case MyEnum.SECOND:
            // Missing analyzer warning here
            setState(() {
            });
            return;
        }
    
    type: bug waiting for release area-rules 
    opened by asaarnak 1
  • `prefer-const-border-radius` for entire file

    `prefer-const-border-radius` for entire file

    Shouldn't there be a prefer-const-border-radius quick-fix for the entire file?

    Since mostly all quick-fixes have a quick-fix for the entire file, shouldn't this one have this function too?

    opened by FMorschel 3
  • test: add test cases

    test: add test cases

    What is the purpose of this pull request? (put an "X" next to an item)

    • [ ] Documentation update
    • [X] Bug fix
    • [ ] New rule
    • [ ] Changes an existing rule
    • [ ] Add autofixing to a rule
    • [ ] Add a CLI option
    • [ ] Add something to the core
    • [ ] Other, please explain:
    opened by incendial 4
  • `double-literal-format` quick-fix

    `double-literal-format` quick-fix "everywhere in file"

    Missing complement for "everywhere in file" with lint double-literal-format

    "Add missing leading '0' everywhere in file " "Remove redundant leading '0' everywhere in file " "Remove redundant trailing '0' everywhere in file "

    type: enhancement area-rules 
    opened by FMorschel 0
Releases(5.4.0)
  • 5.4.0(Jan 4, 2023)

    What's Changed

    • feat: add use-setstate-synchronously rule by @Desdaemon in https://github.com/dart-code-checker/dart-code-metrics/pull/1120
    • fix: ignore Providers for avoid-returning-widgets by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1121
    • feat: support ignoring nesting for prefer-conditional-expressions by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1122
    • fix: correctly handle FunctionExpressions for avoid-redundant-async by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1124
    • feat: show warning for rules without config that require config to work by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1125
    • feat: ignore tear-off methods for avoid-unused-parameters by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1126
    • fix: use-setstate-synchronously edge cases by @Desdaemon in https://github.com/dart-code-checker/dart-code-metrics/pull/1128
    • fix: handle multiline comments by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1129

    New Contributors

    • @Desdaemon made their first contribution in https://github.com/dart-code-checker/dart-code-metrics/pull/1120

    Full Changelog: https://github.com/dart-code-checker/dart-code-metrics/compare/5.3.0...5.4.0

    Source code(tar.gz)
    Source code(zip)
  • 5.3.0(Dec 19, 2022)

    What's Change

    • chore: remove strong-mode from analysis_options since it is no longer supported by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1107
    • feat: support ignoring regular comments for format-comment by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1110
    • fix: support function expression invocations for prefer-moving-to-variable by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1109
    • feat: add strict config option to avoid-collection-methods-with-unrelated-types by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1111
    • fix: ignore doc comments for prefer-commenting-analyzer-ignores by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1115
    • feat: add list-all-equatable-fields rule by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1103

    Full Changelog: https://github.com/dart-code-checker/dart-code-metrics/compare/5.2.1...5.3.0

    Source code(tar.gz)
    Source code(zip)
  • 5.2.1(Dec 8, 2022)

    What's Changed

    • fix: avoid null check exception in the analyzer by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1099

    Full Changelog: https://github.com/dart-code-checker/dart-code-metrics/compare/5.2.0...5.2.1

    Source code(tar.gz)
    Source code(zip)
  • 5.2.0(Dec 8, 2022)

    What's Changed

    • docs: Add better example for presets by @lsaudon in https://github.com/dart-code-checker/dart-code-metrics/pull/1089
    • fix: remove recursive traversal for ban-name by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1090
    • feat: add static code diagnostic prefer-using-list-view by @lsaudon in https://github.com/dart-code-checker/dart-code-metrics/pull/1088
    • feat: add avoid-unnecessary-conditionals rule by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1094
    • feat: add avoid-double-slash-imports rule by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1095
    • feat: support boolean literals removal for prefer-conditional-expressions auto-fix by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1096
    • fix: correctly support conditional imports for check-unused-code by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1097

    Full Changelog: https://github.com/dart-code-checker/dart-code-metrics/compare/5.1.0...5.2.0

    Source code(tar.gz)
    Source code(zip)
  • 5.1.0(Dec 1, 2022)

    What's Changed

    • fix: correctly available check rule names by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1068
    • fix: add fail assertion as a valid method to missing_test_assertion rule by @orevial in https://github.com/dart-code-checker/dart-code-metrics/pull/1069
    • feat: add static code diagnostic arguments-ordering by @roman-petrov in https://github.com/dart-code-checker/dart-code-metrics/pull/1047
    • feat: add method call chains support on ban-name ident by @Hideart in https://github.com/dart-code-checker/dart-code-metrics/pull/1034
    • fix: update presets by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1082
    • feat: add static code diagnostic prefer-static-class by @roman-petrov in https://github.com/dart-code-checker/dart-code-metrics/pull/1086
    • docs: improve rule checklist for contributors by @roman-petrov in https://github.com/dart-code-checker/dart-code-metrics/pull/1085

    New Contributors

    • @Hideart made their first contribution in https://github.com/dart-code-checker/dart-code-metrics/pull/1034

    Full Changelog: https://github.com/dart-code-checker/dart-code-metrics/compare/5.0.0...5.1.0

    Source code(tar.gz)
    Source code(zip)
  • 5.0.1(Nov 2, 2022)

    What's Changed

    • fix: correctly check available rule names by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1068

    Full Changelog: https://github.com/dart-code-checker/dart-code-metrics/compare/5.0.0...5.0.1

    Source code(tar.gz)
    Source code(zip)
  • 5.0.0(Oct 31, 2022)

    What's Changed

    • feat: add avoid-cascade-after-if-null rule by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1039
    • feat: export cli runner and add documentation for use-case by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1040
    • feat: support report to the json file option for the analyze command by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1042
    • feat: rename member-ordering-extended to member-ordering by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1041
    • feat: handle widget members order separately by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1043
    • feat: support dynamic method name for member-ordering by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1044
    • fix: check of constructor exist for prefer-iterable-of by @lsaudon in https://github.com/dart-code-checker/dart-code-metrics/pull/1050
    • feat: change severity for avoid-banned-imports, prefer-trailing-comma, ban-name rules by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1052
    • chore: specify platform support in the pubspec by @dkrutskikh in https://github.com/dart-code-checker/dart-code-metrics/pull/1045
    • feat: cleanup public API by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1053
    • feat: support proxy calls for check-unused-l10n by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1054
    • feat: add print-config option to all commands by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1057
    • fix: ignore override methods for avoid-redundant-async by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1060
    • feat: support includes in the rules config by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1061
    • feat: add validation for rule names in analysis_options by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1059

    Full Changelog: https://github.com/dart-code-checker/dart-code-metrics/compare/4.21.2...5.0.0

    Source code(tar.gz)
    Source code(zip)
  • 4.21.2(Oct 14, 2022)

    What's Changed

    • fix: correctly handle FutureOr functions for avoid-passing-async-when-sync-expected by @lsaudon in https://github.com/dart-code-checker/dart-code-metrics/pull/1036
    • chore: add version to plugin name by @incendial

    Full Changelog: https://github.com/dart-code-checker/dart-code-metrics/compare/4.21.1...4.21.2

    Source code(tar.gz)
    Source code(zip)
  • 4.21.1(Oct 14, 2022)

    What's Changed

    • fix: stop plugin flickering by @incendial

    Full Changelog: https://github.com/dart-code-checker/dart-code-metrics/compare/4.21.0...4.21.1

    Source code(tar.gz)
    Source code(zip)
  • 4.21.0(Oct 10, 2022)

    What's Changed

    • feat: add static code diagnostic missing-test-assertion by @lsaudon in https://github.com/dart-code-checker/dart-code-metrics/pull/1023
    • feat: add support for presets by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1025
    • feat: add 'include-methods' config to 'missing-test-assertion' rule by @orevial in https://github.com/dart-code-checker/dart-code-metrics/pull/1026

    Full Changelog: https://github.com/dart-code-checker/dart-code-metrics/compare/4.20.0...4.21.0

    Source code(tar.gz)
    Source code(zip)
  • 4.20.0(Oct 7, 2022)

    What's Changed

    • build: update minimal dart version by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/861
    • feat: add logger and progress indication by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1014
    • feat: migrate to new plugins api by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1020
    • fix: make avoid-redundant-async handle yield by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1021
    • fix: fix excludes for rules intended only for tests by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1022

    Full Changelog: https://github.com/dart-code-checker/dart-code-metrics/compare/4.19.1...4.20.0

    Source code(tar.gz)
    Source code(zip)
  • 4.19.1(Sep 26, 2022)

    What's Changed

    • fix: make avoid-wrapping-in-padding trigger only on Container widget by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1008
    • fix: make avoid-redundant-async correctly handle nullable return values by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1009

    Full Changelog: https://github.com/dart-code-checker/dart-code-metrics/compare/4.19.0...4.19.1

    Source code(tar.gz)
    Source code(zip)
  • 4.19.0(Sep 20, 2022)

    What's Changed

    • feat: add static code diagnostic prefer-iterable-of by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/999
    • feat: add static code diagnostic prefer-correct-test-file-name by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1000
    • feat: add static code diagnostic avoid-redundant-async by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1002
    • feat: add static code diagnostic check-for-equals-in-render-object-setters by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1003
    • feat: add static code diagnostic consistent-update-render-object by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/1004

    Full Changelog: https://github.com/dart-code-checker/dart-code-metrics/compare/4.18.3...4.19.0

    Source code(tar.gz)
    Source code(zip)
  • 4.18.3(Sep 14, 2022)

    What's Changed

    • fix: fix regression in avoid-unnecessary-type-assertions by @incendial

    Full Changelog: https://github.com/dart-code-checker/dart-code-metrics/compare/4.18.2...4.18.3

    Source code(tar.gz)
    Source code(zip)
  • 4.18.2(Sep 14, 2022)

    What's Changed

    • fix: use empty analysis options exclude to properly resolve units and speed up commands analysis by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/998

    Full Changelog: https://github.com/dart-code-checker/dart-code-metrics/compare/4.18.1...4.18.2

    Source code(tar.gz)
    Source code(zip)
  • 4.18.1(Sep 13, 2022)

    What's Changed

    • fix: fix regression in is! checks for avoid-unnecessary-type-assertions by @incendial
    • chore: revert analyzer_plugin new api by @incendial

    Full Changelog: https://github.com/dart-code-checker/dart-code-metrics/compare/4.18.0...4.18.1

    Source code(tar.gz)
    Source code(zip)
  • 4.18.0(Sep 12, 2022)

    What's Changed

    • docs: Add check-unnecessary-nullable in available commands by @lsaudon in https://github.com/dart-code-checker/dart-code-metrics/pull/942
    • docs: rework website rules list page by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/950
    • docs: rework website rule page by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/959
    • docs: rework index pages for all categories by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/960
    • fix: avoid-top-level-members-in-tests by @lsaudon in https://github.com/dart-code-checker/dart-code-metrics/pull/945
    • feat: support passing file paths to all commands by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/965
    • fix: --reporter=json for check-unnecessary-nullable crashes, saying Converting object to an encodable object failed: Instance of 'MappedIterable<FormalParameter, String>' by @fzyzcjy in https://github.com/dart-code-checker/dart-code-metrics/pull/980
    • feat: replace relative path in reporters output with absolute to support IDE clicks by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/966
    • feat: make avoid-unnecessary-type-assertions handle is! checks by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/995
    • fix: support not named builder parameters for avoid-returning-widgets by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/992
    • fix: support variables shadowing for avoid-unused-parameters by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/993
    • fix: make check-unnecessary-nullable command ignore Flutter keys by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/994
    • fix: add const to edge insets constructors when appropriate by @orevial in https://github.com/dart-code-checker/dart-code-metrics/pull/972
    • fix: make avoid-border-all not report errors on final variables by @Ascenio in https://github.com/dart-code-checker/dart-code-metrics/pull/988
    • feat: avoid passing async when sync expected by @Ascenio in https://github.com/dart-code-checker/dart-code-metrics/pull/987

    New Contributors

    • @orevial made their first contribution in https://github.com/dart-code-checker/dart-code-metrics/pull/972
    • @Ascenio made their first contribution in https://github.com/dart-code-checker/dart-code-metrics/pull/988

    Full Changelog: https://github.com/dart-code-checker/dart-code-metrics/compare/4.17.0...4.18.0

    Source code(tar.gz)
    Source code(zip)
  • 4.18.0-dev.2(Aug 16, 2022)

  • 4.17.1(Aug 16, 2022)

  • 4.18.0-dev.1(Aug 8, 2022)

    What's Changed

    • docs: Add check-unnecessary-nullable in available commands by @lsaudon in https://github.com/dart-code-checker/dart-code-metrics/pull/942
    • docs: rework website rules list page by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/950
    • docs: rework website rule page by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/959

    Full Changelog: https://github.com/dart-code-checker/dart-code-metrics/compare/4.17.0...4.18.0-dev.1

    Source code(tar.gz)
    Source code(zip)
    dart_code_metrics-4.18.0-dev.1.tar.gz(1.65 MB)
  • 4.17.0(Jul 26, 2022)

    What's Changed

    • chore: update rule title by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/899
    • chore: support analyzer 4.2.0 by @dkrutskikh in https://github.com/dart-code-checker/dart-code-metrics/pull/914
    • chore: migrate on lints 2.0.0 by @dkrutskikh in https://github.com/dart-code-checker/dart-code-metrics/pull/915
    • feat: add static code diagnostic avoid-use-expanded-as-spacer by @vlkonoshenko in https://github.com/dart-code-checker/dart-code-metrics/pull/903
    • feat: migrate to new analyzer plugins API by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/900
    • feat: add avoid-duplicate-exports rule by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/917
    • feat: add prefer-enums-by-name rule by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/919
    • feat: add avoid-top-level-members-in-tests by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/920
    • feat: add static code diagnostics prefer-correct-edge-insets by @vlkonoshenko in https://github.com/dart-code-checker/dart-code-metrics/pull/756
    • fix: add zero exit to command runner by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/925
    • feat: add avoid-shrink-wrap-in-lists by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/918
    • fix: Checkbox in ISSUE_TEMPLATE by @lsaudon in https://github.com/dart-code-checker/dart-code-metrics/pull/932
    • feat: add suppressions for check-unused-files, check-unused-code, check-unnecessary-nullable commands by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/929
    • feat: add configuration to prefer-moving-to-variable by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/934
    • feat: add build method config entry to member-ordering-extended by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/926
    • chore: revert analyzer-plugin by @dkrutskikh in https://github.com/dart-code-checker/dart-code-metrics/pull/941

    New Contributors

    • @lsaudon made their first contribution in https://github.com/dart-code-checker/dart-code-metrics/pull/932

    Full Changelog: https://github.com/dart-code-checker/dart-code-metrics/compare/4.16.0...4.17.0

    Source code(tar.gz)
    Source code(zip)
    dart_code_metrics-4.17.0.tar.gz(1.46 MB)
  • 4.17.0-dev.1(Jul 14, 2022)

    What's Changed

    • chore: update rule title by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/899
    • chore: support analyzer 4.2.0 by @dkrutskikh in https://github.com/dart-code-checker/dart-code-metrics/pull/914
    • chore: migrate on lints 2.0.0 by @dkrutskikh in https://github.com/dart-code-checker/dart-code-metrics/pull/915
    • feat: add static code diagnostic avoid-use-expanded-as-spacer by @vlkonoshenko in https://github.com/dart-code-checker/dart-code-metrics/pull/903
    • feat: migrate to new analyzer plugins API by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/900

    Full Changelog: https://github.com/dart-code-checker/dart-code-metrics/compare/4.16.0...4.17.0-dev.1

    Source code(tar.gz)
    Source code(zip)
    dart_code_metrics-4.17.0-dev.1.tar.gz(1.45 MB)
  • 4.16.0(Jun 20, 2022)

    What's Changed

    • chore: restrict analyzer version to >=2.4.0 <4.2.0 by @dkrutskikh in https://github.com/dart-code-checker/dart-code-metrics/pull/856
    • chore: Image google/dart is discontinued by @tkreuder in https://github.com/dart-code-checker/dart-code-metrics/pull/867
    • fix: improve context root included files calculation by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/862
    • chore: tune CI/CD by @dkrutskikh in https://github.com/dart-code-checker/dart-code-metrics/pull/885
    • test: added test case in prefer_const_border_radius rule by @vlkonoshenko in https://github.com/dart-code-checker/dart-code-metrics/pull/876
    • fix: resolve package with imported analysis options by @dkrutskikh in https://github.com/dart-code-checker/dart-code-metrics/pull/887
    • fix: normalize file paths after extraction from analyzed folder by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/864
    • feat: add new rule avoid-banned-imports & modify prefer-extracting-callbacks allow short callbacks to exist by @fzyzcjy in https://github.com/dart-code-checker/dart-code-metrics/pull/868
    • feat: improve checkstyle report, added metrics entries by @dkrutskikh in https://github.com/dart-code-checker/dart-code-metrics/pull/896
    • fix: change elements equality check to overcome incorrect libs resolution by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/891
    • fix: correctly handle - symbol by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/895
    • feat: introduce new command check-unnecessary-nullable by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/874
    • chore: change unnecessary nullable parameters by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/875

    New Contributors

    • @tkreuder made their first contribution in https://github.com/dart-code-checker/dart-code-metrics/pull/867

    Full Changelog: https://github.com/dart-code-checker/dart-code-metrics/compare/4.15.2...4.16.0

    Source code(tar.gz)
    Source code(zip)
    dart_code_metrics-4.16.0.tar.gz(1.45 MB)
  • 4.15.2(May 16, 2022)

    What's Changed

    • fix: avoid-border-all is triggered even when it is not a const by @vlkonoshenko in https://github.com/dart-code-checker/dart-code-metrics/pull/841
    • fix: remove duplicated highlights and ignore void function calls by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/829
    • fix: temporary remove enums support by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/849
    • feat: Add the option ignored-patterns to the rule format-comment by @ValentinVignal in https://github.com/dart-code-checker/dart-code-metrics/pull/828

    New Contributors

    • @ValentinVignal made their first contribution in https://github.com/dart-code-checker/dart-code-metrics/pull/828

    Full Changelog: https://github.com/dart-code-checker/dart-code-metrics/compare/4.15.1...4.15.2

    Source code(tar.gz)
    Source code(zip)
    dart_code_metrics-4.15.2.tar.gz(1.44 MB)
  • 4.15.1(May 13, 2022)

  • 4.15.0(May 3, 2022)

    What's Changed

    • docs(avoid-border-all): fix Border.all constructor syntax by @albertms10 in https://github.com/dart-code-checker/dart-code-metrics/pull/807
    • fix: dart-code-metrics crash saying Bad state: No element when running command by @fzyzcjy in https://github.com/dart-code-checker/dart-code-metrics/pull/805
    • fix: correctly handle disabling rules with false by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/822
    • feat: remove declaration in prefer-immediate-return by @ookami-kb in https://github.com/dart-code-checker/dart-code-metrics/pull/824
    • feat: avoid-non-ascii-symbols rule by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/825
    • fix: format-comment is listing the macros from dart doc. by @vlkonoshenko in https://github.com/dart-code-checker/dart-code-metrics/pull/823

    New Contributors

    • @albertms10 made their first contribution in https://github.com/dart-code-checker/dart-code-metrics/pull/807

    Full Changelog: https://github.com/dart-code-checker/dart-code-metrics/compare/4.14.0...4.15.0

    Source code(tar.gz)
    Source code(zip)
    dart_code_metrics-4.15.0.tar.gz(1.44 MB)
  • 4.14.0(Apr 13, 2022)

    What's Changed

    • feat: add static code diagnostic prefer-commenting-analyzer-ignores by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/776
    • feat: add static code diagnostic prefer-moving-to-variable by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/781
    • fix: add check for supertypes by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/775
    • fix: correctly handle nullable types of collections by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/786
    • fix: cover more cases in "prefer-immediate-return" rule by @roman-petrov in https://github.com/dart-code-checker/dart-code-metrics/pull/760
    • fix: support index expressions for no-magic-number rule by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/755
    • docs: update prefer-async-await rule by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/795

    Full Changelog: https://github.com/dart-code-checker/dart-code-metrics/compare/4.13.0...4.14.0

    Source code(tar.gz)
    Source code(zip)
    dart_code_metrics-4.14.0.tar.gz(1.44 MB)
  • 4.13.0(Mar 16, 2022)

  • 4.12.0(Mar 7, 2022)

  • 4.11.0(Feb 21, 2022)

    What's Changed

    • feat: add static code diagnostics format-comment. by @vlkonoshenko in https://github.com/dart-code-checker/dart-code-metrics/pull/622
    • feat: add static code diagnostics avoid-border-all. by @vlkonoshenko in https://github.com/dart-code-checker/dart-code-metrics/pull/691
    • feat: add prefer-async-await rule by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/686
    • feat: improve avoid-returning-widgets builder functions handling by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/693
    • fix: correctly handle const maps by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/692
    • feat: add avoid-dynamic rule by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/687
    • fix: correctly handle variables declaration by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/685
    • feat: add monorepo flag for check-unused-files command by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/684
    • fix: add static byte store to reuse between plugin instances by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/676
    • fix: correctly handle excluded files for check-unused-code by @incendial in https://github.com/dart-code-checker/dart-code-metrics/pull/697
    • refactor: prepare for complex metric values by @dkrutskikh in https://github.com/dart-code-checker/dart-code-metrics/pull/698

    Full Changelog: https://github.com/dart-code-checker/dart-code-metrics/compare/4.10.1...4.11.0

    Source code(tar.gz)
    Source code(zip)
Owner
Dart Code Checker
Dart Code Checker
腾讯云 1 Feb 10, 2022
DEVS: Developer Board and Jobs Listing | For Developers, By Developers

devs Setup Currently, this DEVS project is using the master channel of the Flutter SDK. TODO: Migrate to beta Clone the project git clone https://gith

Flutter Philippines Community 40 Apr 16, 2022
UIWidget is a Unity Package which helps developers to create, debug and deploy efficient, cross-platform Apps.

⚠️ The main repository of UIWidgets has been moved to https://github.com/Unity-Technologies/com.unity.uiwidgets. Please visit the new site if you have

Unity Technologies 1.9k Dec 27, 2022
Telnyx flutter - A Flutter package for both android and iOS which helps developers with Telnyx API services

Telnyx Flutter A Flutter package for both android and iOS which helps developers

Kfir Matityahu 0 Jan 23, 2022
Official Flutter Tracking Library for Mixpanel Analytics

Table of Contents Introduction Quick Start Guide Install Mixpanel Initialize Mixpanel Send Data Check for Success I want to know more! Introduction We

Mixpanel, Inc 46 Jan 4, 2023
Dart code generator for helping with (firebase) analytics.

analytics_events_gen An easy generator for tracking firebase analytics events via type safe methods. Add to pubspec.yaml Check pub for the latest vers

Herbert Poul 2 Nov 16, 2022
A mobile wallet, that keeps track of a user's spending with analytics.

credit_clan_task A mobile wallet, that keeps track of a user's spending with analytics. Getting Started This project is a task assigned by Credit clan

Godson 2 Apr 30, 2022
Raden Saleh 20 Aug 12, 2023
This is an open source Tips & Tricks for Flutter, that helps flutter Developers write simple but powerful dart codes.

Showcasing-flutter - This is an open source Tips & Tricks for Flutter, that helps flutter Developers write simple but powerful dart codes.

Paul Edeme'kong - Flutter Fairy 1 Jan 4, 2022
Numbers is simple game to improve problem solving skills and it is built in Flutter Framework

Numbers - Flutter Game Numbers is a simple game built in Flutter Framework and is purely based on numbers to improve problem solving skills. Screensho

Thamaraiselvam 49 Oct 21, 2022
A collection of Animations that aims to improve the user experience for your next flutter project.

Flutter Animations A collection of Animations that aims to improve the user experience for your next flutter project. Built by Ezaldeen SAHB I hope th

Ezaldeen Sahb 134 Dec 24, 2022
AI Library to create efficient Artificial Neural Networks. Computation uses SIMD (Single Instruction Multiple Data) to improve performance.

eneural_net eNeural.net / Dart is an AI Library for efficient Artificial Neural Networks. The library is portable (native, JS/Web, Flutter) and the co

null 21 Dec 29, 2022
Orkut app - A project developed in Flutter to improve UI development

Orkut App Projeto Orkut App - Flutter Este é um projeto desenvolvido em Flutter

Felipe Dias Casseb 3 Feb 9, 2022
This is tool to create 3D Models which can be used in Flutter Applications. Tool is developed completely using Flutter.

three_d_model_tool A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you start

Shubham Yeole 2 Nov 8, 2022
Intel Corporation 238 Dec 24, 2022
🟧 Lints for Dart and Flutter based on software industry standards and best practices.

Solid Lints Flutter/Dart lints configuration based on software engineering industry standards (ISO/IEC, NIST) and best practices. Usage Add dependency

Solid Software 17 Oct 12, 2022
Backs up Android devices on Linux, macOS and Windows. Backup your device without vendor lock-ins, using insecure software or root.

Backs up Android devices on Linux, macOS and Windows. Backup your device without vendor lock-ins, using insecure software or root. Supports encryption and compression out of the box.

null 255 Dec 31, 2022
Time-Tracker is a cross platform software integrated with Firebase and this is the mobile version created with Flutter.

Time Tracker | Flutter Time tracker is a cloud based task manager where you can manage your tasks in your mobile or web browser in a same time or in a

AmirHossein Mohammadi 10 Oct 25, 2022