@abaplint/core 2.93.32 → 2.93.34
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
CHANGED
|
@@ -6176,6 +6176,13 @@ declare class View extends AbstractObject {
|
|
|
6176
6176
|
maxLength: number;
|
|
6177
6177
|
allowNamespace: boolean;
|
|
6178
6178
|
};
|
|
6179
|
+
getJoin(): {
|
|
6180
|
+
LTAB: string;
|
|
6181
|
+
LFIELD: string;
|
|
6182
|
+
OPERATOR: string;
|
|
6183
|
+
RTAB: string;
|
|
6184
|
+
RFIELD: string;
|
|
6185
|
+
}[] | undefined;
|
|
6179
6186
|
setDirty(): void;
|
|
6180
6187
|
parseType(reg: IRegistry): AbstractType;
|
|
6181
6188
|
getDescription(): string | undefined;
|
|
@@ -15,6 +15,13 @@ class View extends _abstract_object_1.AbstractObject {
|
|
|
15
15
|
allowNamespace: true,
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
|
+
getJoin() {
|
|
19
|
+
var _a;
|
|
20
|
+
if (this.parsedData === undefined) {
|
|
21
|
+
this.parseXML();
|
|
22
|
+
}
|
|
23
|
+
return (_a = this.parsedData) === null || _a === void 0 ? void 0 : _a.join;
|
|
24
|
+
}
|
|
18
25
|
setDirty() {
|
|
19
26
|
this.parsedData = undefined;
|
|
20
27
|
super.setDirty();
|
|
@@ -69,8 +76,8 @@ class View extends _abstract_object_1.AbstractObject {
|
|
|
69
76
|
}
|
|
70
77
|
///////////////
|
|
71
78
|
parseXML() {
|
|
72
|
-
var _a;
|
|
73
|
-
this.parsedData = { fields: [] };
|
|
79
|
+
var _a, _b;
|
|
80
|
+
this.parsedData = { fields: [], join: [] };
|
|
74
81
|
const parsed = super.parseRaw2();
|
|
75
82
|
if (parsed === undefined || parsed.abapGit === undefined) {
|
|
76
83
|
return;
|
|
@@ -83,6 +90,16 @@ class View extends _abstract_object_1.AbstractObject {
|
|
|
83
90
|
FIELDNAME: field.FIELDNAME,
|
|
84
91
|
});
|
|
85
92
|
}
|
|
93
|
+
const join = (_b = parsed.abapGit["asx:abap"]["asx:values"]) === null || _b === void 0 ? void 0 : _b.DD28J_TABLE;
|
|
94
|
+
for (const j of (0, xml_utils_1.xmlToArray)(join === null || join === void 0 ? void 0 : join.DD28J)) {
|
|
95
|
+
this.parsedData.join.push({
|
|
96
|
+
LTAB: j.LTAB,
|
|
97
|
+
LFIELD: j.LFIELD,
|
|
98
|
+
OPERATOR: j.OPERATOR,
|
|
99
|
+
RTAB: j.RTAB,
|
|
100
|
+
RFIELD: j.RFIELD,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
86
103
|
}
|
|
87
104
|
}
|
|
88
105
|
exports.View = View;
|
|
@@ -60,7 +60,8 @@ class Indent {
|
|
|
60
60
|
|| type instanceof Statements.EndCatch
|
|
61
61
|
|| (this.options.selectionScreenBlockIndentation === true
|
|
62
62
|
&& type instanceof Statements.SelectionScreen
|
|
63
|
-
&& (statement.concatTokens().toUpperCase().includes("END OF
|
|
63
|
+
&& (statement.concatTokens().toUpperCase().includes("END OF SCREEN") ||
|
|
64
|
+
statement.concatTokens().toUpperCase().includes("END OF BLOCK") ||
|
|
64
65
|
statement.concatTokens().toUpperCase().includes("END OF LINE")))
|
|
65
66
|
|| type instanceof Statements.ElseIf
|
|
66
67
|
|| type instanceof Statements.EndFunction
|
|
@@ -150,7 +151,8 @@ class Indent {
|
|
|
150
151
|
|| type instanceof Statements.TestSeam
|
|
151
152
|
|| (this.options.selectionScreenBlockIndentation === true
|
|
152
153
|
&& type instanceof Statements.SelectionScreen
|
|
153
|
-
&& (statement.concatTokens().toUpperCase().includes("BEGIN OF
|
|
154
|
+
&& (statement.concatTokens().toUpperCase().includes("BEGIN OF SCREEN") ||
|
|
155
|
+
statement.concatTokens().toUpperCase().includes("BEGIN OF BLOCK") ||
|
|
154
156
|
statement.concatTokens().toUpperCase().includes("BEGIN OF LINE")))
|
|
155
157
|
|| type instanceof Statements.StartOfSelection
|
|
156
158
|
|| type instanceof Statements.AtSelectionScreen
|
package/build/src/registry.js
CHANGED
|
@@ -1106,11 +1106,9 @@ LOOP AT ${groupTargetName}tab ${groupTarget}.`;
|
|
|
1106
1106
|
return undefined;
|
|
1107
1107
|
}
|
|
1108
1108
|
const fieldChain = (_b = (_a = high.findDirectExpression(Expressions.AssignSource)) === null || _a === void 0 ? void 0 : _a.findDirectExpression(Expressions.Source)) === null || _b === void 0 ? void 0 : _b.findDirectExpression(Expressions.FieldChain);
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
const tableExpression = fieldChain === null || fieldChain === void 0 ? void 0 : fieldChain.getChildren()[1];
|
|
1113
|
-
if (!(tableExpression.get() instanceof Expressions.TableExpression)
|
|
1109
|
+
const tableExpression = fieldChain === null || fieldChain === void 0 ? void 0 : fieldChain.getLastChild();
|
|
1110
|
+
if (tableExpression === undefined
|
|
1111
|
+
|| !(tableExpression.get() instanceof Expressions.TableExpression)
|
|
1114
1112
|
|| !(tableExpression instanceof nodes_1.ExpressionNode)) {
|
|
1115
1113
|
return undefined;
|
|
1116
1114
|
}
|
|
@@ -1128,8 +1126,15 @@ LOOP AT ${groupTargetName}tab ${groupTarget}.`;
|
|
|
1128
1126
|
concat = concat.substring(0, concat.length - 2);
|
|
1129
1127
|
condition = `WITH KEY ${concat}`;
|
|
1130
1128
|
}
|
|
1129
|
+
let pre = "";
|
|
1130
|
+
for (const c of fieldChain.getChildren()) {
|
|
1131
|
+
if (c === tableExpression) {
|
|
1132
|
+
break;
|
|
1133
|
+
}
|
|
1134
|
+
pre += c.concatTokens();
|
|
1135
|
+
}
|
|
1131
1136
|
const fsTarget = high.findDirectExpression(Expressions.FSTarget);
|
|
1132
|
-
const code = `READ TABLE ${
|
|
1137
|
+
const code = `READ TABLE ${pre} ${condition} ASSIGNING ${fsTarget === null || fsTarget === void 0 ? void 0 : fsTarget.concatTokens()}.`;
|
|
1133
1138
|
const fix = edit_helper_1.EditHelper.replaceRange(lowFile, high.getFirstToken().getStart(), high.getLastToken().getEnd(), code);
|
|
1134
1139
|
return issue_1.Issue.atToken(lowFile, high.getFirstToken(), "Downport, ASSIGN table expr", this.getMetadata().key, this.conf.severity, fix);
|
|
1135
1140
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/core",
|
|
3
|
-
"version": "2.93.
|
|
3
|
+
"version": "2.93.34",
|
|
4
4
|
"description": "abaplint - Core API",
|
|
5
5
|
"main": "build/src/index.js",
|
|
6
6
|
"typings": "build/abaplint.d.ts",
|
|
@@ -46,16 +46,16 @@
|
|
|
46
46
|
},
|
|
47
47
|
"homepage": "https://abaplint.org",
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"@microsoft/api-extractor": "^7.
|
|
49
|
+
"@microsoft/api-extractor": "^7.32.0",
|
|
50
50
|
"@types/chai": "^4.3.3",
|
|
51
51
|
"@types/mocha": "^10.0.0",
|
|
52
|
-
"@types/node": "^18.
|
|
52
|
+
"@types/node": "^18.8.1",
|
|
53
53
|
"chai": "^4.3.6",
|
|
54
54
|
"eslint": "^8.24.0",
|
|
55
55
|
"mocha": "^10.0.0",
|
|
56
56
|
"c8": "^7.12.0",
|
|
57
57
|
"source-map-support": "^0.5.21",
|
|
58
|
-
"ts-json-schema-generator": "^1.1.
|
|
58
|
+
"ts-json-schema-generator": "^1.1.2",
|
|
59
59
|
"typescript": "^4.8.4"
|
|
60
60
|
},
|
|
61
61
|
"dependencies": {
|