@abaplint/core 2.113.108 → 2.113.109

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.
@@ -67,7 +67,7 @@ class Registry {
67
67
  }
68
68
  static abaplintVersion() {
69
69
  // magic, see build script "version.sh"
70
- return "2.113.108";
70
+ return "2.113.109";
71
71
  }
72
72
  getDDICReferences() {
73
73
  return this.ddicReferences;
@@ -7,6 +7,7 @@ const issue_1 = require("../issue");
7
7
  const _abap_rule_1 = require("./_abap_rule");
8
8
  const _basic_rule_config_1 = require("./_basic_rule_config");
9
9
  const _irule_1 = require("./_irule");
10
+ const edit_helper_1 = require("../edit_helper");
10
11
  class NoChainedAssignmentConf extends _basic_rule_config_1.BasicRuleConfig {
11
12
  }
12
13
  exports.NoChainedAssignmentConf = NoChainedAssignmentConf;
@@ -21,7 +22,7 @@ class NoChainedAssignment extends _abap_rule_1.ABAPRule {
21
22
  title: "No chained assignment",
22
23
  shortDescription: `Find chained assingments and reports issues`,
23
24
  extendedInformation: `https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md#dont-chain-assignments`,
24
- tags: [_irule_1.RuleTag.SingleFile, _irule_1.RuleTag.Styleguide],
25
+ tags: [_irule_1.RuleTag.SingleFile, _irule_1.RuleTag.Styleguide, _irule_1.RuleTag.Quickfix],
25
26
  badExample: `var1 = var2 = var3.`,
26
27
  goodExample: `var2 = var3.
27
28
  var1 = var2.`,
@@ -41,12 +42,23 @@ var1 = var2.`,
41
42
  }
42
43
  if (s.findDirectExpressions(Expressions.Target).length >= 2) {
43
44
  const message = "No chained assignment";
44
- const issue = issue_1.Issue.atStatement(file, s, message, this.getMetadata().key);
45
+ const fix = this.buildFix(file, s);
46
+ const issue = issue_1.Issue.atStatement(file, s, message, this.getMetadata().key, this.getConfig().severity, fix);
45
47
  issues.push(issue);
46
48
  }
47
49
  }
48
50
  return issues;
49
51
  }
52
+ buildFix(file, node) {
53
+ // window of 3 expressions
54
+ const children = node.getChildren();
55
+ let res = "";
56
+ for (let i = children.length - 4; i >= 0; i = i - 2) {
57
+ const concat = children[i].concatTokens() + " " + children[i + 1].concatTokens() + " " + children[i + 2].concatTokens();
58
+ res += concat + ".\n";
59
+ }
60
+ return edit_helper_1.EditHelper.replaceRange(file, node.getStart(), node.getEnd(), res.trimEnd());
61
+ }
50
62
  }
51
63
  exports.NoChainedAssignment = NoChainedAssignment;
52
64
  //# sourceMappingURL=no_chained_assignment.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/core",
3
- "version": "2.113.108",
3
+ "version": "2.113.109",
4
4
  "description": "abaplint - Core API",
5
5
  "main": "build/src/index.js",
6
6
  "typings": "build/abaplint.d.ts",
@@ -50,20 +50,20 @@
50
50
  },
51
51
  "homepage": "https://abaplint.org",
52
52
  "devDependencies": {
53
- "@microsoft/api-extractor": "^7.52.1",
53
+ "@microsoft/api-extractor": "^7.52.3",
54
54
  "@types/chai": "^4.3.20",
55
55
  "@types/mocha": "^10.0.10",
56
- "@types/node": "^22.13.10",
56
+ "@types/node": "^22.14.1",
57
57
  "chai": "^4.5.0",
58
- "eslint": "^9.22.0",
58
+ "eslint": "^9.24.0",
59
59
  "mocha": "^11.1.0",
60
60
  "c8": "^10.1.3",
61
61
  "source-map-support": "^0.5.21",
62
- "ts-json-schema-generator": "^2.3.0",
63
- "typescript": "^5.8.2"
62
+ "ts-json-schema-generator": "^2.4.0",
63
+ "typescript": "^5.8.3"
64
64
  },
65
65
  "dependencies": {
66
- "fast-xml-parser": "^5.0.9",
66
+ "fast-xml-parser": "^5.2.0",
67
67
  "json5": "^2.2.3",
68
68
  "vscode-languageserver-types": "^3.17.5"
69
69
  }