annotate runtime/syntax/testdir/input/java_methods_indent.java @ 35039:fbdb6aeca2e2

runtime(java): Improve the recognition of the "style" method declarations Commit: https://github.com/vim/vim/commit/a4c085a3e607bd01d34e1db600b6460fc35fb0a3 Author: Aliaksei Budavei <0x000c70@gmail.com> Date: Wed Apr 24 21:04:25 2024 +0200 runtime(java): Improve the recognition of the "style" method declarations - Request the new regexp engine (v7.3.970) for [:upper:] and [:lower:]. - Recognise declarations of in-line annotated methods. - Recognise declarations of _strictfp_ methods. - Establish partial order for method modifiers as shown in the MethodModifier production; namely, _public_ and friends should be written the leftmost, possibly followed by _abstract_ or _default_, or possibly followed by other modifiers. - Stop looking for parameterisable primitive types (void<?>, int<Object>, etc., are malformed). - Stop looking for arrays of _void_. - Acknowledge the prevailing convention for method names to begin with a small letter and for class/interface names to begin with a capital letter; and, therefore, desist from claiming declarations of enum constants and constructors with javaFuncDef. Rationale: + Constructor is distinct from method: * its (overloaded) name is not arbitrary; * its return type is implicit; * its _throws_ clause depends on indirect vagaries of instance (variable) initialisers; * its invocation makes other constructors of its type hierarchy invoked one by one, concluding with the primordial constructor; * its explicit invocation, via _this_ or _super_, can only appear as the first statement in a constructor (not anymore, see JEP 447); else, its _super_ call cannot appear in constructors of _record_ or _enum_; and neither invocation is allowed for the primordial constructor; * it is not a member of its class, like initialisers, and is never inherited; * it is never _abstract_ or _native_. + Constructor declarations tend to be few in number and merit visual recognition from method declarations. + Enum constants define a fixed set of type instances and more resemble class variable initialisers. Note that the code duplicated for @javaFuncParams is written keeping in mind for g:java_highlight_functions a pending 3rd variant, which would require none of the :syn-cluster added groups. closes: #14620 Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Wed, 24 Apr 2024 21:15:02 +0200
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
35039
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1 // VIM_TEST_SETUP let g:java_highlight_functions = 'indent'
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
2
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
3
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
4 import java.lang.annotation.Target;
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
5
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
6 abstract class IndentMethodsTests
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
7 { // DO NOT retab! THIS FILE; REMEMBER ABOUT testdir/ftplugin.
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
8 protected IndentMethodsTests() { }
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
9
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
10 record Τʬ<α>(α a) { }
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
11
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
12 enum 𝓔
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
13 {
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
14 A("𝕬"), B("𝕭"), C("𝕮"), D("𝕯"),
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
15 E("𝕰"), F("𝕱"), G("𝕲"), H("𝕳");
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
16 final String 𝐬;
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
17 private 𝓔(String 𝐬) { this.𝐬 = 𝐬; }
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
18 }
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
19
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
20 @Target(java.lang.annotation.ElementType.METHOD)
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
21 @java.lang.annotation.Repeatable(Tɐggablɘs.class)
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
22 @interface Tɐggablɘ
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
23 {
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
24 String[] value() default "";
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
25 }
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
26
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
27 @Target(java.lang.annotation.ElementType.METHOD)
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
28 @interface Tɐggablɘs
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
29 {
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
30 Tɐggablɘ[] value();
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
31 }
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
32
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
33 interface Stylable<Α>
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
34 {
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
35 default void ascii$0_() { }
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
36 default Α μʭʭ$0_() { return null; }
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
37 }
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
38
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
39 @Tɐggablɘ @Tɐggablɘ
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
40 abstract void ascii$0_();
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
41
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
42 @Tɐggablɘ @Tɐggablɘ
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
43 abstract <α, β> Τʬ<α> μʭʭ$0_(β 𝛽);
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
44
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
45 @Tɐggablɘ
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
46 private native void ascii$1_();
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
47
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
48 @Tɐggablɘ
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
49 private native <α, β> Τʬ<α>[] μʭʭ$1_(
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
50 java.util.function.Function<β, Τʬ<α>[]> ƒ);
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
51
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
52 static final native synchronized void ascii$98_();
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
53 static final native synchronized <α, β> Τʬ<α>[][] μʭʭ$98_(
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
54 java.util.function.Function<β, Τʬ<α>[][]> ƒ);
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
55
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
56 @SuppressWarnings("strictfp")
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
57 protected static final synchronized strictfp void ascii$99_()
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
58 { ascii$98_(); }
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
59
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
60 @SuppressWarnings("strictfp")
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
61 protected static final synchronized strictfp <α, β> Τʬ<α>[] μʭʭ$99_(
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
62 java.util.function.Function<β, Τʬ<α>[][]> ƒ)
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
63 {
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
64 return
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
65 IndentMethodsTests.<α, β>μʭʭ$98_(ƒ)[0];
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
66 }
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
67
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
68 @Override @SuppressWarnings("cast")
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
69 public String toString() { return (String) "IndentMethodsTests"; }
fbdb6aeca2e2 runtime(java): Improve the recognition of the "style" method declarations
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
70 }