json_serializable.dart icon indicating copy to clipboard operation
json_serializable.dart copied to clipboard

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

Open koji-1009 opened this issue 4 months ago • 1 comments

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:
    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.

koji-1009 avatar Aug 16 '25 23:08 koji-1009

This should be solved in build_runner https://github.com/dart-lang/build/issues/3887

davidmorgan avatar Aug 25 '25 07:08 davidmorgan