Re: [PATCH v5] userdiff: improve java hunk header regex
- From
Tassilo Horn <tsdh@gnu.org>
- Date
- Aug 11, 2021, 17:42 UTC
- Message-ID
- <87im0b6f92.fsf@gnu.org>
- In-Reply-To
- <xmqqa6lnaola.fsf@gitster.g>
Junio C Hamano <gitster@pobox.com> writes:
> Just a few whitespace nits that "git am" noticed for me.
Ah, indeed. Should all be fixed in v6.
Show 19 quoted lines
>> diff --git a/t/t4018/java-class-member-function b/t/t4018/java-class-member-function
>> index 298bc7a71b..a8d7850412 100644
>> --- a/t/t4018/java-class-member-function
>> +++ b/t/t4018/java-class-member-function
>> @@ -3,6 +3,10 @@ public class Beer
>> int special;
>> public static void main(String RIGHT[])
>> {
>> - System.out.print("ChangeMe");
>> + someMethodCall();
>> + someOtherMethod("17")
>> + .doThat();
>> + // Whatever
>> + System.out.print("ChangeMe");
>
> I notice that the original used HT (horizontal tab) to indent, but
> the new one uses runs of SP (space). This project has no written
> preference for coding style for Java, which means it would have been
> more appreciated if the original style were kept.Fixed in v6.
Show 16 quoted lines
>> diff --git a/t/t4018/java-enum-constant b/t/t4018/java-enum-constant
>> new file mode 100644
>> index 0000000000..a1931c8379
>> --- /dev/null
>> +++ b/t/t4018/java-enum-constant
>> @@ -0,0 +1,6 @@
>> +private enum RIGHT {
>> + ONE,
>> + TWO,
>> + THREE,
>> + ChangeMe
>> +}
>
> For these new tests, you'd be the one setting what styles to use ;-)
> After all, we serve users from projects with different style, and
> having variety in our test patterns is not bad.I completely agree.
Show 20 quoted lines
>> diff --git a/userdiff.c b/userdiff.c
>> index 3c3bbe38b0..6644931ce1 100644
>> --- a/userdiff.c
>> +++ b/userdiff.c
>> @@ -142,7 +142,11 @@ PATTERNS("html",
>> "[^<>= \t]+"),
>> PATTERNS("java",
>> "!^[ \t]*(catch|do|for|if|instanceof|new|return|switch|throw|while)\n"
>> - "^[ \t]*(([A-Za-z_][A-Za-z_0-9]*[ \t]+)+[A-Za-z_][A-Za-z_0-9]*[ \t]*\\([^;]*)$",
>> + /* Class, enum, and interface declarations */
>> + "^[ \t]*(([a-z]+[ \t]+)*(class|enum|interface)[ \t]+[A-Za-z][A-Za-z0-9_$]*[ \t]+.*)$\n"
>> + /* Method definitions; note that constructor signatures are not */
>> + /* matched because they are indistinguishable from method calls. */
>> + "^[ \t]*(([A-Za-z_<>&][][?&<>.,A-Za-z_0-9]*[ \t]+)+[A-Za-z_][A-Za-z_0-9]*[ \t]*\\([^;]*)$",
>> /* -- */
>> "[a-zA-Z_][a-zA-Z0-9_]*"
>> "|[-+0-9.e]+[fFlL]?|0[xXbB]?[0-9a-fA-F]+[lL]?"
>
> This hunk does violate project convention that our codebase uses
> leading HT to indent (and align with extra SPs if needed).Also fixed in v6.
That leads to the question if you'd welcome a patch adding a .dir-locals.el to the repository with the right settings so that it'll just work for contributors using the One True Editor. Would you?
Bye, Tassilo