-
Notifications
You must be signed in to change notification settings - Fork 28
/
javaASTValidators.exsd
173 lines (156 loc) · 6.11 KB
/
javaASTValidators.exsd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.lsp4mp.jdt.core" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
<appinfo>
<meta.schema plugin="org.eclipse.lsp4mp.jdt.core" id="javaASTValidators" name="Java AST Validators"/>
</appinfo>
<documentation>
This extension point allows adding a validator to report LSP diagnostics which will be processed when AST is visited.
</documentation>
</annotation>
<element name="extension">
<annotation>
<appinfo>
<meta.element />
</appinfo>
</annotation>
<complexType>
<sequence minOccurs="1" maxOccurs="unbounded">
<element ref="validator" minOccurs="0" maxOccurs="unbounded"/>
<element ref="annotationValidator" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="point" type="string" use="required">
<annotation>
<documentation>
</documentation>
</annotation>
</attribute>
<attribute name="id" type="string">
<annotation>
<documentation>
</documentation>
</annotation>
</attribute>
<attribute name="name" type="string">
<annotation>
<documentation>
</documentation>
<appinfo>
<meta.attribute translatable="true"/>
</appinfo>
</annotation>
</attribute>
</complexType>
</element>
<element name="validator">
<annotation>
<documentation>
The Java AST validator managed by a custom class.
</documentation>
</annotation>
<complexType>
<attribute name="class" type="string" use="required">
<annotation>
<documentation>
The Java class for AST Validator.
</documentation>
<appinfo>
<meta.attribute kind="java" basedOn="org.eclipse.lsp4mp.jdt.core.java.validators.JavaASTValidator:"/>
</appinfo>
</annotation>
</attribute>
</complexType>
</element>
<element name="annotationValidator">
<annotation>
<documentation>
The Java AST validator for annotation managed by declared rules.
</documentation>
</annotation>
<complexType>
<sequence minOccurs="1" maxOccurs="unbounded">
<element ref="attribute" minOccurs="1" maxOccurs="unbounded"/>
</sequence>
<attribute name="annotation" type="string" use="required">
<annotation>
<documentation>
The fully qualified annotation name of concern by the validator
</documentation>
</annotation>
</attribute>
<attribute name="source" type="string">
<annotation>
<documentation>
The source used when LSP diagnostic is created. The source is optional.
</documentation>
</annotation>
</attribute>
</complexType>
</element>
<element name="attribute">
<annotation>
<documentation>
The attribute annotation to validate.
</documentation>
</annotation>
<complexType>
<attribute name="name" type="string" use="required">
<annotation>
<documentation>
The attribute name to validate of the annotation.
</documentation>
</annotation>
</attribute>
<attribute name="range" type="string">
<annotation>
<documentation>
The range to respect for the value of the attribute. The range is specified like OSGi version syntax:
* 0 -> means >=0
* [0 -> means >=0
* (0 -> means >0
* [0,1] -> means >=0 && <=1
* (0,1] -> means >0 && <=1
* (0,1) -> means >0 && <1
* [0,1) -> means >=0 && <1
</documentation>
</annotation>
</attribute>
</complexType>
</element>
<annotation>
<appinfo>
<meta.section type="since"/>
</appinfo>
<documentation>
0.4.0
</documentation>
</annotation>
<annotation>
<appinfo>
<meta.section type="examples"/>
</appinfo>
<documentation>
The following is an example of validator with a custom class:
<pre>
<extension point="org.eclipse.lsp4mp.jdt.core.javaASTValidators">
<!-- Java validation for the MicroProfile @ConfigProperty annotation -->
<validator class="org.eclipse.lsp4mp.jdt.internal.config.java.MicroProfileConfigASTValidator" />
</extension>
</pre>
The following is an example of validator which validates annotation attributes by using declared rules:
<pre>
<extension point="org.eclipse.lsp4mp.jdt.core.javaASTValidators">
<!-- Java validation for the MicroProfile Fault Tolerance annotations -->
<annotationValidator annotation="org.eclipse.microprofile.faulttolerance.CircuitBreaker"
source="microprofile-faulttolerance" >
<attribute name="delay" range="0" /> <!-- x >=0 -->
<attribute name="requestVolumeThreshold" range="1" /> <!-- x >=1 -->
<attribute name="failureRatio" range="[0,1]" /> <!-- 0 <= x <= 1 -->
<attribute name="successThreshold" range="1" /> <!-- x >=1 -->
</annotationValidator>
</extension>
</pre>
</documentation>
</annotation>
</schema>