directives_ordering
Adhere to Effective Dart Guide directives sorting conventions.
This rule is available as of Dart 2.0.
This rule has a quick fix available.
Details
#DO follow the directive ordering conventions in Effective Dart:
DO place dart: imports before other imports.
BAD:
import 'package:bar/bar.dart';
import 'package:foo/foo.dart';
import 'dart:async'; // LINT
import 'dart:html'; // LINTBAD:
import 'dart:html'; // OK
import 'package:bar/bar.dart';
import 'dart:async'; // LINT
import 'package:foo/foo.dart';GOOD:
import 'dart:async'; // OK
import 'dart:html'; // OK
import 'package:bar/bar.dart';
import 'package:foo/foo.dart';DO place package: imports before relative imports.
BAD:
import 'a.dart';
import 'b.dart';
import 'package:bar/bar.dart'; // LINT
import 'package:foo/foo.dart'; // LINTBAD:
import 'package:bar/bar.dart'; // OK
import 'a.dart';
import 'package:foo/foo.dart'; // LINT
import 'b.dart';GOOD:
import 'package:bar/bar.dart'; // OK
import 'package:foo/foo.dart'; // OK
import 'a.dart';
import 'b.dart';DO specify exports in a separate section after all imports.
BAD:
import 'src/error.dart';
export 'src/error.dart'; // LINT
import 'src/string_source.dart';GOOD:
import 'src/error.dart';
import 'src/string_source.dart';
export 'src/error.dart'; // OKDO sort sections alphabetically.
BAD:
import 'package:foo/bar.dart'; // OK
import 'package:bar/bar.dart'; // LINT
import 'a/b.dart'; // OK
import 'a.dart'; // LINTGOOD:
import 'package:bar/bar.dart'; // OK
import 'package:foo/bar.dart'; // OK
import 'a.dart'; // OK
import 'a/b.dart'; // OKUsage
#To enable the directives_ordering rule, add directives_ordering under linter > rules in your analysis_options.yaml file:
linter:
rules:
- directives_orderingUnless stated otherwise, the documentation on this site reflects Dart 3.6.0. Page last updated on 2024-07-03. View source or report an issue.