@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.
@@ -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 BLOCK") ||
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 BLOCK") ||
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
@@ -63,7 +63,7 @@ class Registry {
63
63
  }
64
64
  static abaplintVersion() {
65
65
  // magic, see build script "version.sh"
66
- return "2.93.32";
66
+ return "2.93.34";
67
67
  }
68
68
  getDDICReferences() {
69
69
  return this.references;
@@ -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
- if ((fieldChain === null || fieldChain === void 0 ? void 0 : fieldChain.getChildren().length) !== 2) {
1110
- return undefined;
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 ${fieldChain === null || fieldChain === void 0 ? void 0 : fieldChain.getChildren()[0].concatTokens()} ${condition} ASSIGNING ${fsTarget === null || fsTarget === void 0 ? void 0 : fsTarget.concatTokens()}.`;
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.32",
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.31.2",
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.7.23",
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.1",
58
+ "ts-json-schema-generator": "^1.1.2",
59
59
  "typescript": "^4.8.4"
60
60
  },
61
61
  "dependencies": {