Re: [PATCH v2] userdiff: add support for Swift
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jul 21, 2026, 19:33 UTC
- Message-ID
- <xmqqmrvkw31z.fsf@gitster.g>
- In-Reply-To
- <20260721065736.8747-1-diy2903@gmail.com>
Shlok Kulshreshtha <diy2903@gmail.com> writes:
Show 30 quoted lines
> 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 <diy2903@gmail.com>
> ---
> v2, addressing Johannes Sixt's review of v1
> (<2a3a73c5-5e90-44a3-bf6a-6e98ce5e5a59@kdbg.org>). 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'.