cool_linter 2.6.0 copy "cool_linter: ^2.6.0" to clipboard
cool_linter: ^2.6.0 copied to clipboard

Linter for analyzing dart code by RegExp pattern. Includes built in extended rules.

Pub Version Dart SDK Version Pub popularity

Cool linter #

This is a custom linter package for dart/flutter code. It can set linter for exclude some of words. This words you can set in analysis_options.yaml by example below

Usage #

1. Add dependency to pubspec.yaml #

dev_dependencies:
  cool_linter: ^1.2.0 # last version of plugin

2. Add configuration to analysis_options.yaml #

analyzer:
  plugins:
    - cool_linter

cool_linter:
  extended_rules:
    - always_specify_stream_subscription
    - prefer_trailing_comma
  always_specify_types:
    - typed_literal
    - declared_identifier
    - set_or_map_literal
    - simple_formal_parameter
    - type_name
    - variable_declaration_list
  regexp_exclude:
    -
      pattern: Colors
      hint: Use colors from design system instead!
      severity: WARNING
    -
      pattern: Test123{1}
      severity: ERROR
  exclude_folders:
    - test/**
    - lib/ku/**
  1. always_specify_types linter: #

    always_specify_types This rule is like dart core linter rule, but you can choose which of this subrules want to use:
  • typed_literal
  • declared_identifier
  • set_or_map_literal
  • simple_formal_parameter
  • type_name
  • variable_declaration_list

Also you can choose exclude folders for this rule. See exclude_folders

  1. regexp_exclude linter: #

  • pattern - RegExp-pattern, for example: Test123{1}, ^Test123$ and others
  • severity - [optional parameter]. It is console information level. May be WARNING, INFO, ERROR. Default is WARNING
  • hint - [optional parameter]. It is console information sentence
  • exclude_folders - this folders linter will ignore. By default excluded folders are:
'.dart_tool/**',
'.vscode/**',
'packages/**',
'ios/**',
'macos/**',
'web/**',
'linux/**',
'windows/**',
'go/**',
  1. extended_rules. always_specify_stream_subscription linter: #

    Always use StreamSubscription for Stream.listen();

CORRECT:

final Stream<String> stream2 = Stream<String>.value('value');
final StreamSubscription<String> sub = stream2.listen((_) {}); // OK

WARNING:

final Stream<String> stream1 = Stream<String>.value('value');
stream1.listen((String ttt) {}); // LINT

⚠️ Attention!!! #

You must restart your IDE for starting plugin #

3. CLI #

You can use linter as command line tool dart bin/cool_linter_cli.dart analyze -tsc -d test/fix/result --regexp_path test/regexp/regexp_settings_cli.yaml

or using dart pub run

💪 available autofix 💪 for:

  • prefer_trailing_comma
  • always_specify_types_rule

for this subrules: declared_identifier simple_formal_parameter variable_declaration_list

for others subrules feel free to provide me PRs

Available options:

  • -d - Folder to analyze
  • -f - Fix issues. Now only for prefer_trailing_comma rule
  • -t - Use always_specify_types_rule rule
  • -s - Use always_specify_stream_subscription rule
  • -c - Use prefer_trailing_comma rule
  • -f - Fix issues. Now only for prefer_trailing_comma rule
  • --regexp_path - Path to file with RegExp settings

Also you must specify --regexp_path parameter if you want to regexp analyzer. Example: --regexp_path <path to regexp settings .yaml file>

regexp_exclude:
  -
    pattern: Colors
    hint: Use colors from design system instead!
    severity: WARNING
  -
    pattern: \sTestClass\s
    hint: Dont use TestClass
    severity: ERROR
  -
    pattern: \sTestClass2\s
    hint: Dont use TestClass2
    severity: INFO

Screenshot

4. Result #

Example of analysis_options.yaml

analyzer:
  plugins:
    - cool_linter

cool_linter:
  extended_rules:
    - always_specify_stream_subscription
    - prefer_trailing_comma
  always_specify_types:
    - typed_literal
    - declared_identifier
    - set_or_map_literal
    - simple_formal_parameter
    - type_name
    - variable_declaration_list
  regexp_exclude:
    -
      pattern: Colors
      hint: Use colors from design system instead!
      severity: WARNING
    -
      pattern: Test123{1}
      severity: ERROR
  exclude_folders:
    - test/**
    - lib/ku/**

Screenshot Screenshot Screenshot

17
likes
130
points
147
downloads

Publisher

unverified uploader

Weekly Downloads

Linter for analyzing dart code by RegExp pattern. Includes built in extended rules.

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

analyzer, analyzer_plugin, args, file, freezed_annotation, glob, json_annotation, meta, path, pub_semver, yaml

More

Packages that depend on cool_linter