mirror of
https://github.com/fish-shell/fish-shell.git
synced 2025-01-20 17:36:31 +08:00
cb16d9e741
Things like ```fish \ echo foo ``` or ```fish echo foo; \ echo bar ``` are a formatting blunder and should be handled. This makes it so the escaped newline is removed, and the semicolon/token_type_end handling will then put the statements on different lines. One case this doesn't handle brilliantly is an escaped newline after a pipe: ```fish echo foo | \ cat ``` is turned into ```fish echo foo | cat ``` which here works great, but in long pipelines can cause issues. Pipes at the end of the line cause fish to continue parsing on the next line, so this can just be written as ```fish echo foo | cat ``` for now.
138 lines
1.1 KiB
Plaintext
138 lines
1.1 KiB
Plaintext
Test1
|
|
|
|
begin
|
|
echo hi
|
|
|
|
|
|
end | cat | cat | begin
|
|
echo hi
|
|
end | begin
|
|
begin
|
|
echo hi
|
|
end
|
|
end arg
|
|
|
|
Test2
|
|
|
|
switch aloha
|
|
|
|
case alpha
|
|
echo sup
|
|
|
|
case beta gamma
|
|
echo hi
|
|
|
|
end
|
|
|
|
Test3
|
|
|
|
function hello_world
|
|
|
|
begin
|
|
echo hi
|
|
end | cat
|
|
|
|
echo sup
|
|
echo sup
|
|
echo hello
|
|
|
|
echo hello
|
|
end
|
|
|
|
Test4
|
|
|
|
echo alpha #comment1
|
|
#comment2
|
|
|
|
#comment3
|
|
for i in abc #comment1
|
|
#comment2
|
|
echo hi
|
|
end
|
|
|
|
switch foo #abc
|
|
# bar
|
|
case bar
|
|
echo baz\
|
|
qqq
|
|
case "*"
|
|
echo sup
|
|
end
|
|
Test5
|
|
|
|
if true
|
|
else if false
|
|
echo alpha
|
|
switch beta
|
|
case gamma
|
|
echo delta
|
|
end
|
|
end
|
|
|
|
Test6
|
|
|
|
begin
|
|
echo hi
|
|
else
|
|
echo bye
|
|
end
|
|
echo alpha "
|
|
|
|
Test7
|
|
|
|
if begin
|
|
false
|
|
end
|
|
echo hi
|
|
end
|
|
while begin
|
|
false
|
|
end
|
|
echo hi
|
|
end
|
|
|
|
Test redir formatting
|
|
|
|
echo <stdin >>appended yes 2>&1 no >stdout maybe 2>&4 | cat 2>| cat
|
|
|
|
Test normalization of keywords
|
|
|
|
i\
|
|
f true
|
|
echo yes
|
|
en\
|
|
d
|
|
|
|
while true
|
|
builtin yes
|
|
end
|
|
|
|
alpha | beta
|
|
|
|
gamma | \
|
|
# comment3
|
|
delta
|
|
|
|
if true
|
|
echo abc
|
|
end
|
|
|
|
if false # comment4
|
|
and true && false
|
|
echo abc
|
|
end
|
|
|
|
echo hi |
|
|
|
|
echo bye
|
|
a
|
|
echo
|
|
echo
|
|
a; and b
|
|
a
|
|
and b
|
|
a
|
|
and b
|
|
a
|
|
b
|