Andy Armstrong wrote:
On 4 Jun 2008, at 19:26, bin@cox.net wrote:
can anyone tell me why the perl bundle treats the letter 's' oddly when it is used as a hash index? for example the statements
$OPT{w} = 'a'; $OPT{s} = 'a';
are highlighted differently. what's up?
Oh yeah. Heh. I wonder if it's getting confused by a rule somewhere that's supposed to handle s///.
It certainly is s/// causing the confusion ;-( Strangely tr/// doesn't ;-)
Have a look a colour syntax on these different lines....
$OPT{ s } = 'a'; # => ok $OPT{'s'} = 'a'; # => ok $OPT{tr} = 'a'; # => ok! s/from/to/; # => ok s{from}{to}; # => ok tr/A/B/; # => ok tr{A}{B}; # => Nope!
The grammar regex below is being incorrectly used in the $OPT{s} example....
{ comment = 'string.regexp.replace.perl'; begin = '\b(?=(s)(\s+\S|\s*[;,#{}()[<]|$))'; end = '((([egimosx]*)))(?=(\s+\S|\s*[;,#{})]>]|$))'; endCaptures = { 1 = { name = 'linomuck.regexp.replace.perl'; }; 2 = { name = 'punctuation.definition.linomuck.perl'; }; 3 = { name = 'keyword.control.regexp-option.perl'; }; }; ==snip==
Grrrr.... first time I've looked at this grammar file so not sure what "best" fix is?
-- /I3az/