Re: [PATCH] userdiff: Add diff driver for Kotlin lang and tests
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 1, 2022, 09:32 UTC
- Message-ID
- <xmqqy21urpap.fsf@gitster.g>
- In-Reply-To
- <20220301070226.2477769-2-jaydeepjd.8914@gmail.com>
Jaydeep P Das <jaydeepjd.8914@gmail.com> writes:
> Subject: Re: [PATCH] userdiff: Add diff driver for Kotlin lang and tests
"Add" -> "add". "lang and tests" -> "language".
> The xfuncname pattern finds func/class declarations in diffs to > display as a hunk header.
Yes, but an entry for a language in userdiff.c consists of the funcname pattern AND the word_regex. And I think the patch is adding both, not just funcname pattern.
Show 5 quoted lines
> This patch adds xfuncname regex and some respective > tests for Kotlin language. > > Also modifies `Documentation./gitattributes.txt` to state > the same.
See Documenation/SubmittingPatches::[[imperative-mood]].
But it probably is better to leave these unsaid. The patterns, tests and documentation updates go hand in hand.
Show 22 quoted lines
> 11 files changed, 59 insertions(+) > create mode 100644 t/t4018/kotlin-class > create mode 100644 t/t4018/kotlin-enum-class > create mode 100644 t/t4018/kotlin-fun > create mode 100644 t/t4018/kotlin-inheritace-class > create mode 100644 t/t4018/kotlin-inline-class > create mode 100644 t/t4018/kotlin-interface > create mode 100644 t/t4018/kotlin-nested-fun > create mode 100644 t/t4018/kotlin-public-class > create mode 100644 t/t4018/kotlin-sealed-class > > diff --git a/Documentation/gitattributes.txt b/Documentation/gitattributes.txt > index a71dad2674..94d06dc337 100644 > --- a/Documentation/gitattributes.txt > +++ b/Documentation/gitattributes.txt > @@ -829,6 +829,8 @@ patterns are available: > > - `java` suitable for source code in the Java language. > > +- `kotlin` suitable for source code in the Kotlin language > + > - `markdown` suitable for Markdown documents.
The entries before and after this new one both end with a full stop, and this new entry should do the same.
Show 11 quoted lines
> diff --git a/userdiff.c b/userdiff.c
> index 8578cb0d12..a6cc6dc3b7 100644
> --- a/userdiff.c
> +++ b/userdiff.c
> @@ -168,6 +168,14 @@ PATTERNS("java",
> "|[-+0-9.e]+[fFlL]?|0[xXbB]?[0-9a-fA-F]+[lL]?"
> "|[-+*/<>%&^|=!]="
> "|--|\\+\\+|<<=?|>>>?=?|&&|\\|\\|"),
> +PATTERNS("kotlin",
> + /* fun, class, interface, declarations */
> + "^[ \t]*(([a-z]+[ \t]+)*(fun|class|interface)[ \t]+.*[ \t]*)$",With the three keywords clearly visible in the pattern, the comment looks somewhat redundant. I dunno.
Show 5 quoted lines
> + /* -- */ > + "[a-zA-Z_][a-zA-Z0-9_]*" > + "|[-+0-9.e]+[fFlL]?|0[xXbB]?[0-9a-fA-F]+[lL]?" > + "|[-+*/<>%&^|=!]=" > + "|--|\\+\\+|<<=?|>>>?=?|&&|\\|\\|"),
The latter half is word regex, which is tested in t4034 to at least ensure that it is well formed. We can also add t/t4034/$language/ to see the patterns hit the word boundary as expected.
> PATTERNS("markdown",
> "^ {0,3}#{1,6}[ \t].*",
> /* -- */