From: Johannes Sixt Date: Mon, 20 Jul 2026 08:49:21 GMT Subject: Re: [PATCH] userdiff: add support for Swift Message-ID: <7b541cd5-bd66-4675-818d-8e23eb1c9530@kdbg.org> In-Reply-To: <2a3a73c5-5e90-44a3-bf6a-6e98ce5e5a59@kdbg.org> Am 18.07.26 um 20:11 schrieb Johannes Sixt: > Am 17.07.26 um 16:02 schrieb Shlok Kulshreshtha: >> +PATTERNS("swift", >> + "^[ \t]*((@[A-Za-z_][A-Za-z0-9_]*(\\([^()]*\\))?[ \t]+)*([a-z]+[ \t]+)*(func|init|deinit|subscript|class|struct|enum|protocol|extension|actor)[ \t(?!<].*)$", > > This looks good. > > Notice, however, how the regular expression matcher has to backtrack on > even simple lines such as [...] > It may be worth considering to enumerate all keywords and permit any run > of them: Let me back-paddle on this one. As I said, the original RE is good. I am making up a problem here without providing evidence. Modern RE matchers may be clever enough that there is no problem. If it turns out there is a problem, we can improve later something that already works. -- Hannes