-
Notifications
You must be signed in to change notification settings - Fork 18
/
rpglint.json
192 lines (191 loc) · 6.03 KB
/
rpglint.json
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
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://github.com/halcyon-tech/vscode-ibmi",
"type": "object",
"description": "Available lint configuration for RPGLE",
"required": [],
"properties": {
"indent": {
"$id": "#/properties/indent",
"type": "number",
"description": "Indent for RPGLE."
},
"BlankStructNamesCheck": {
"$id": "#/properties/BlankStructNamesCheck",
"type": "boolean",
"description": "Struct names cannot be blank (*N)."
},
"QualifiedCheck": {
"$id": "#/properties/QualifiedCheck",
"type": "boolean",
"description": "Struct names must be qualified (QUALIFIED)."
},
"PrototypeCheck": {
"$id": "#/properties/PrototypeCheck",
"type": "boolean",
"description": "Prototypes can only be defined with either EXTPGM or EXTPROC."
},
"ForceOptionalParens": {
"$id": "#/properties/ForceOptionalParens",
"type": "boolean",
"description": "Expressions must be surrounded by brackets."
},
"NoOCCURS": {
"$id": "#/properties/NoOCCURS",
"type": "boolean",
"description": "OCCURS is not allowed."
},
"NoSELECTAll": {
"$id": "#/properties/NoSELECTAll",
"type": "boolean",
"description": "'SELECT *' is not allowed in Embedded SQL."
},
"UselessOperationCheck": {
"$id": "#/properties/UselessOperationCheck",
"type": "boolean",
"description": "Redundant operation codes (EVAL, CALLP, DCL-PARM, DCL-SUBF) not allowed."
},
"UppercaseConstants": {
"$id": "#/properties/UppercaseConstants",
"type": "boolean",
"description": "Constants must be in uppercase."
},
"IncorrectVariableCase": {
"$id": "#/properties/IncorrectVariableCase",
"type": "boolean",
"description": "Variable names must match the case of the definition."
},
"RequiresParameter": {
"$id": "#/properties/RequiresParameter",
"type": "boolean",
"description": "Parentheses must be used on a procedure call, even if it has no parameters."
},
"RequiresProcedureDescription": {
"$id": "#/properties/RequiresProcedureDescription",
"type": "boolean",
"description": "Procedure titles and descriptions must be provided."
},
"StringLiteralDupe": {
"$id": "#/properties/StringLiteralDupe",
"type": "boolean",
"description": "Duplicate string literals suggestions are made. Enabled by default."
},
"RequireBlankSpecial": {
"$id": "#/properties/RequireBlankSpecial",
"type": "boolean",
"description": "*BLANK must be used over empty string literals."
},
"CopybookDirective": {
"$id": "#/properties/CopybookDirective",
"type": "string",
"enum": [
"copy",
"include"
],
"description": "Force which directive which must be used to include other source. (Copy or Include)"
},
"DirectiveCase": {
"$id": "#/properties/DirectiveCase",
"type": "string",
"enum": [
"lower",
"upper"
],
"description": "The expected casing of directives (lower or upper)."
},
"UppercaseDirectives": {
"$id": "#/properties/UppercaseDirectives",
"type": "boolean",
"description": "Directives must be in uppercase.",
"deprecated": true
},
"NoSQLJoins": {
"$id": "#/properties/NoSQLJoins",
"type": "boolean",
"description": "JOINs in Embedded SQL are not allowed."
},
"NoGlobalsInProcedures": {
"$id": "#/properties/NoGlobalsInProcedures",
"type": "boolean",
"description": "Globals are not allowed in procedures."
},
"SpecificCasing": {
"$id": "#/properties/SpecificCasing",
"type": "array",
"items": {
"type": "object",
"properties": {
"operation": {
"type": "string",
"description": "The operation code, declaration or built-in function to check. Can use the following special values: `*DECLARE`, `*BIF`"
},
"expected": {
"type": "string",
"description": "The expected casing of the operation code, declaration or built-in function. Can use the following special values: `*LOWER`, `*UPPER`"
}
},
"additionalProperties": false
},
"description": "Specific casing for op codes, declartions or built-in functions codes."
},
"NoCTDATA": {
"$id": "#/properties/NoCTDATA",
"type": "boolean",
"description": "CTDATA is not allowed."
},
"PrettyComments": {
"$id": "#/properties/PrettyComments",
"type": "boolean",
"description": "Comments cannot be blank, must start with a space and have correct indentation."
},
"NoGlobalSubroutines": {
"$id": "#/properties/NoGlobalSubroutines",
"type": "boolean",
"description": "Global subroutines are not allowed."
},
"NoLocalSubroutines": {
"$id": "#/properties/NoLocalSubroutines",
"type": "boolean",
"description": "Subroutines in procedures are not allowed."
},
"NoUnreferenced": {
"$id": "#/properties/NoUnreferenced",
"type": "boolean",
"description": "Unreferenced definitions are not allowed."
},
"NoExternalTo": {
"$id": "#/properties/NoExternalTo",
"type": "array",
"items": {
"type": "string"
},
"description": "Calls to certain APIs are not allowed. (EXTPROC / EXTPGM)"
},
"NoExecuteImmediate": {
"$id": "#/properties/NoExecuteImmediate",
"type": "boolean",
"description": "Embedded SQL statement with EXECUTE IMMEDIATE not allowed."
},
"NoExtProgramVariable": {
"$id": "#/properties/NoExtProgramVariable",
"type": "boolean",
"description": "Declaring a prototype with EXTPGM and EXTPROC using a procedure is now allowed."
},
"IncludeMustBeRelative": {
"$id": "#/properties/IncludeMustBeRelative",
"type": "boolean",
"description": "When using copy or include statements, path must be relative. For members, you must at least include the source file. For streamfiles, it is relative from the working directory."
},
"SQLHostVarCheck": {
"$id": "#/properties/SQLHostVarCheck",
"type": "boolean",
"description": "Warns when referencing variables in Embedded SQL that are also defined locally."
},
"RequireOtherBlock": {
"$id": "#/properties/RequireOtherBlock",
"type": "boolean",
"description": "Require SELECT blocks to have an OTHER block."
}
},
"additionalProperties": true
}