Skip to main content

Formatter

DCM provides a configurable formatter that supports project-wide config.

The configuration is used by both the IDE and the dcm format command.

note

This formatter is a modification of the dart_style library. All credit belongs to them.

Unfortunately, the authors of that library decided not to support configurability. That's the only reason this fork exists.

Configuration​

analysis_options.yaml
dart_code_metrics:
formatter:
indent: 0
line-length: 100
cascading-widget-extensions: true

Indent​

Specify the number of spaces per indentation-level.

The default indentation-level value is 0.

Line length​

Specify the line length that the formatter will wrap on.

The default value is 80.

info

For readability we recommend against using more than 120 characters.

Cascading widget extensions​

Specify whether the widget extensions inside a build method should be formatter in a more readable way.

Before:

Widget build(BuildContext context) {
MyWidget().extensionMethod().another();

...


MyWidget()
.extensionMethod()
.another()
.andAnotherOne()
.andAnotherOne()
.andAnotherOne()
.andAnotherOne();

...
}

After:

Widget build(BuildContext context) {
MyWidget()
.extensionMethod()
.another();

...

MyWidget()
.extensionMethod()
.another()
.andAnotherOne()
.andAnotherOne()
.andAnotherOne()
.andAnotherOne();

...
}

VS Code integration​

To enable the formatter in VS Code, pick DCM as the default formatter in the settings.json and enable the format on save option.

You can also use a separate command DCM: Format Current File.

IntelliJ / AS integration​

You can format a file with the DCM: Format Current File command.