From 42367ddf6dc9f8e6e931ddeebf92f176569b6fd5 Mon Sep 17 00:00:00 2001 From: JT <547158+jntrnr@users.noreply.github.com> Date: Tue, 16 Nov 2021 07:33:33 +1300 Subject: [PATCH] Add support for crlf for line continuations (#341) --- TODO.md | 1 + crates/nu-parser/src/parser.rs | 14 +++++++------- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/TODO.md b/TODO.md index 22a708b41b..f138f57522 100644 --- a/TODO.md +++ b/TODO.md @@ -37,6 +37,7 @@ - [x] Support for `$in` - [x] config system - [ ] shells +- [ ] autoenv - [ ] plugins - [ ] dataframes - [ ] port over `which` logic diff --git a/crates/nu-parser/src/parser.rs b/crates/nu-parser/src/parser.rs index f697be0ab1..52990614ce 100644 --- a/crates/nu-parser/src/parser.rs +++ b/crates/nu-parser/src/parser.rs @@ -1310,7 +1310,7 @@ pub fn parse_full_cell_path( let source = working_set.get_span_contents(span); let mut error = None; - let (tokens, err) = lex(source, span.start, &[b'\n'], &[b'.']); + let (tokens, err) = lex(source, span.start, &[b'\n', b'\r'], &[b'.']); error = error.or(err); let mut tokens = tokens.into_iter().peekable(); @@ -1335,7 +1335,7 @@ pub fn parse_full_cell_path( let source = working_set.get_span_contents(span); - let (output, err) = lex(source, span.start, &[b'\n'], &[]); + let (output, err) = lex(source, span.start, &[b'\n', b'\r'], &[]); error = error.or(err); let (output, err) = lite_parse(&output); @@ -2035,7 +2035,7 @@ pub fn parse_signature_helper( let mut error = None; let source = working_set.get_span_contents(span); - let (output, err) = lex(source, span.start, &[b'\n', b','], &[b':']); + let (output, err) = lex(source, span.start, &[b'\n', b'\r', b','], &[b':']); error = error.or(err); let mut args: Vec = vec![]; @@ -2364,7 +2364,7 @@ pub fn parse_list_expression( let span = Span { start, end }; let source = working_set.get_span_contents(span); - let (output, err) = lex(source, span.start, &[b'\n', b','], &[]); + let (output, err) = lex(source, span.start, &[b'\n', b'\r', b','], &[]); error = error.or(err); let (output, err) = lite_parse(&output); @@ -2436,7 +2436,7 @@ pub fn parse_table_expression( let source = working_set.get_span_contents(span); - let (output, err) = lex(source, start, &[b'\n', b','], &[]); + let (output, err) = lex(source, start, &[b'\n', b'\r', b','], &[]); error = error.or(err); let (output, err) = lite_parse(&output); @@ -2770,7 +2770,7 @@ pub fn parse_value( let source = working_set.get_span_contents(span); let mut error = None; - let (tokens, err) = lex(source, span.start, &[b'\n'], &[b'.']); + let (tokens, err) = lex(source, span.start, &[b'\n', b'\r'], &[b'.']); error = error.or(err); let tokens = tokens.into_iter().peekable(); @@ -3205,7 +3205,7 @@ pub fn parse_record( let span = Span { start, end }; let source = working_set.get_span_contents(span); - let (tokens, err) = lex(source, start, &[b'\n', b','], &[b':']); + let (tokens, err) = lex(source, start, &[b'\n', b'\r', b','], &[b':']); error = error.or(err); let mut output = vec![];