coffeescript icon indicating copy to clipboard operation
coffeescript copied to clipboard

Heregex Comment

Open STRd6 opened this issue 3 years ago • 2 comments

Fixes #5428

This fix is simple enough but it causes a substantial change in behavior for Heregexes.

# inside of a character class shouldn't be considered a comment. By treating # without whitespace in front as non-comments we could have slight compatability with Python.

There are other places in the CoffeeScript source where people avoided escaping the # by keeping it next to non-whitespace characters even outside of a character class. This is different than how Python does it and is probably a bug but maybe it is too late with the de facto CoffeeScript2 behavior.

I'm not sure if this should be merged in since it changes the behavior quite a lot. Maybe another one for the CoffeeScript3/Civet bucket.

Refs

Python Docs: https://docs.python.org/3/library/re.html#re.X

STRd6 avatar Nov 26 '22 15:11 STRd6

GitHub auto-closed when I rebased so re-opening.

STRd6 avatar Nov 26 '22 17:11 STRd6

The interpolation test that was changed is interesting...

It's inserting a string containing a single backslash into the RegExp ahead of an escaped #. The current behavior is to keep the single backslash which is escaping the # in the output which then combines with another single backslash from the interpolation which causes the output to be an escaped backslash. There's no comment about the intent other than TODO improve heregex interpolation tests so I'm not sure if this existing behavior is desired.

STRd6 avatar Nov 27 '22 00:11 STRd6