mirror of
https://github.com/git/git
synced 2024-10-29 17:08:46 +00:00
39226a8dac
A class or interface in Java can have type parameters following the name in the declared type, surrounded by angle brackets (paired less than and greater than signs).[2] The type parameters -- `A` and `B` in the examples -- may follow the class name immediately: public class ParameterizedClass<A, B> { } or may be separated by whitespace: public class SpaceBeforeTypeParameters <A, B> { } A part of the builtin userdiff pattern for Java matches declarations of classes, enums, and interfaces. The regular expression requires at least one whitespace character after the name of the declared type. This disallows matching for opening angle bracket of type parameters immediately after the name of the type. Mandatory whitespace after the name of the type also disallows using the pattern in repositories with a fairly common code style that puts braces for the body of a class on separate lines: class WithLineBreakBeforeOpeningBrace { } Support matching Java code in more diverse code styles and declarations of classes and interfaces with type parameters immediately following the name of the type in the builtin userdiff pattern for Java. Do so by just matching anything until the end of the line after the keywords for the kind of type being declared. [1] Since Java 5 released in 2004. [2] Detailed description is available in the Java Language Specification, sections "Type Variables" and "Parameterized Types": https://docs.oracle.com/javase/specs/jls/se17/html/jls-4.html#jls-4.4 Signed-off-by: Andrei Rybak <rybak.a.v@gmail.com> Reviewed-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> |
||
---|---|---|
.. | ||
bash-arithmetic-function | ||
bash-bashism-style-compact | ||
bash-bashism-style-function | ||
bash-bashism-style-whitespace | ||
bash-conditional-function | ||
bash-missing-parentheses | ||
bash-mixed-style-compact | ||
bash-mixed-style-function | ||
bash-nested-functions | ||
bash-other-characters | ||
bash-posix-style-compact | ||
bash-posix-style-function | ||
bash-posix-style-whitespace | ||
bash-subshell-function | ||
bash-trailing-comment | ||
cpp-c++-function | ||
cpp-class-constructor | ||
cpp-class-constructor-mem-init | ||
cpp-class-definition | ||
cpp-class-definition-derived | ||
cpp-class-destructor | ||
cpp-function-returning-global-type | ||
cpp-function-returning-nested | ||
cpp-function-returning-pointer | ||
cpp-function-returning-reference | ||
cpp-gnu-style-function | ||
cpp-namespace-definition | ||
cpp-operator-definition | ||
cpp-skip-access-specifiers | ||
cpp-skip-comment-block | ||
cpp-skip-labels | ||
cpp-struct-definition | ||
cpp-struct-single-line | ||
cpp-template-function-definition | ||
cpp-union-definition | ||
cpp-void-c-function | ||
css-attribute-value-selector | ||
css-block-level-@-statements | ||
css-brace-in-col-1 | ||
css-class-selector | ||
css-colon-eol | ||
css-colon-selector | ||
css-common | ||
css-id-selector | ||
css-long-selector-list | ||
css-prop-sans-indent | ||
css-root-selector | ||
css-short-selector-list | ||
css-trailing-space | ||
custom1-pattern | ||
custom2-match-to-end-of-line | ||
custom3-alternation-in-pattern | ||
dts-labels | ||
dts-node-unitless | ||
dts-nodes | ||
dts-nodes-boolean-prop | ||
dts-nodes-comment1 | ||
dts-nodes-comment2 | ||
dts-nodes-multiline-prop | ||
dts-reference | ||
dts-root | ||
dts-root-comment | ||
elixir-do-not-pick-end | ||
elixir-ex-unit-test | ||
elixir-function | ||
elixir-macro | ||
elixir-module | ||
elixir-module-func | ||
elixir-nested-module | ||
elixir-private-function | ||
elixir-protocol | ||
elixir-protocol-implementation | ||
fortran-block-data | ||
fortran-comment | ||
fortran-comment-keyword | ||
fortran-comment-legacy | ||
fortran-comment-legacy-star | ||
fortran-external-function | ||
fortran-external-subroutine | ||
fortran-module | ||
fortran-module-procedure | ||
fortran-program | ||
fountain-scene | ||
golang-complex-function | ||
golang-func | ||
golang-interface | ||
golang-long-func | ||
golang-struct | ||
java-class-brace-on-separate-line | ||
java-class-member-function | ||
java-class-space-before-type-parameters | ||
java-class-type-parameters | ||
java-class-type-parameters-implements | ||
java-enum-constant | ||
java-interface-type-parameters | ||
java-interface-type-parameters-extends | ||
java-method-return-generic-bounded | ||
java-method-return-generic-wildcard | ||
java-nested-field | ||
kotlin-class | ||
kotlin-enum-class | ||
kotlin-fun | ||
kotlin-inheritace-class | ||
kotlin-inline-class | ||
kotlin-interface | ||
kotlin-nested-fun | ||
kotlin-public-class | ||
kotlin-sealed-class | ||
markdown-heading-indented | ||
markdown-heading-non-headings | ||
matlab-class-definition | ||
matlab-function | ||
matlab-octave-section-1 | ||
matlab-octave-section-2 | ||
matlab-section | ||
perl-skip-end-of-heredoc | ||
perl-skip-forward-decl | ||
perl-skip-sub-in-pod | ||
perl-sub-definition | ||
perl-sub-definition-kr-brace | ||
php-abstract-class | ||
php-abstract-method | ||
php-class | ||
php-enum | ||
php-final-class | ||
php-final-method | ||
php-function | ||
php-interface | ||
php-method | ||
php-trait | ||
python-async-def | ||
python-class | ||
python-def | ||
python-indented-async-def | ||
python-indented-class | ||
python-indented-def | ||
README | ||
rust-fn | ||
rust-impl | ||
rust-macro-rules | ||
rust-struct | ||
rust-trait | ||
scheme-class | ||
scheme-def | ||
scheme-def-variant | ||
scheme-define-slash-public | ||
scheme-define-syntax | ||
scheme-define-variant | ||
scheme-library | ||
scheme-local-define | ||
scheme-module | ||
scheme-top-level-define | ||
scheme-user-defined-define |
How to write RIGHT test cases ============================= Insert the word "ChangeMe" (exactly this form) at a distance of at least two lines from the line that must appear in the hunk header. The text that must appear in the hunk header must contain the word "right", but in all upper-case, like in the title above. This text is a bit twisted and out of order, but it is itself a test case for the default hunk header pattern. Know what you are doing if you change it. BTW, this tests that the head line goes to the hunk header, not the line of equal signs.