set -l indent ../test/root/bin/fish_indent

echo Test1
echo -n '
begin
echo hi


end | cat | cat | begin ; echo hi ; end | begin ; begin ; echo hi ; end ; end arg
' | $indent

echo \nTest2
echo -n '
switch aloha

   case alpha
      echo sup

   case beta gamma
      echo hi

end
' | $indent

echo \nTest3
echo -n '
function hello_world

  'begin'
     echo hi
                     end | cat

   echo sup; echo sup
   echo hello;

   echo hello
                  end
' | $indent

echo \nTest4
echo -n '
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' | $indent

echo \nTest5
echo -n '
if true
else if false
    echo alpha
switch beta
   case gamma
       echo delta
end
end
' | $indent -i

echo \nTest6
# Test errors
echo -n '
begin
echo hi
else
echo bye
end; echo alpha "
' | $indent

echo \nTest7
# issue 1665
echo -n '
if begin ; false; end; echo hi ; end
while begin ; false; end; echo hi ; end
' | $indent

echo \nTest redir formatting
# issue 2899
echo -n '
echo < stdin >>appended yes 2>&1 no > stdout maybe 2>&    4 | cat 2>| cat
' | $indent

echo \nTest normalization of keywords
echo -n '
i\
f true
    echo yes
en\
d

"whil\
e" true
    "builtin" yes
en"d"

alpha | \
  beta

gamma | \
# comment3
delta

if true
echo abc
end

if false # comment4
and true && false
echo abc;end

echo hi |

echo bye
' | $indent

echo 'a;;;;;;' | $indent
echo 'echo; echo' | $indent

# Check that we keep semicolons for and and or, but only on the same line.
printf '%s\n' "a; and b" | $indent
printf '%s\n' "a;" "and b" | $indent
printf '%s\n' "a" "; and b" | $indent
printf '%s\n' "a; b" | $indent