Skip to content
This repository was archived by the owner on May 28, 2025. It is now read-only.

Commit 7d48bba

Browse files
committed
Auto merge of rust-lang#14713 - jhgg:fix/do-not-highlight-escapes-in-raw-strings, r=Veykril
fix: ide: do not highlight escapes in raw strings fixes rust-lang#14688
2 parents 1ad58a4 + 157069e commit 7d48bba

File tree

3 files changed

+6
-1
lines changed

3 files changed

+6
-1
lines changed

crates/ide/src/syntax_highlighting.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -422,7 +422,10 @@ fn traverse(
422422
continue;
423423
}
424424
highlight_format_string(hl, &string, &expanded_string, range);
425-
highlight_escape_string(hl, &string, range.start());
425+
426+
if !string.is_raw() {
427+
highlight_escape_string(hl, &string, range.start());
428+
}
426429
}
427430
} else if ast::ByteString::can_cast(token.kind())
428431
&& ast::ByteString::can_cast(descended_token.kind())

crates/ide/src/syntax_highlighting/test_data/highlight_strings.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,7 @@
159159

160160
<span class="keyword">let</span> <span class="punctuation">_</span> <span class="operator">=</span> <span class="string_literal">"</span><span class="escape_sequence">\x28</span><span class="escape_sequence">\x28</span><span class="escape_sequence">\x00</span><span class="escape_sequence">\x63</span><span class="escape_sequence">\n</span><span class="string_literal">"</span><span class="semicolon">;</span>
161161
<span class="keyword">let</span> <span class="punctuation">_</span> <span class="operator">=</span> <span class="string_literal">b"</span><span class="escape_sequence">\x28</span><span class="escape_sequence">\x28</span><span class="escape_sequence">\x00</span><span class="escape_sequence">\x63</span><span class="escape_sequence">\n</span><span class="string_literal">"</span><span class="semicolon">;</span>
162+
<span class="keyword">let</span> <span class="punctuation">_</span> <span class="operator">=</span> <span class="string_literal">r"\\"</span><span class="semicolon">;</span>
162163

163164
<span class="macro">println</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="string_literal">"</span><span class="format_specifier">{</span><span class="escape_sequence">\x41</span><span class="format_specifier">}</span><span class="string_literal">"</span><span class="comma">,</span> A <span class="operator">=</span> <span class="numeric_literal">92</span><span class="parenthesis">)</span><span class="semicolon">;</span>
164165
<span class="macro">println</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="string_literal">"</span><span class="format_specifier">{</span><span class="variable">ничоси</span><span class="format_specifier">}</span><span class="string_literal">"</span><span class="comma">,</span> ничоси <span class="operator">=</span> <span class="numeric_literal">92</span><span class="parenthesis">)</span><span class="semicolon">;</span>

crates/ide/src/syntax_highlighting/tests.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -505,6 +505,7 @@ fn main() {
505505
506506
let _ = "\x28\x28\x00\x63\n";
507507
let _ = b"\x28\x28\x00\x63\n";
508+
let _ = r"\\";
508509
509510
println!("{\x41}", A = 92);
510511
println!("{ничоси}", ничоси = 92);

0 commit comments

Comments
 (0)