rustdoc: improve word break opportunities for narrow screens #93538
Labels
A-rustdoc-ui
Area: Rustdoc UI (generated HTML)
T-rustdoc
Relevant to the rustdoc team, which will review and decide on the PR/issue.
On narrow screens our method signatures often wrap horribly, like this example that wraps right in the middle of a
->
return arrow:To fix that specific issue, we can wrap return arrows in a
<span>
and style that span withwhite-space: nowrap
. There's a similar issue where the browser will break&[T]
between the&
and the[
. We should use the same trick there to prevent breaking.Also, the browser will never consider a parenthesis wedged between two words to be a word break opportunity. For instance, in
fn foo(bar: Baz)
, the browser will never break between(
andbar
. That's actually one of our optimal break locations; it's where rustfmt would break the word. We can tell the browser that's an available option by inserting a<wbr>
tag.Also, when we do have to break up a signature, we'd prefer to keep each parameter name on the same line as its type if possible (again, mimicking rustfmt style). We can achieve this by inserting an
between parameter names and types. For instancebar: Baz
. We should also use
as the space betweenmut
andBar
in&mut Bar
. Note that this may be a little hard because that space is added by print_with_space, and the output of print_with_space is used in both HTML and non-HTML contexts.The text was updated successfully, but these errors were encountered: