@abaplint/core 2.105.2 → 2.105.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/abaplint.d.ts +34 -24
- package/build/src/abap/2_statements/statements/delete_memory.js +2 -1
- package/build/src/abap/5_syntax/_type_utils.js +5 -0
- package/build/src/objects/index.js +24 -23
- package/build/src/objects/standard_task.js +21 -0
- package/build/src/registry.js +1 -1
- package/build/src/rules/avoid_use.js +3 -1
- package/build/src/rules/no_prefixes.js +6 -3
- package/build/src/rules/reduce_procedural_code.js +7 -1
- package/package.json +3 -3
package/build/abaplint.d.ts
CHANGED
|
@@ -4676,6 +4676,29 @@ declare namespace Objects {
|
|
|
4676
4676
|
MessagingChannel,
|
|
4677
4677
|
MIMEObject,
|
|
4678
4678
|
Namespace,
|
|
4679
|
+
NeptuneAPI,
|
|
4680
|
+
NeptuneApp,
|
|
4681
|
+
NeptuneCustomColor,
|
|
4682
|
+
NeptuneCustomJSHelper,
|
|
4683
|
+
NeptuneDocumentation,
|
|
4684
|
+
NeptuneEnhancement,
|
|
4685
|
+
NeptuneLaunchpadLayout,
|
|
4686
|
+
NeptuneLaunchpad,
|
|
4687
|
+
NeptuneLoginPage,
|
|
4688
|
+
NeptuneMediaLibrary,
|
|
4689
|
+
NeptuneMediaPack,
|
|
4690
|
+
NeptuneMetadata,
|
|
4691
|
+
NeptuneMobileClient,
|
|
4692
|
+
NeptuneOData,
|
|
4693
|
+
NeptunePolicy,
|
|
4694
|
+
NeptuneRFCMapping,
|
|
4695
|
+
NeptuneRichTextTemplate,
|
|
4696
|
+
NeptuneSplashScreen,
|
|
4697
|
+
NeptuneStickyBanner,
|
|
4698
|
+
NeptuneTileGroup,
|
|
4699
|
+
NeptuneTileLayout,
|
|
4700
|
+
NeptuneTile,
|
|
4701
|
+
NeptuneURLAlias,
|
|
4679
4702
|
NumberRange,
|
|
4680
4703
|
Oauth2Profile,
|
|
4681
4704
|
ObjectCharacteristic,
|
|
@@ -4703,6 +4726,7 @@ declare namespace Objects {
|
|
|
4703
4726
|
SharedMemory,
|
|
4704
4727
|
SmartForm,
|
|
4705
4728
|
SmartStyle,
|
|
4729
|
+
StandardTask,
|
|
4706
4730
|
SwitchAssignmentHierarchy,
|
|
4707
4731
|
SwitchAssignments,
|
|
4708
4732
|
TableType,
|
|
@@ -4721,30 +4745,7 @@ declare namespace Objects {
|
|
|
4721
4745
|
WebDynproApplication,
|
|
4722
4746
|
WebDynproComponentConfiguration,
|
|
4723
4747
|
WebDynproComponent,
|
|
4724
|
-
WebMIME
|
|
4725
|
-
NeptuneMetadata,
|
|
4726
|
-
NeptuneApp,
|
|
4727
|
-
NeptuneAPI,
|
|
4728
|
-
NeptuneLaunchpad,
|
|
4729
|
-
NeptuneTileGroup,
|
|
4730
|
-
NeptuneTile,
|
|
4731
|
-
NeptunePolicy,
|
|
4732
|
-
NeptuneLaunchpadLayout,
|
|
4733
|
-
NeptuneTileLayout,
|
|
4734
|
-
NeptuneEnhancement,
|
|
4735
|
-
NeptuneLoginPage,
|
|
4736
|
-
NeptuneStickyBanner,
|
|
4737
|
-
NeptuneSplashScreen,
|
|
4738
|
-
NeptuneCustomColor,
|
|
4739
|
-
NeptuneRichTextTemplate,
|
|
4740
|
-
NeptuneCustomJSHelper,
|
|
4741
|
-
NeptuneDocumentation,
|
|
4742
|
-
NeptuneRFCMapping,
|
|
4743
|
-
NeptuneMediaLibrary,
|
|
4744
|
-
NeptuneMediaPack,
|
|
4745
|
-
NeptuneURLAlias,
|
|
4746
|
-
NeptuneOData,
|
|
4747
|
-
NeptuneMobileClient
|
|
4748
|
+
WebMIME
|
|
4748
4749
|
}
|
|
4749
4750
|
}
|
|
4750
4751
|
export { Objects }
|
|
@@ -5839,6 +5840,15 @@ declare class SQLUpTo extends Expression {
|
|
|
5839
5840
|
getRunnable(): IStatementRunnable;
|
|
5840
5841
|
}
|
|
5841
5842
|
|
|
5843
|
+
declare class StandardTask extends AbstractObject {
|
|
5844
|
+
getType(): string;
|
|
5845
|
+
getAllowedNaming(): {
|
|
5846
|
+
maxLength: number;
|
|
5847
|
+
allowNamespace: boolean;
|
|
5848
|
+
};
|
|
5849
|
+
getDescription(): string | undefined;
|
|
5850
|
+
}
|
|
5851
|
+
|
|
5842
5852
|
declare class StartOfSelection implements IStatement {
|
|
5843
5853
|
getMatcher(): IStatementRunnable;
|
|
5844
5854
|
}
|
|
@@ -8,7 +8,8 @@ class DeleteMemory {
|
|
|
8
8
|
getMatcher() {
|
|
9
9
|
const memory = (0, combi_1.seq)("MEMORY ID", expressions_1.Source);
|
|
10
10
|
const id = (0, combi_1.seq)("ID", expressions_1.Source);
|
|
11
|
-
const
|
|
11
|
+
const client = (0, combi_1.seq)("CLIENT", expressions_1.Source);
|
|
12
|
+
const shared = (0, combi_1.seq)("SHARED MEMORY", expressions_1.Field, "(", expressions_1.Field, ")", (0, combi_1.optPrio)(client), id);
|
|
12
13
|
const ret = (0, combi_1.seq)("DELETE FROM", (0, combi_1.alt)(memory, shared));
|
|
13
14
|
return (0, combi_1.verNot)(version_1.Version.Cloud, ret);
|
|
14
15
|
}
|
|
@@ -295,6 +295,9 @@ class TypeUtils {
|
|
|
295
295
|
}
|
|
296
296
|
return true;
|
|
297
297
|
}
|
|
298
|
+
else if (target instanceof basic_1.CLikeType) {
|
|
299
|
+
return this.isCharLikeStrict(source);
|
|
300
|
+
}
|
|
298
301
|
else if (target instanceof basic_1.VoidType || target instanceof basic_1.AnyType) {
|
|
299
302
|
return true;
|
|
300
303
|
}
|
|
@@ -329,6 +332,8 @@ class TypeUtils {
|
|
|
329
332
|
else if (source instanceof basic_1.ObjectReferenceType) {
|
|
330
333
|
if (target instanceof basic_1.XSequenceType
|
|
331
334
|
|| target instanceof basic_1.IntegerType
|
|
335
|
+
|| target instanceof basic_1.StructureType
|
|
336
|
+
|| target instanceof basic_1.TableType
|
|
332
337
|
|| target instanceof basic_1.XStringType) {
|
|
333
338
|
return false;
|
|
334
339
|
}
|
|
@@ -99,6 +99,29 @@ __exportStar(require("./message_class"), exports);
|
|
|
99
99
|
__exportStar(require("./messaging_channel"), exports);
|
|
100
100
|
__exportStar(require("./mime_object"), exports);
|
|
101
101
|
__exportStar(require("./namespace"), exports);
|
|
102
|
+
__exportStar(require("./neptune_api"), exports);
|
|
103
|
+
__exportStar(require("./neptune_app"), exports);
|
|
104
|
+
__exportStar(require("./neptune_custom_color"), exports);
|
|
105
|
+
__exportStar(require("./neptune_custom_js_helper"), exports);
|
|
106
|
+
__exportStar(require("./neptune_documentation"), exports);
|
|
107
|
+
__exportStar(require("./neptune_enhancement"), exports);
|
|
108
|
+
__exportStar(require("./neptune_launchpad_layout"), exports);
|
|
109
|
+
__exportStar(require("./neptune_launchpad"), exports);
|
|
110
|
+
__exportStar(require("./neptune_login_page"), exports);
|
|
111
|
+
__exportStar(require("./neptune_media_library"), exports);
|
|
112
|
+
__exportStar(require("./neptune_media_pack"), exports);
|
|
113
|
+
__exportStar(require("./neptune_metadata"), exports);
|
|
114
|
+
__exportStar(require("./neptune_mobile_client"), exports);
|
|
115
|
+
__exportStar(require("./neptune_odata"), exports);
|
|
116
|
+
__exportStar(require("./neptune_policy"), exports);
|
|
117
|
+
__exportStar(require("./neptune_rfc_mapping"), exports);
|
|
118
|
+
__exportStar(require("./neptune_rich_text_template"), exports);
|
|
119
|
+
__exportStar(require("./neptune_splash_screen"), exports);
|
|
120
|
+
__exportStar(require("./neptune_sticky_banner"), exports);
|
|
121
|
+
__exportStar(require("./neptune_tile_group"), exports);
|
|
122
|
+
__exportStar(require("./neptune_tile_layout"), exports);
|
|
123
|
+
__exportStar(require("./neptune_tile"), exports);
|
|
124
|
+
__exportStar(require("./neptune_url_alias"), exports);
|
|
102
125
|
__exportStar(require("./number_range"), exports);
|
|
103
126
|
__exportStar(require("./oauth2_profile"), exports);
|
|
104
127
|
__exportStar(require("./object_characteristic"), exports);
|
|
@@ -123,6 +146,7 @@ __exportStar(require("./service_definition"), exports);
|
|
|
123
146
|
__exportStar(require("./shared_memory"), exports);
|
|
124
147
|
__exportStar(require("./smart_form"), exports);
|
|
125
148
|
__exportStar(require("./smart_style"), exports);
|
|
149
|
+
__exportStar(require("./standard_task"), exports);
|
|
126
150
|
__exportStar(require("./switch_assignment_hierarchy"), exports);
|
|
127
151
|
__exportStar(require("./switch_assignments"), exports);
|
|
128
152
|
__exportStar(require("./table_type"), exports);
|
|
@@ -140,27 +164,4 @@ __exportStar(require("./web_dynpro_application"), exports);
|
|
|
140
164
|
__exportStar(require("./web_dynpro_component_configuration"), exports);
|
|
141
165
|
__exportStar(require("./web_dynpro_component"), exports);
|
|
142
166
|
__exportStar(require("./web_mime"), exports);
|
|
143
|
-
__exportStar(require("./neptune_metadata"), exports);
|
|
144
|
-
__exportStar(require("./neptune_app"), exports);
|
|
145
|
-
__exportStar(require("./neptune_api"), exports);
|
|
146
|
-
__exportStar(require("./neptune_launchpad"), exports);
|
|
147
|
-
__exportStar(require("./neptune_tile_group"), exports);
|
|
148
|
-
__exportStar(require("./neptune_tile"), exports);
|
|
149
|
-
__exportStar(require("./neptune_policy"), exports);
|
|
150
|
-
__exportStar(require("./neptune_launchpad_layout"), exports);
|
|
151
|
-
__exportStar(require("./neptune_tile_layout"), exports);
|
|
152
|
-
__exportStar(require("./neptune_enhancement"), exports);
|
|
153
|
-
__exportStar(require("./neptune_login_page"), exports);
|
|
154
|
-
__exportStar(require("./neptune_sticky_banner"), exports);
|
|
155
|
-
__exportStar(require("./neptune_splash_screen"), exports);
|
|
156
|
-
__exportStar(require("./neptune_custom_color"), exports);
|
|
157
|
-
__exportStar(require("./neptune_rich_text_template"), exports);
|
|
158
|
-
__exportStar(require("./neptune_custom_js_helper"), exports);
|
|
159
|
-
__exportStar(require("./neptune_documentation"), exports);
|
|
160
|
-
__exportStar(require("./neptune_rfc_mapping"), exports);
|
|
161
|
-
__exportStar(require("./neptune_media_library"), exports);
|
|
162
|
-
__exportStar(require("./neptune_media_pack"), exports);
|
|
163
|
-
__exportStar(require("./neptune_url_alias"), exports);
|
|
164
|
-
__exportStar(require("./neptune_odata"), exports);
|
|
165
|
-
__exportStar(require("./neptune_mobile_client"), exports);
|
|
166
167
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StandardTask = void 0;
|
|
4
|
+
const _abstract_object_1 = require("./_abstract_object");
|
|
5
|
+
class StandardTask extends _abstract_object_1.AbstractObject {
|
|
6
|
+
getType() {
|
|
7
|
+
return "PDTS";
|
|
8
|
+
}
|
|
9
|
+
getAllowedNaming() {
|
|
10
|
+
return {
|
|
11
|
+
maxLength: 30,
|
|
12
|
+
allowNamespace: true,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
getDescription() {
|
|
16
|
+
// todo
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.StandardTask = StandardTask;
|
|
21
|
+
//# sourceMappingURL=standard_task.js.map
|
package/build/src/registry.js
CHANGED
|
@@ -51,7 +51,9 @@ STATICS: use CLASS-DATA instead
|
|
|
51
51
|
|
|
52
52
|
DESCRIBE TABLE LINES: use lines() instead (quickfix exists)
|
|
53
53
|
|
|
54
|
-
TEST-SEAMS: https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md#use-test-seams-as-temporary-workaround
|
|
54
|
+
TEST-SEAMS: https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md#use-test-seams-as-temporary-workaround
|
|
55
|
+
|
|
56
|
+
BREAK points`,
|
|
55
57
|
tags: [_irule_1.RuleTag.Styleguide, _irule_1.RuleTag.SingleFile],
|
|
56
58
|
};
|
|
57
59
|
}
|
|
@@ -11,17 +11,17 @@ class NoPrefixesConf extends _basic_rule_config_1.BasicRuleConfig {
|
|
|
11
11
|
constructor() {
|
|
12
12
|
super(...arguments);
|
|
13
13
|
/** DATA, CLASS-DATA, DATA BEGIN OF, CLASS-DATA BEGIN OF, FINAL(), DATA(), case insensitive regex */
|
|
14
|
-
this.data = "^[lg]
|
|
14
|
+
this.data = "^[lg].?_";
|
|
15
15
|
/** STATICS, STATICS BEGIN OF, case insensitive regex */
|
|
16
16
|
this.statics = "";
|
|
17
17
|
/** FIELD-SYMBOLS and inline FIELD-SYMBOLS(), case insensitive regex */
|
|
18
|
-
this.fieldSymbols = "^<l
|
|
18
|
+
this.fieldSymbols = "^<l.?_";
|
|
19
19
|
/** CONSTANTS, CONSTANTS BEGIN OF, case insensitive regex */
|
|
20
20
|
this.constants = "^[lg]c_";
|
|
21
21
|
/** TYPES, ENUM, MESH, case insensitive regex */
|
|
22
22
|
this.types = "^ty_";
|
|
23
23
|
/** importing, exporting, returning and changing parameters, case insensitive regex */
|
|
24
|
-
this.methodParameters = "^[ierc]
|
|
24
|
+
this.methodParameters = "^[ierc].?_";
|
|
25
25
|
// todo, public localClass: string = "";
|
|
26
26
|
// todo, public localInterface: string = "";
|
|
27
27
|
// todo, public functionModuleParameters: string = "";
|
|
@@ -43,6 +43,9 @@ class NoPrefixes extends _abap_rule_1.ABAPRule {
|
|
|
43
43
|
title: "No Prefixes",
|
|
44
44
|
shortDescription: `Dont use hungarian notation`,
|
|
45
45
|
extendedInformation: `
|
|
46
|
+
Note: not prefixing TYPES will require changing the errorNamespace in the abaplint configuration,
|
|
47
|
+
allowing all types to become voided, abaplint will then provide less precise syntax errors.
|
|
48
|
+
|
|
46
49
|
https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md#avoid-encodings-esp-hungarian-notation-and-prefixes
|
|
47
50
|
|
|
48
51
|
https://github.com/SAP/styleguides/blob/main/clean-abap/sub-sections/AvoidEncodings.md`,
|
|
@@ -6,6 +6,7 @@ const _abap_rule_1 = require("./_abap_rule");
|
|
|
6
6
|
const _irule_1 = require("./_irule");
|
|
7
7
|
const Statements = require("../abap/2_statements/statements");
|
|
8
8
|
const issue_1 = require("../issue");
|
|
9
|
+
const _statement_1 = require("../abap/2_statements/statements/_statement");
|
|
9
10
|
class ReduceProceduralCodeConf extends _basic_rule_config_1.BasicRuleConfig {
|
|
10
11
|
constructor() {
|
|
11
12
|
super(...arguments);
|
|
@@ -25,7 +26,9 @@ class ReduceProceduralCode extends _abap_rule_1.ABAPRule {
|
|
|
25
26
|
shortDescription: `Checks FORM and FUNCTION-MODULE have few statements`,
|
|
26
27
|
extendedInformation: `Delegate logic to a class method instead of using FORM or FUNCTION-MODULE.
|
|
27
28
|
|
|
28
|
-
https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md#prefer-object-orientation-to-procedural-programming
|
|
29
|
+
https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md#prefer-object-orientation-to-procedural-programming
|
|
30
|
+
|
|
31
|
+
Comments are not counted as statements.`,
|
|
29
32
|
tags: [_irule_1.RuleTag.SingleFile, _irule_1.RuleTag.Styleguide],
|
|
30
33
|
badExample: `FORM foo.
|
|
31
34
|
DATA lv_bar TYPE i.
|
|
@@ -71,6 +74,9 @@ ENDFORM.`,
|
|
|
71
74
|
}
|
|
72
75
|
doCount = undefined;
|
|
73
76
|
}
|
|
77
|
+
else if (statement.get() instanceof _statement_1.Comment) {
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
74
80
|
else if (doCount !== undefined) {
|
|
75
81
|
count = count + 1;
|
|
76
82
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/core",
|
|
3
|
-
"version": "2.105.
|
|
3
|
+
"version": "2.105.4",
|
|
4
4
|
"description": "abaplint - Core API",
|
|
5
5
|
"main": "build/src/index.js",
|
|
6
6
|
"typings": "build/abaplint.d.ts",
|
|
@@ -53,9 +53,9 @@
|
|
|
53
53
|
"@microsoft/api-extractor": "^7.38.5",
|
|
54
54
|
"@types/chai": "^4.3.11",
|
|
55
55
|
"@types/mocha": "^10.0.6",
|
|
56
|
-
"@types/node": "^20.10.
|
|
56
|
+
"@types/node": "^20.10.5",
|
|
57
57
|
"chai": "^4.3.10",
|
|
58
|
-
"eslint": "^8.
|
|
58
|
+
"eslint": "^8.56.0",
|
|
59
59
|
"mocha": "^10.2.0",
|
|
60
60
|
"c8": "^8.0.1",
|
|
61
61
|
"source-map-support": "^0.5.21",
|