Skip to content

Conversation

@9999years
Copy link

We're constructing textwrap::Options in a lot of places, leading to a lot of duplicated code. Let's simplify it a bit.

This PR only tidies the code; it was written while preparing #452, which changes the default values for some of these settings.

We're constructing `textwrap::Options` in a lot of places, leading to a
lot of duplicated code. Let's simplify it a bit.
}
Ok((context_data, lines))
}

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems like it might be a pessimization? It's cloning the word separate and splitter regardless of whether they changed., and it saves very few lines.
I agree there's probably a bit more elegant of a pattern in here somewhere, but personally (though my opinion doesn't matter, I'm not the creator nor maintainer), this doesn't seem better, it just seems less direct.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is that correct? I think these are all cloned at the use-sites in the code before this change.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only the splitter was cloned before, I think? now both are.

Copy link
Contributor

@cgettys-microsoft cgettys-microsoft Nov 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And initial_indent and subsequent_indent are called twice in some cases after this change.

Copy link
Contributor

@cgettys-microsoft cgettys-microsoft Nov 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I almost wonder if a better approach would be to have this method return a textwrap::Options with the width, separator, splitter, and break_words populated, and the rest left to the call site. That'd fix the multiple initial_indent and subsequent_indent call problems.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or maybe have GraphicalReportHandler keep an instance of textwrap::Options within itself, rather than keeping the separator and splitter and break words separately? idk, just brainstorming.

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 this pull request may close these issues.

2 participants