@abaplint/core 2.93.92 → 2.93.94
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 +5 -3
- package/build/src/abap/5_syntax/_builtin.js +1 -1
- package/build/src/abap/types/basic/_abstract_type.js +5 -1
- package/build/src/abap/types/basic/character_type.js +3 -3
- package/build/src/ddic.js +8 -8
- package/build/src/lsp/_lookup.js +8 -5
- package/build/src/objects/domain.js +1 -1
- package/build/src/registry.js +1 -1
- package/package.json +1 -1
package/build/abaplint.d.ts
CHANGED
|
@@ -95,9 +95,11 @@ declare abstract class AbstractObject implements IObject {
|
|
|
95
95
|
|
|
96
96
|
export declare abstract class AbstractType {
|
|
97
97
|
private readonly qualifiedName;
|
|
98
|
-
|
|
98
|
+
private readonly conversionExit;
|
|
99
|
+
constructor(qualifiedName?: string, conversionExit?: string);
|
|
99
100
|
/** fully qualified symbolic name of the type */
|
|
100
101
|
getQualifiedName(): string | undefined;
|
|
102
|
+
getConversionExit(): string | undefined;
|
|
101
103
|
abstract toText(level: number): string;
|
|
102
104
|
abstract toABAP(): string;
|
|
103
105
|
abstract toCDS(): string;
|
|
@@ -757,7 +759,7 @@ declare class ChapterOfBookStructure extends AbstractObject {
|
|
|
757
759
|
|
|
758
760
|
declare class CharacterType extends AbstractType {
|
|
759
761
|
private readonly length;
|
|
760
|
-
constructor(length: number, qualifiedName?: string);
|
|
762
|
+
constructor(length: number, qualifiedName?: string, conversionExit?: string);
|
|
761
763
|
cloneType(qualifiedName?: string): CharacterType;
|
|
762
764
|
getLength(): number;
|
|
763
765
|
toText(): string;
|
|
@@ -1412,7 +1414,7 @@ declare class DDIC {
|
|
|
1412
1414
|
lookupTable(name: string | undefined): AbstractType;
|
|
1413
1415
|
private lookupView;
|
|
1414
1416
|
lookupTableType(name: string | undefined): ILookupResult;
|
|
1415
|
-
textToType(text: string | undefined, length: string | undefined, decimals: string | undefined, parent: string, qualify?: boolean): AbstractType;
|
|
1417
|
+
textToType(text: string | undefined, length: string | undefined, decimals: string | undefined, parent: string, qualify?: boolean, conversionExit?: string | undefined): AbstractType;
|
|
1416
1418
|
}
|
|
1417
1419
|
|
|
1418
1420
|
declare enum DDLKind {
|
|
@@ -182,7 +182,7 @@ class BuiltIn {
|
|
|
182
182
|
components.push({ name: "host", type: new basic_1.CharacterType(32, "sy-host") });
|
|
183
183
|
components.push({ name: "index", type: new basic_1.IntegerType() });
|
|
184
184
|
components.push({ name: "input", type: new basic_1.CharacterType(1, "sy-input") });
|
|
185
|
-
components.push({ name: "langu", type: new basic_1.CharacterType(1, "sy-langu") });
|
|
185
|
+
components.push({ name: "langu", type: new basic_1.CharacterType(1, "sy-langu", "ISOLA") });
|
|
186
186
|
components.push({ name: "ldbpg", type: new basic_1.CharacterType(40, "sy-ldbpg") });
|
|
187
187
|
components.push({ name: "lilli", type: new basic_1.IntegerType() });
|
|
188
188
|
components.push({ name: "linct", type: new basic_1.IntegerType() });
|
|
@@ -2,13 +2,17 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AbstractType = void 0;
|
|
4
4
|
class AbstractType {
|
|
5
|
-
constructor(qualifiedName) {
|
|
5
|
+
constructor(qualifiedName, conversionExit) {
|
|
6
6
|
this.qualifiedName = qualifiedName;
|
|
7
|
+
this.conversionExit = conversionExit;
|
|
7
8
|
}
|
|
8
9
|
/** fully qualified symbolic name of the type */
|
|
9
10
|
getQualifiedName() {
|
|
10
11
|
return this.qualifiedName;
|
|
11
12
|
}
|
|
13
|
+
getConversionExit() {
|
|
14
|
+
return this.conversionExit;
|
|
15
|
+
}
|
|
12
16
|
}
|
|
13
17
|
exports.AbstractType = AbstractType;
|
|
14
18
|
//# sourceMappingURL=_abstract_type.js.map
|
|
@@ -3,15 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.CharacterType = void 0;
|
|
4
4
|
const _abstract_type_1 = require("./_abstract_type");
|
|
5
5
|
class CharacterType extends _abstract_type_1.AbstractType {
|
|
6
|
-
constructor(length, qualifiedName) {
|
|
7
|
-
super(qualifiedName);
|
|
6
|
+
constructor(length, qualifiedName, conversionExit) {
|
|
7
|
+
super(qualifiedName, conversionExit);
|
|
8
8
|
if (length <= 0) {
|
|
9
9
|
throw new Error("Bad LENGTH");
|
|
10
10
|
}
|
|
11
11
|
this.length = length;
|
|
12
12
|
}
|
|
13
13
|
cloneType(qualifiedName) {
|
|
14
|
-
return new CharacterType(this.length, qualifiedName);
|
|
14
|
+
return new CharacterType(this.length, qualifiedName, this.getConversionExit());
|
|
15
15
|
}
|
|
16
16
|
getLength() {
|
|
17
17
|
return this.length;
|
package/build/src/ddic.js
CHANGED
|
@@ -297,7 +297,7 @@ class DDIC {
|
|
|
297
297
|
return { type: new Types.VoidType(name) };
|
|
298
298
|
}
|
|
299
299
|
}
|
|
300
|
-
textToType(text, length, decimals, parent, qualify = true) {
|
|
300
|
+
textToType(text, length, decimals, parent, qualify = true, conversionExit) {
|
|
301
301
|
// todo, support short strings, and length of different integers, NUMC vs CHAR, min/max length
|
|
302
302
|
const qualified = qualify ? parent : undefined;
|
|
303
303
|
switch (text) {
|
|
@@ -316,17 +316,17 @@ class DDIC {
|
|
|
316
316
|
}
|
|
317
317
|
return new Types.PackedType(parseInt(length, 10), parseInt(decimals, 10), qualified);
|
|
318
318
|
case "ACCP":
|
|
319
|
-
return new Types.CharacterType(6, qualified); // YYYYMM
|
|
319
|
+
return new Types.CharacterType(6, qualified, conversionExit); // YYYYMM
|
|
320
320
|
case "LANG":
|
|
321
|
-
return new Types.CharacterType(1, qualified);
|
|
321
|
+
return new Types.CharacterType(1, qualified, conversionExit);
|
|
322
322
|
case "CLNT":
|
|
323
|
-
return new Types.CharacterType(3, qualified);
|
|
323
|
+
return new Types.CharacterType(3, qualified, conversionExit);
|
|
324
324
|
case "CUKY":
|
|
325
|
-
return new Types.CharacterType(5, qualified);
|
|
325
|
+
return new Types.CharacterType(5, qualified, conversionExit);
|
|
326
326
|
case "UNIT": // 2 <= len <= 3
|
|
327
|
-
return new Types.CharacterType(3, qualified);
|
|
327
|
+
return new Types.CharacterType(3, qualified, conversionExit);
|
|
328
328
|
case "UTCLONG":
|
|
329
|
-
return new Types.CharacterType(27, qualified);
|
|
329
|
+
return new Types.CharacterType(27, qualified, conversionExit);
|
|
330
330
|
case "NUMC": // 1 <= len <= 255
|
|
331
331
|
if (length === undefined) {
|
|
332
332
|
return new Types.UnknownType(text + " unknown length", parent);
|
|
@@ -337,7 +337,7 @@ class DDIC {
|
|
|
337
337
|
if (length === undefined) {
|
|
338
338
|
return new Types.UnknownType(text + " unknown length", parent);
|
|
339
339
|
}
|
|
340
|
-
return new Types.CharacterType(parseInt(length, 10), qualified);
|
|
340
|
+
return new Types.CharacterType(parseInt(length, 10), qualified, conversionExit);
|
|
341
341
|
case "RAW": // 1 <= len <= 32000
|
|
342
342
|
case "LRAW": // 256 <= len <= 32000
|
|
343
343
|
if (length === undefined) {
|
package/build/src/lsp/_lookup.js
CHANGED
|
@@ -101,19 +101,22 @@ class LSPLookup {
|
|
|
101
101
|
static dumpType(variable) {
|
|
102
102
|
let value = variable.toText() + "\n\nType: " + variable.getType().toText(0);
|
|
103
103
|
if (variable.getValue()) {
|
|
104
|
-
value
|
|
104
|
+
value += "\n\nValue: ```" + variable.getValue() + "```";
|
|
105
105
|
}
|
|
106
106
|
if (variable.getMeta().length > 0) {
|
|
107
|
-
value
|
|
107
|
+
value += "\n\nMeta: " + variable.getMeta().join(", ");
|
|
108
108
|
}
|
|
109
109
|
if (variable.getType().containsVoid() === true) {
|
|
110
|
-
value
|
|
110
|
+
value += "\n\nContains Void types";
|
|
111
111
|
}
|
|
112
112
|
if (variable.getType().getQualifiedName()) {
|
|
113
|
-
value
|
|
113
|
+
value += "\n\nQualified Type Name: ```" + variable.getType().getQualifiedName() + "```";
|
|
114
114
|
}
|
|
115
115
|
if (variable.getType().isGeneric() === true) {
|
|
116
|
-
value
|
|
116
|
+
value += "\n\nIs Generic Type";
|
|
117
|
+
}
|
|
118
|
+
if (variable.getType().getConversionExit() !== undefined) {
|
|
119
|
+
value += "\n\nConversion Exit: ```" + variable.getType().getConversionExit() + "```";
|
|
117
120
|
}
|
|
118
121
|
return value;
|
|
119
122
|
}
|
|
@@ -36,7 +36,7 @@ class Domain extends _abstract_object_1.AbstractObject {
|
|
|
36
36
|
return new Types.UnknownType("Domain " + this.getName() + " parser error", this.getName());
|
|
37
37
|
}
|
|
38
38
|
const ddic = new ddic_1.DDIC(reg);
|
|
39
|
-
this.parsedType = ddic.textToType(this.parsedXML.datatype, this.parsedXML.length, this.parsedXML.decimals, parent || this.getName(), parent !== undefined);
|
|
39
|
+
this.parsedType = ddic.textToType(this.parsedXML.datatype, this.parsedXML.length, this.parsedXML.decimals, parent || this.getName(), parent !== undefined, this.parsedXML.conversionExit);
|
|
40
40
|
return this.parsedType;
|
|
41
41
|
}
|
|
42
42
|
parse() {
|
package/build/src/registry.js
CHANGED