@abaplint/core 2.99.5 → 2.99.6

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.
@@ -2811,6 +2811,8 @@ export declare interface IConfig {
2811
2811
  app?: IAbaplintAppSettings;
2812
2812
  /** Settings for each rule, see https://rules.abaplint.org */
2813
2813
  rules: any;
2814
+ /** see https://abaplint.app */
2815
+ targetRules?: any;
2814
2816
  }
2815
2817
 
2816
2818
  export declare interface IConfiguration {
@@ -50,9 +50,10 @@ class Config {
50
50
  return new Config(JSON.stringify(config));
51
51
  }
52
52
  getEnabledRules() {
53
+ var _a;
53
54
  const rules = [];
54
55
  for (const rule of artifacts_rules_1.ArtifactsRules.getRules()) {
55
- const ruleConfig = this.config["rules"][rule.getMetadata().key];
56
+ const ruleConfig = (_a = this.config["rules"]) === null || _a === void 0 ? void 0 : _a[rule.getMetadata().key];
56
57
  const ruleExists = ruleConfig !== undefined;
57
58
  if (ruleExists) {
58
59
  if (ruleConfig === false) { // "rule": false
@@ -18,6 +18,7 @@ class RenameDataElement {
18
18
  changes = changes.concat(helper.renameDDICCodeReferences(obj, oldName, newName));
19
19
  changes = changes.concat(helper.renameDDICTABLReferences(obj, oldName, newName));
20
20
  changes = changes.concat(helper.renameDDICTTYPReferences(obj, oldName, newName));
21
+ changes = changes.concat(helper.renameDDICAUTHReferences(obj, oldName, newName));
21
22
  return {
22
23
  documentChanges: changes,
23
24
  };
@@ -87,6 +87,21 @@ class RenamerHelper {
87
87
  }
88
88
  return changes;
89
89
  }
90
+ renameDDICAUTHReferences(obj, oldName, newName) {
91
+ const changes = [];
92
+ const used = this.reg.getDDICReferences().listWhereUsed(obj);
93
+ for (const u of used) {
94
+ if (u.type !== "AUTH") {
95
+ continue;
96
+ }
97
+ const tabl = this.reg.getObject(u.type, u.name);
98
+ if (tabl === undefined) {
99
+ continue;
100
+ }
101
+ changes.push(...this.buildXMLFileEdits(tabl, "ROLLNAME", oldName, newName));
102
+ }
103
+ return changes;
104
+ }
90
105
  buildXMLFileEdits(object, xmlTag, oldName, newName) {
91
106
  const changes = [];
92
107
  const xml = object.getXMLFile();
@@ -63,7 +63,7 @@ class Registry {
63
63
  }
64
64
  static abaplintVersion() {
65
65
  // magic, see build script "version.sh"
66
- return "2.99.5";
66
+ return "2.99.6";
67
67
  }
68
68
  getDDICReferences() {
69
69
  return this.references;
@@ -30,10 +30,12 @@ class CheckComments extends _abap_rule_1.ABAPRule {
30
30
  shortDescription: `
31
31
  Various checks for comment usage.`,
32
32
  extendedInformation: `
33
- * End of line comments. Comments starting with "#EC" or "##" are ignored
33
+ Detects end of line comments. Comments starting with "#EC" or "##" are ignored
34
34
 
35
35
  https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md#put-comments-before-the-statement-they-relate-to`,
36
36
  tags: [_irule_1.RuleTag.Styleguide, _irule_1.RuleTag.SingleFile],
37
+ badExample: `WRITE 2. " descriptive comment`,
38
+ goodExample: `" descriptive comment\nWRITE 2.`,
37
39
  };
38
40
  }
39
41
  getDescription(issueType) {
@@ -118,6 +118,7 @@ ENDIF.`,
118
118
  && !(statement.get() instanceof Statements.DataEnd)
119
119
  && !(statement.get() instanceof Statements.Type)
120
120
  && !(statement.get() instanceof Statements.Form)
121
+ && !(statement.get() instanceof Statements.Tables)
121
122
  && !(statement.get() instanceof Statements.TypeEnd)
122
123
  && !(statement.get() instanceof Statements.Constant)
123
124
  && !(statement.get() instanceof Statements.ConstantEnd)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/core",
3
- "version": "2.99.5",
3
+ "version": "2.99.6",
4
4
  "description": "abaplint - Core API",
5
5
  "main": "build/src/index.js",
6
6
  "typings": "build/abaplint.d.ts",
@@ -50,7 +50,7 @@
50
50
  "@microsoft/api-extractor": "^7.34.8",
51
51
  "@types/chai": "^4.3.5",
52
52
  "@types/mocha": "^10.0.1",
53
- "@types/node": "^18.16.3",
53
+ "@types/node": "^20.0.0",
54
54
  "chai": "^4.3.7",
55
55
  "eslint": "^8.39.0",
56
56
  "mocha": "^10.2.0",
@@ -1,16 +0,0 @@
1
- import {MemoryFile} from "../src";
2
- import {Lexer} from "../src/abap/1_lexer/lexer";
3
- import * as fs from "fs";
4
-
5
- console.log("========================");
6
- const file = new MemoryFile("abapgit.abap", fs.readFileSync("./lexer_performance.abap", "utf-8"));
7
-
8
- let total = 0;
9
- for (let i = 0; i < 10; i++) {
10
- const before = Date.now();
11
- const result = new Lexer().run(file);
12
- const runtime = Date.now() - before;
13
- console.log("Runtime: " + runtime + "ms, Tokens: " + result.tokens.length);
14
- total += runtime;
15
- }
16
- console.log("Total: " + total + "ms");
@@ -1,18 +0,0 @@
1
- import {MemoryFile, Version} from "../src";
2
- import {Lexer} from "../src/abap/1_lexer/lexer";
3
- import * as fs from "fs";
4
- import {StatementParser} from "../src/abap/2_statements/statement_parser";
5
-
6
- console.log("========================");
7
- const file = new MemoryFile("abapgit.abap", fs.readFileSync("./lexer_performance.abap", "utf-8"));
8
-
9
- const lexerResult = new Lexer().run(file);
10
-
11
- let total = 0;
12
- for (let i = 0; i < 4; i++) {
13
- const before = Date.now();
14
- new StatementParser(Version.v702).run([lexerResult], []);
15
- const runtime = Date.now() - before;
16
- total += runtime;
17
- }
18
- console.log("Total: " + total + "ms");