Add non-breaking space 🔒

This commit is contained in:
Martin Haug 2020-08-31 12:11:34 +02:00
parent 696560622d
commit d0e252d116

View File

@ -104,7 +104,17 @@ impl Parser<'_> {
self.with_span(SyntaxNode::Code(Code { lang, lines, block }))
}
Token::Text(text) => self.with_span(SyntaxNode::Text(text.to_string())),
Token::Text(text) => {
let mut text_s = String::with_capacity(text.len());
let mut iter = text.chars();
while let Some(c) = iter.next() {
match c {
'~' => text_s.push('\u{00A0}'),
_ => text_s.push(c),
}
}
self.with_span(SyntaxNode::Text(text_s.to_string()))
},
Token::UnicodeEscape { sequence, terminated } => {
if !terminated {
@ -1001,18 +1011,19 @@ mod tests {
#[test]
fn test_parse_simple_nodes() {
t!("" => );
t!("hi" => T("hi"));
t!("*hi" => B, T("hi"));
t!("hi_" => T("hi"), I);
t!("hi you" => T("hi"), S, T("you"));
t!("\\u{1f303}" => T("🌃"));
t!("\n\n\nhello" => P, T("hello"));
t!(r"a\ b" => T("a"), L, S, T("b"));
t!("`py`" => R!["py"]);
t!("`hi\nyou" => R!["hi", "you"]);
e!("`hi\nyou" => s(1,3, 1,3, "expected backtick"));
t!("`hi\\`du`" => R!["hi`du"]);
t!("" => );
t!("hi" => T("hi"));
t!("*hi" => B, T("hi"));
t!("hi_" => T("hi"), I);
t!("hi you" => T("hi"), S, T("you"));
t!("special~name" => T("special\u{00A0}name"));
t!("\\u{1f303}" => T("🌃"));
t!("\n\n\nhello" => P, T("hello"));
t!(r"a\ b" => T("a"), L, S, T("b"));
t!("`py`" => R!["py"]);
t!("`hi\nyou" => R!["hi", "you"]);
e!("`hi\nyou" => s(1,3, 1,3, "expected backtick"));
t!("`hi\\`du`" => R!["hi`du"]);
t!("```java System.out.print```" => C![Some("java"), "System.out.print"]);
t!("``` console.log(\n\"alert\"\n)" => C![None, "console.log(", "\"alert\"", ")"]);