diff --git a/src/librustdoc/html/sources.rs b/src/librustdoc/html/sources.rs index bae04f2095a3d..9fba6e9116282 100644 --- a/src/librustdoc/html/sources.rs +++ b/src/librustdoc/html/sources.rs @@ -272,22 +272,16 @@ crate fn print_src( ) { let lines = s.lines().count(); let mut line_numbers = Buffer::empty_from(buf); - let mut cols = 0; - let mut tmp = lines; - while tmp > 0 { - cols += 1; - tmp /= 10; - } line_numbers.write_str("
"); match source_context { SourceContext::Standalone => { for line in 1..=lines { - writeln!(line_numbers, "{0:1$}", line, cols) + writeln!(line_numbers, "{0}", line) } } SourceContext::Embedded { offset } => { for line in 1..=lines { - writeln!(line_numbers, "{0:1$}", line + offset, cols) + writeln!(line_numbers, "{0}", line + offset) } } } diff --git a/src/librustdoc/html/static/css/rustdoc.css b/src/librustdoc/html/static/css/rustdoc.css index f1e0a89883ab8..9a4b382a304ff 100644 --- a/src/librustdoc/html/static/css/rustdoc.css +++ b/src/librustdoc/html/static/css/rustdoc.css @@ -541,6 +541,9 @@ h2.location a { text-decoration: underline; } +.line-numbers { + text-align: right; +} .rustdoc:not(.source) .example-wrap > pre:not(.line-number) { width: 100%; overflow-x: auto; diff --git a/src/test/rustdoc-gui/source-code-page.goml b/src/test/rustdoc-gui/source-code-page.goml index 375ff4878e525..ad7080c39b842 100644 --- a/src/test/rustdoc-gui/source-code-page.goml +++ b/src/test/rustdoc-gui/source-code-page.goml @@ -14,3 +14,6 @@ assert-attribute: (".line-numbers > span:nth-child(6)", {"class": "line-highligh assert-attribute-false: (".line-numbers > span:nth-child(7)", {"class": "line-highlighted"}) // This is to ensure that the content is correctly align with the line numbers. compare-elements-position: ("//*[@id='1']", ".rust > code > span", ("y")) + +// Assert that the line numbers text is aligned to the right. +assert-css: (".line-numbers", {"text-align": "right"})