Open leagris opened 5 years ago
Thanks again @leagris :+1: I can reproduce with on macOS 10.12.6 but not sure if this belongs in https://github.com/tree-sitter/tree-sitter-bash.
For example, I see that the issue with base#
has already been reported: https://github.com/tree-sitter/tree-sitter-bash/issues/41.
I think that leaves 2 issues from your report, I don't think these have been reported?
((a=42)) # variable not highlighted
and:
a="$((~(-1 << 8)))" # parenthesis highlight broken
I'll see which repo the other maintainers think the issue belongs.
I was about to file a bug report for exactly this issue... Please fix asap :wink:
if test 0 -ne $((bDebug & 2#0001)); then
....
fi
Atom's highlighting/parsing bugs after the hash sign of 2#0001
A simple fix IMHO is to check for digits right infront of the hash sign....
@TriMoon or:
if ((bDebug & 2#0001)); then
echo 'ok'
fi
or:
((bDebug & 2#0001)) && echo 'ok'
or: Oh! Well, it does not show the bug then!
((bDebug & 1)) && echo 'ok'
@leagris is that first example you give using if
working on all shells? (eg. bash
,zsh
,dash
,sh
)
It needs to be shell agnostic...
Besides re-coding just to avoid highlighting bugs in some editor is not the way to go :wink:
@TriMoon
Stand-alone arithmetic expressions like in 1 are undefined in POSIX but supported everywhere.
Base specification with <base>#<number>
in arithmetic expressions is undefined in POSIX as well, so I opted to use POSIX undefined stand-alone expressions as well :)
A simple fix IMHO is to check for digits right infront of the hash sign....
The base value can be a variable name, so checking for [:digit:]#
would break this way.
The correct fix is to turn-off comments parsing within an arithmetic expression, as there is no comment allowed within it.
Prerequisites
Description
Shell arithmetic syntax highlighting breaks on multiple cases:
base#
is treated as a comment marker((
))
delimiters detection.Steps to Reproduce
Expected behavior:
Same correct highlighting as sample code above as shown in github
Actual behavior:
Reproduces how often:
100% reproducible
Versions
Versions
Additional Information
none