google / google/json_serializable.dart

The `page_width` option in the analysis_options.yaml is ignored

Open
#1,518 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Dart
Stars
1.6k
Forks
461
Avg merge
45m
Merged PRs (30d)
1

Description

json_serializable disregards the `page_width` setting in `analysis_options.yaml` and uses the default value of 80. Therefore, if a different `page_width` is specified in the project's `analysis_options.yaml`, a separate formatting step is required after running `build_runner build`.

https://github.com/google/json_serializable.dart/blob/83e79058f3da3f912965dd9356796f25c41ae1b3/json_serializable/lib/src/json_part_builder.dart#L113-L114

### Steps to Reproduce

This behavior can be reproduced in the `json_serializable.dart` project.

1. Set a `page_width` value other than 80 in `/analysis_options.yaml`:
```yaml
formatter:
page_width: 120
```
2. Navigate to the `/example`.
3. Run `dart run build_runner build -d`.
* The generated code is formatted with page_width `80`.
4. Run `dart format lib/`.
* The generated code is formatted with page_width `120`.
5. Run `dart run build_runner build -d`.
* The generated code is formatted with page_width `80`.

### Proposal

How about adding the line `// dart format width=80` to the generated code?

https://github.com/dart-lang/dart_style/blob/bacc9bf8fcec6fffc15ad7e9257b7faba5298ea9/CHANGELOG.md#300

### Trailing comma

As reported in https://github.com/google/json_serializable.dart/issues/1486, the trailing commas option is also not reflected. However, since commas are removed when formatted with `TrailingCommas.automate`, I cannot think of any cases where additional formatting would be necessary.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.