-
Notifications
You must be signed in to change notification settings - Fork 13.6k
Description
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 with white-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 (
and bar
. 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 instance bar: Baz
. We should also use
as the space between mut
and Bar
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.
Activity
jsha commentedon Feb 6, 2022
Another possibility: We could do like pkg.go.dev does (e.g. https://pkg.go.dev/crypto/tls#ClientHelloInfo.SupportsCertificate), and set these CSS properties on the method headings:
That would cause us to always put as much text as possible on a line, and break right at the end. That would still, allow breaking in the middle of a return arrow, or other awkward breaks. But it might be clearer that a break happened, since the pattern is consistent and the line is filled.
Also worth noting: One of the confusing things in the screenshot above is the collision with the
source
link, which will be fixed in #93537.Enyium commentedon Aug 3, 2024
I wondered why text in the right column of this documentation has strange line breaks in the middle of words like "to show th<br>e Slint documentation" or "for red, gr<br>een, blue". The respective <div>s have the CSS
word-break: break-all;
applied, which rustdoc seems to be responsible for. At least for me in a desktop browser, I'm against this in favor of regular line breaks between words.