Add test to ensure that no DOS backline (\r\n) doesn't create extra backline in source rendering
This commit is contained in:
parent
f7886a6277
commit
d2df22268c
3 changed files with 27 additions and 14 deletions
|
|
@ -21,8 +21,6 @@ pub fn render_with_highlighting(
|
|||
playground_button: Option<&str>,
|
||||
tooltip: Option<(&str, &str)>,
|
||||
) -> String {
|
||||
// This replace allows to fix how the code source with DOS backline characters is displayed.
|
||||
let src = src.replace("\r\n", "\n");
|
||||
debug!("highlighting: ================\n{}\n==============", src);
|
||||
let mut out = String::with_capacity(src.len());
|
||||
if let Some((tooltip, class)) = tooltip {
|
||||
|
|
@ -48,7 +46,9 @@ fn write_header(out: &mut String, class: Option<&str>) {
|
|||
}
|
||||
|
||||
fn write_code(out: &mut String, src: &str) {
|
||||
Classifier::new(src).highlight(&mut |highlight| {
|
||||
// This replace allows to fix how the code source with DOS backline characters is displayed.
|
||||
let src = src.replace("\r\n", "\n");
|
||||
Classifier::new(&src).highlight(&mut |highlight| {
|
||||
match highlight {
|
||||
Highlight::Token { text, class } => string(out, Escape(text), class),
|
||||
Highlight::EnterSpan { class } => enter_span(out, class),
|
||||
|
|
|
|||
3
src/librustdoc/html/highlight/fixtures/dos_line.html
Normal file
3
src/librustdoc/html/highlight/fixtures/dos_line.html
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">foo</span>() {
|
||||
<span class="macro">println</span><span class="macro">!</span>(<span class="string">"foo"</span>);
|
||||
}
|
||||
|
|
@ -1,17 +1,6 @@
|
|||
use super::write_code;
|
||||
use expect_test::expect_file;
|
||||
|
||||
#[test]
|
||||
fn test_html_highlighting() {
|
||||
let src = include_str!("fixtures/sample.rs");
|
||||
let html = {
|
||||
let mut out = String::new();
|
||||
write_code(&mut out, src);
|
||||
format!("{}<pre><code>{}</code></pre>\n", STYLE, out)
|
||||
};
|
||||
expect_file!["fixtures/sample.html"].assert_eq(&html);
|
||||
}
|
||||
|
||||
const STYLE: &str = r#"
|
||||
<style>
|
||||
.kw { color: #8959A8; }
|
||||
|
|
@ -23,3 +12,24 @@ const STYLE: &str = r#"
|
|||
.question-mark { color: #ff9011; }
|
||||
</style>
|
||||
"#;
|
||||
|
||||
#[test]
|
||||
fn test_html_highlighting() {
|
||||
let src = include_str!("fixtures/sample.rs");
|
||||
let html = {
|
||||
let mut out = String::new();
|
||||
write_code(&mut out, src);
|
||||
format!("{}<pre><code>{}</code></pre>\n", STYLE, out)
|
||||
};
|
||||
expect_file!["fixtures/sample.html"].assert_eq(&html);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_dos_backline() {
|
||||
let src = "pub fn foo() {\r\n\
|
||||
println!(\"foo\");\r\n\
|
||||
}\r\n";
|
||||
let mut html = String::new();
|
||||
write_code(&mut html, src);
|
||||
expect_file!["fixtures/dos_line.html"].assert_eq(&html);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue