The previous function regex required explicit matching of function
bodies using `{`, `(`, `((`, or `[[`, which caused several issues:
- It failed to capture valid functions where `{` was on the next line
due to line continuation (`\`).
- It did not recognize functions with single command body, such as
`x () echo hello`.
Replacing the function body matching logic with `.*$`, ensures
that everything on the function definition line is captured.
Additionally, the word regex is refined to better recognize shell
syntax, including additional parameter expansion operators and
command-line options.
Signed-off-by: Moumita Dhar <dhar61595@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
32 lines
243 B
Plaintext
32 lines
243 B
Plaintext
my_var=10
|
|
x=123
|
|
echo $1
|
|
echo $USER
|
|
${HOME}
|
|
((a+b))
|
|
((a*b))
|
|
((a/b))
|
|
((a%b))
|
|
((a|b))
|
|
((a^b))
|
|
((a=b))
|
|
((a!b))
|
|
((a<b))
|
|
((a>b))
|
|
$((a<b))
|
|
$((a>b))
|
|
$((a&b))
|
|
$((a|b))
|
|
${a:b}
|
|
${a:b}
|
|
${a:b}
|
|
${a:b}
|
|
${a#*/}
|
|
${a%.*}
|
|
${a^}
|
|
${a,}
|
|
${a}
|
|
${a[*]}
|
|
ls -a
|
|
ls --all
|