Re: [PATCH v2] userdiff: add support for Swift
Junio C Hamano <[email protected]>
| Newsgroups | org.kernel.vger.git |
|---|---|
| Message-ID | <[email protected]> |
Shlok Kulshreshtha <[email protected]> writes: > Add a built-in userdiff driver for the Swift programming language so that > diff hunk headers and word diffs work out of the box for ".swift" files. > > The funcname pattern is built for Swift's own declaration grammar: an > optional run of attributes ("@objc", "@available(iOS 13, *)", ...), > followed by an optional run of lowercase modifiers ("public", "static", > "final", ...), followed by a declaration keyword (func, class, struct, > enum, protocol, extension, actor, init, deinit, subscript). The keyword > is followed by a boundary that allows whitespace, "(" (init/subscript), > "?" or "!" (failable init), or "<" (generics), while still acting as a > word boundary so e.g. "initialize(" does not match. > > The word regex recognizes Swift identifiers, hexadecimal, octal, binary, > integer and floating-point literals, and the language's operators. > > Signed-off-by: Shlok Kulshreshtha <[email protected]> > --- > v2, addressing Johannes Sixt's review of v1 > (<[email protected]>). Changes since v1: > > - t4018/swift-{init,failable-init,generic-subscript}: "RIGHT" now > appears only once, on the declaration line, so the expected header is > unambiguous. > - word regex: dropped the redundant "?" after the single-character > operator class. Single characters are already covered by the > "|[^[:space:]]" fallback that the PATTERNS macro appends, so only the > two-character forms need to be spelled out. > > (A couple of Hannes's other suggestions I kept as-is; I have explained > the reasoning in a reply to his review.) Thanks for an update. Let's wait for a few days to see if we hear more comments and otherwise mark the topic for 'next'.