Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add "// dart format width=80" comment in generated code #724

Closed
munificent opened this issue Oct 7, 2024 · 1 comment · Fixed by #725
Closed

Add "// dart format width=80" comment in generated code #724

munificent opened this issue Oct 7, 2024 · 1 comment · Fixed by #725
Assignees

Comments

@munificent
Copy link
Member

After many years of users asking for it, we are adding support to the formatter for project-wide page width configuration using a surrounding analysis_options.yaml file (dart-lang/sdk#56863). However, tools like source_gen don't necessarily have access to (or want to access) IO or know where generated code will end up on disk.

To avoid breaking CI by having the code get generated and formatted at one width and then get formatted to a different width when the user runs dart format, we also added support for putting a marker comment in a file to specify an explicit width, like:

// dart format width=80

When this comment is present at the top of the file (before any code, but can be after other comments), then that comment will take precedence and the file will reliably be formatted at that width regardless of any surrounding configuration. So if code generators insert that comment at the top of the code they generate, they don't have to worry about reading the user's configuration.

This issue is requesting that source_gen be updated to add that comment to the code it generates. Since it's just a comment, it's safe to add this at any time. Let me know if you have any questions/feedback and I'll do my best.

@jakemac53
Copy link
Contributor

cc @natebosch or @kevmoo could you take this on?

@natebosch natebosch self-assigned this Oct 8, 2024
natebosch added a commit that referenced this issue Oct 9, 2024
Closes #724

The 3 places where a Dart unit can be output are as a `LibraryBuildr`,
as a `PartBuilder`, or as a combined part. `SharedPartBuilder` output
does not need the width comment. Add a constant for the comment and use
it while writing each of the 3 types of output.
natebosch added a commit that referenced this issue Oct 9, 2024
Closes #724

The 3 places where a Dart unit can be output are as a `LibraryBuildr`,
as a `PartBuilder`, or as a combined part. `SharedPartBuilder` output
does not need the width comment. Add a constant for the comment and use
it while writing each of the 3 types of output.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants