Skip to content
This repository was archived by the owner on Jul 16, 2023. It is now read-only.
This repository was archived by the owner on Jul 16, 2023. It is now read-only.

[BUG] format-comment with multiline comments #700

Closed
@unger1984

Description

@unger1984
  • Dart code metrics version: 4.11.0
  • Dart sdk version: 2.17.0-69.2.beta
Configuration
include: package:flutter_lints/flutter.yaml

analyzer:
  plugins:
    - dart_code_metrics

  exclude:
    - "**/*.g.dart"
    - "**/*.freezed.dart"
    - "**/*.mocks.dart"
    - "lib/generated/**"

  language:
    strict-inference: true
    strict-raw-types: true

  errors:
    invalid_annotation_target: ignore # мешает freezed
    unnecessary_getters_setters: ignore # мешает делать сеттеры и геттеры для приватных свойств
    lines_longer_than_80_chars: ignore # мешает длинне строк

linter:
  rules:
    always_use_package_imports: true # использовать полные импорты вместо сокращенных

dart_code_metrics:
  anti-patterns:
    - long-method
    - long-parameter-list
  metrics:
    cyclomatic-complexity: 20
    maximum-nesting-level: 5
    number-of-parameters: 10
    source-lines-of-code: 50
  metrics-exclude:
    - test/**
    - lib/generated/**
    - "**/*.g.dart"
    - "**/*.freezed.dart"
    - "**/*.mocks.dart"
  rules:
    - always-remove-listener # всегда удалять слушатели
    - avoid-border-all # Border.fromBorderSide
    #   - avoid-dynamic # запрет использования dynamic
    - avoid-global-state # все изменяемые глобальные переменные
    #    - avoid-ignoring-return-values # игнорирование возвращаемых значений
    #    - avoid-late-keyword # не должно быть late
    - avoid-missing-enum-constant-in-map # предупреждать когда не все значения энума обработаны
    - avoid-nested-conditional-expressions # ругаться на вложенные сокращенные условия
    - avoid-non-null-assertion # ругаться на !
    - avoid-returning-widgets # запрещать методы возвращающие Widget
    #    - avoid-throw-in-catch-block # неиспользовать try catch
    - avoid-unrelated-type-assertions # лишнее is
    - avoid-unnecessary-setstate # ругаться на setState вызванную из initState, didUpdateWidget или build
    - avoid-unused-parameters # ругаться на неиспользуемые параметры
    - avoid-unnecessary-type-assertions # ругаться на is и whereType операторы когда они не нужны
    - avoid-unnecessary-type-casts # ругаться на приведение типов когда оно не нужно
    - avoid-wrapping-in-padding # ругатся на Padding виджет когда ребенок имеет поля паддинга
    - binary-expression-operand-order # ругаться когда при математических операциях цифра идет перед переменной
    - double-literal-format # ругатся на неполную запись double
    - format-comment # формат комментариев
    #    - member-ordering # ругаться на сортировку параметров
    - newline-before-return # перед ретурном должна стоять пустая строка
    - no-boolean-literal-compare # ругаться на сравнение с true и false
    - no-empty-block # ругаться на пустые {}
    #    - no-equal-arguments # не должно быть одинаковых значений в аргументах
    - no-equal-then-else # ругатьтся на одлинаковую логику в if else блоках
    #    - no-magic-number # не должно быть магических цифр
    - no-object-declaration # Нельзя возвращать Object
    - prefer-async-await # запрет использования then
    - prefer-conditional-expressions # использовать сокращенный if где это возможно!
    - prefer-const-border-radius # использовать BorderRadius.all(Radius.circular(value))
    - prefer-correct-identifier-length: # длинна переменных не менее 2 символов
        exceptions: [ '_' ]
        min-identifier-length: 2
    - prefer-correct-type-name # использовать корректные имена классов
    - prefer-extracting-callbacks # выносить обработчики в отдельные методы
    - prefer-first # исплользоать list.first вместо list[0]
    - prefer-last # использовать list.last вместо list[n]
    #    - prefer-match-file-name # имена файлов должны совпадать с именем класса
    #    - prefer-single-widget-per-file # один виджет на файл
    - prefer-trailing-comma: # не забываем запятую после аргументов
        break-on: 5
  test('should be subclass of DayEntity', () {
    // Arrange.
    DayModel tDayModel = DayModel(header: DateTime.now());
    // act
    // assert
    expect(tDayModel, isA<DayEntity>());
  });

The first comment lint, the second and third didn't.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions