Hacker News new | ask | show | jobs
by staunton 960 days ago
It's a regex? Is it even guaranteed to work then? I would think you have to parse non-regular languages to always find the end of a function in a some languages?

Indeed, it does not always work correctly for Julia, as an arbitrary example I tried. Seems like it goes by indentation? Still nice though and worked out of the box!

2 comments

There's a comment about that here: https://github.com/git/git/blob/bc5204569f7db44d22477485afd5...

    When writing or updating patterns, assume that the contents these
    patterns are applied to are syntactically correct.  The patterns
    can be simple without implementing all syntactical corner cases, as
    long as they are sufficiently permissive.
Wow, that file must be paradise for regex nerds, assuming there are any such...
there are, I am, and it's not (sorry). some languages have the ability to comment regexes, and that would be very useful here.
It has lots of comments inside the regexes. How would this better comment support look like?
These are not technically "comments inside the regexes", that would be something like the "Delete (most) C comments." regex here: https://perldoc.perl.org/perlre#/x-and-/xx

Here, instead, they've used string juxtaposition cleverly to write comments between parts of the regex/string. It effectively serves the same purpose though.

there are, I am, and it is. (Except for the proliferation of backslashes due to C not having "raw" strings.)
It's just to match the (starting) line. I assume the +n context uses the same method diffs do anywhere else, however that works (and sometimes doesn't).