@abaplint/core 2.117.1 → 2.117.3
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
package/build/src/registry.js
CHANGED
|
@@ -55,15 +55,15 @@ class DynproChecks {
|
|
|
55
55
|
const ret = [];
|
|
56
56
|
for (let index = 0; index < dynpro.fields.length; index++) {
|
|
57
57
|
const current = dynpro.fields[index];
|
|
58
|
-
if (current.name === undefined) {
|
|
58
|
+
if (current.name === undefined || current.type === "FRAME") {
|
|
59
59
|
continue;
|
|
60
60
|
}
|
|
61
61
|
for (let compare = index + 1; compare < dynpro.fields.length; compare++) {
|
|
62
62
|
const other = dynpro.fields[compare];
|
|
63
|
-
if (other.name === undefined || this.overlaps(current, other) === false) {
|
|
63
|
+
if (other.name === undefined || other.type === "FRAME" || this.overlaps(current, other) === false) {
|
|
64
64
|
continue;
|
|
65
65
|
}
|
|
66
|
-
const message = `Screen ${dynpro.number},
|
|
66
|
+
const message = `Screen ${dynpro.number}, ${current.type} ${current.name} and ${other.type} ${other.name} are overlapping`;
|
|
67
67
|
ret.push(issue_1.Issue.atPosition(file, new position_1.Position(1, 1), message, this.getMetadata().key, this.getConfig().severity));
|
|
68
68
|
}
|
|
69
69
|
}
|
|
@@ -80,8 +80,8 @@ class DynproChecks {
|
|
|
80
80
|
if (firstLastLine < second.line || secondLastLine < first.line) {
|
|
81
81
|
return false;
|
|
82
82
|
}
|
|
83
|
-
const firstLastColumn = first.column + Math.max(first.length, 1) - 1;
|
|
84
|
-
const secondLastColumn = second.column + Math.max(second.length, 1) - 1;
|
|
83
|
+
const firstLastColumn = first.column + Math.max(first.vislength || first.length, 1) - 1;
|
|
84
|
+
const secondLastColumn = second.column + Math.max(second.vislength || second.length, 1) - 1;
|
|
85
85
|
return first.column <= secondLastColumn && second.column <= firstLastColumn;
|
|
86
86
|
}
|
|
87
87
|
}
|
|
@@ -22,7 +22,8 @@ class MSAGConsistency {
|
|
|
22
22
|
key: "msag_consistency",
|
|
23
23
|
title: "MSAG consistency check",
|
|
24
24
|
shortDescription: `Checks the validity of messages in message classes`,
|
|
25
|
-
extendedInformation: `Message numbers must be 3 digits, message text must not be empty
|
|
25
|
+
extendedInformation: `Message numbers must be 3 digits, message text must not be empty,\n` +
|
|
26
|
+
`message text must not exceed 73 characters, no message number duplicates`,
|
|
26
27
|
};
|
|
27
28
|
}
|
|
28
29
|
getDescription(reason) {
|
|
@@ -58,6 +59,12 @@ class MSAGConsistency {
|
|
|
58
59
|
const issue = issue_1.Issue.atPosition(obj.getFiles()[0], position, text, this.getMetadata().key, this.conf.severity);
|
|
59
60
|
issues.push(issue);
|
|
60
61
|
}
|
|
62
|
+
if (message.getMessage().length > 73) {
|
|
63
|
+
const text = `Message text too long (max 73 characters): message ${message.getNumber()}`;
|
|
64
|
+
const position = new position_1.Position(1, 1);
|
|
65
|
+
const issue = issue_1.Issue.atPosition(obj.getFiles()[0], position, text, this.getMetadata().key, this.conf.severity);
|
|
66
|
+
issues.push(issue);
|
|
67
|
+
}
|
|
61
68
|
const num = message.getNumber();
|
|
62
69
|
if (numbers.has(num)) {
|
|
63
70
|
const text = "Duplicate message number " + num;
|
|
@@ -71,7 +78,7 @@ class MSAGConsistency {
|
|
|
71
78
|
if (this.getConfig().numericParameters === true) {
|
|
72
79
|
const placeholderCount = message.getPlaceholderCount();
|
|
73
80
|
if (placeholderCount > 4) {
|
|
74
|
-
const text = `More than 4 placeholders in
|
|
81
|
+
const text = `More than 4 placeholders in message ${message.getNumber()}`;
|
|
75
82
|
const position = new position_1.Position(1, 1);
|
|
76
83
|
const issue = issue_1.Issue.atPosition(obj.getFiles()[0], position, text, this.getMetadata().key, this.conf.severity);
|
|
77
84
|
issues.push(issue);
|
|
@@ -17,7 +17,7 @@ class SMIMConsistency {
|
|
|
17
17
|
key: "smim_consistency",
|
|
18
18
|
title: "SMIM consistency check",
|
|
19
19
|
shortDescription: `SMIM consistency check`,
|
|
20
|
-
extendedInformation: "
|
|
20
|
+
extendedInformation: "Checks that the parent folder of each MIME object exists in the registry. The SAP system folder /SAP/PUBLIC is always allowed as a parent even if not present in the repository.",
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
23
|
getConfig() {
|
|
@@ -36,7 +36,7 @@ class SMIMConsistency {
|
|
|
36
36
|
return [];
|
|
37
37
|
}
|
|
38
38
|
const base = this.base(obj.getURL() || "");
|
|
39
|
-
if (base !== "" && this.findFolder(base) === false) {
|
|
39
|
+
if (base !== "" && base !== "/SAP/PUBLIC" && this.findFolder(base) === false) {
|
|
40
40
|
const message = `Parent folder "${base}" not found`;
|
|
41
41
|
const position = new position_1.Position(1, 1);
|
|
42
42
|
const issue = issue_1.Issue.atPosition(obj.getFiles()[0], position, message, this.getMetadata().key, this.conf.severity);
|