@abaplint/cli 2.119.40 → 2.119.41
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/cli.js +119 -8
- package/package.json +3 -3
package/build/cli.js
CHANGED
|
@@ -54066,8 +54066,8 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
54066
54066
|
};
|
|
54067
54067
|
})();
|
|
54068
54068
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
54069
|
-
exports.
|
|
54070
|
-
exports.LSPEdit = exports.RuleTag = exports.Severity = exports.Visibility = exports.Info = exports.Diagnostics = void 0;
|
|
54069
|
+
exports.Position = exports.CurrentScope = exports.RulesRunner = exports.SpaghettiScope = exports.SyntaxLogic = exports.ABAPObject = exports.Tokens = exports.ExpressionsCDS = exports.CDSParser = exports.LanguageServerTypes = exports.DDLParser = exports.AbstractFile = exports.ABAPFile = exports.MemoryFile = exports.Edits = exports.ReferenceType = exports.NativeSQL = exports.MacroContent = exports.MacroCall = exports.SpaghettiScopeNode = exports.Token = exports.ScopeType = exports.BasicTypes = exports.TypedIdentifier = exports.AbstractType = exports.VirtualPosition = exports.Comment = exports.Unknown = exports.Empty = exports.Identifier = exports.Nodes = exports.Types = exports.Expressions = exports.Statements = exports.Structures = exports.SkipLogic = exports.Objects = exports.ArtifactsRules = exports.ArtifactsObjects = exports.ArtifactsABAP = exports.BuiltIn = exports.FormLengthStats = exports.FunctionLengthStats = exports.MethodLengthStats = exports.LanguageServer = exports.Registry = exports.CyclomaticComplexityStats = exports.Version = exports.Config = exports.Issue = void 0;
|
|
54070
|
+
exports.LSPEdit = exports.RuleTag = exports.Severity = exports.Visibility = exports.Info = exports.Diagnostics = exports.Rename = exports.PrettyPrinter = void 0;
|
|
54071
54071
|
const issue_1 = __webpack_require__(/*! ./issue */ "../core/build/src/issue.js");
|
|
54072
54072
|
Object.defineProperty(exports, "Issue", ({ enumerable: true, get: function () { return issue_1.Issue; } }));
|
|
54073
54073
|
const config_1 = __webpack_require__(/*! ./config */ "../core/build/src/config.js");
|
|
@@ -54173,6 +54173,10 @@ const _edit_1 = __webpack_require__(/*! ./lsp/_edit */ "../core/build/src/lsp/_e
|
|
|
54173
54173
|
Object.defineProperty(exports, "LSPEdit", ({ enumerable: true, get: function () { return _edit_1.LSPEdit; } }));
|
|
54174
54174
|
const _reference_1 = __webpack_require__(/*! ./abap/5_syntax/_reference */ "../core/build/src/abap/5_syntax/_reference.js");
|
|
54175
54175
|
Object.defineProperty(exports, "ReferenceType", ({ enumerable: true, get: function () { return _reference_1.ReferenceType; } }));
|
|
54176
|
+
const function_length_stats_1 = __webpack_require__(/*! ./utils/function_length_stats */ "../core/build/src/utils/function_length_stats.js");
|
|
54177
|
+
Object.defineProperty(exports, "FunctionLengthStats", ({ enumerable: true, get: function () { return function_length_stats_1.FunctionLengthStats; } }));
|
|
54178
|
+
const form_length_stats_1 = __webpack_require__(/*! ./utils/form_length_stats */ "../core/build/src/utils/form_length_stats.js");
|
|
54179
|
+
Object.defineProperty(exports, "FormLengthStats", ({ enumerable: true, get: function () { return form_length_stats_1.FormLengthStats; } }));
|
|
54176
54180
|
// do not include this file from anywhere within abaplint
|
|
54177
54181
|
// https://github.com/abaplint/abaplint/issues/873
|
|
54178
54182
|
const Edits = {
|
|
@@ -66578,7 +66582,7 @@ class Registry {
|
|
|
66578
66582
|
}
|
|
66579
66583
|
static abaplintVersion() {
|
|
66580
66584
|
// magic, see build script "version.js"
|
|
66581
|
-
return "2.119.
|
|
66585
|
+
return "2.119.41";
|
|
66582
66586
|
}
|
|
66583
66587
|
getDDICReferences() {
|
|
66584
66588
|
return this.ddicReferences;
|
|
@@ -82782,17 +82786,20 @@ const method_length_stats_1 = __webpack_require__(/*! ../utils/method_length_sta
|
|
|
82782
82786
|
const _irule_1 = __webpack_require__(/*! ./_irule */ "../core/build/src/rules/_irule.js");
|
|
82783
82787
|
const _basic_rule_config_1 = __webpack_require__(/*! ./_basic_rule_config */ "../core/build/src/rules/_basic_rule_config.js");
|
|
82784
82788
|
const form_length_stats_1 = __webpack_require__(/*! ../utils/form_length_stats */ "../core/build/src/utils/form_length_stats.js");
|
|
82789
|
+
const function_length_stats_1 = __webpack_require__(/*! ../utils/function_length_stats */ "../core/build/src/utils/function_length_stats.js");
|
|
82785
82790
|
class MethodLengthConf extends _basic_rule_config_1.BasicRuleConfig {
|
|
82786
82791
|
constructor() {
|
|
82787
82792
|
super(...arguments);
|
|
82788
|
-
/** Maximum method/form length in statements. */
|
|
82793
|
+
/** Maximum method/form/function module length in statements. */
|
|
82789
82794
|
this.statements = 100;
|
|
82790
|
-
/** Checks for empty methods/forms. */
|
|
82795
|
+
/** Checks for empty methods/forms/function modules. */
|
|
82791
82796
|
this.errorWhenEmpty = true;
|
|
82792
82797
|
/** Option to ignore test classes for this check. */
|
|
82793
82798
|
this.ignoreTestClasses = false;
|
|
82794
82799
|
/** Option to check forms. */
|
|
82795
82800
|
this.checkForms = true;
|
|
82801
|
+
/** Option to check function modules. */
|
|
82802
|
+
this.checkFunctionModules = true;
|
|
82796
82803
|
}
|
|
82797
82804
|
}
|
|
82798
82805
|
exports.MethodLengthConf = MethodLengthConf;
|
|
@@ -82808,8 +82815,8 @@ class MethodLength {
|
|
|
82808
82815
|
getMetadata() {
|
|
82809
82816
|
return {
|
|
82810
82817
|
key: "method_length",
|
|
82811
|
-
title: "Method/Form Length",
|
|
82812
|
-
shortDescription: `Checks relating to method/form length.`,
|
|
82818
|
+
title: "Method/Form/Function Module Length",
|
|
82819
|
+
shortDescription: `Checks relating to method/form/function module length.`,
|
|
82813
82820
|
extendedInformation: `https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md#keep-methods-small
|
|
82814
82821
|
|
|
82815
82822
|
Abstract methods without statements are considered okay.`,
|
|
@@ -82852,7 +82859,12 @@ Abstract methods without statements are considered okay.`,
|
|
|
82852
82859
|
const formStats = form_length_stats_1.FormLengthStats.run(obj);
|
|
82853
82860
|
formIssues = this.check(formStats, "FORM");
|
|
82854
82861
|
}
|
|
82855
|
-
|
|
82862
|
+
let functionIssues = [];
|
|
82863
|
+
if (this.conf.checkFunctionModules) {
|
|
82864
|
+
const functionStats = function_length_stats_1.FunctionLengthStats.run(obj);
|
|
82865
|
+
functionIssues = this.check(functionStats, "FUNCTION MODULE");
|
|
82866
|
+
}
|
|
82867
|
+
return methodIssues.concat(formIssues).concat(functionIssues);
|
|
82856
82868
|
}
|
|
82857
82869
|
// ***********************
|
|
82858
82870
|
check(stats, type) {
|
|
@@ -95490,6 +95502,105 @@ exports.FormLengthStats = FormLengthStats;
|
|
|
95490
95502
|
|
|
95491
95503
|
/***/ },
|
|
95492
95504
|
|
|
95505
|
+
/***/ "../core/build/src/utils/function_length_stats.js"
|
|
95506
|
+
/*!********************************************************!*\
|
|
95507
|
+
!*** ../core/build/src/utils/function_length_stats.js ***!
|
|
95508
|
+
\********************************************************/
|
|
95509
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
95510
|
+
|
|
95511
|
+
"use strict";
|
|
95512
|
+
|
|
95513
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
95514
|
+
if (k2 === undefined) k2 = k;
|
|
95515
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
95516
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
95517
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
95518
|
+
}
|
|
95519
|
+
Object.defineProperty(o, k2, desc);
|
|
95520
|
+
}) : (function(o, m, k, k2) {
|
|
95521
|
+
if (k2 === undefined) k2 = k;
|
|
95522
|
+
o[k2] = m[k];
|
|
95523
|
+
}));
|
|
95524
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
95525
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
95526
|
+
}) : function(o, v) {
|
|
95527
|
+
o["default"] = v;
|
|
95528
|
+
});
|
|
95529
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
95530
|
+
var ownKeys = function(o) {
|
|
95531
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
95532
|
+
var ar = [];
|
|
95533
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
95534
|
+
return ar;
|
|
95535
|
+
};
|
|
95536
|
+
return ownKeys(o);
|
|
95537
|
+
};
|
|
95538
|
+
return function (mod) {
|
|
95539
|
+
if (mod && mod.__esModule) return mod;
|
|
95540
|
+
var result = {};
|
|
95541
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
95542
|
+
__setModuleDefault(result, mod);
|
|
95543
|
+
return result;
|
|
95544
|
+
};
|
|
95545
|
+
})();
|
|
95546
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
95547
|
+
exports.FunctionLengthStats = void 0;
|
|
95548
|
+
const Statements = __importStar(__webpack_require__(/*! ../abap/2_statements/statements */ "../core/build/src/abap/2_statements/statements/index.js"));
|
|
95549
|
+
const Expressions = __importStar(__webpack_require__(/*! ../abap/2_statements/expressions */ "../core/build/src/abap/2_statements/expressions/index.js"));
|
|
95550
|
+
const _abap_object_1 = __webpack_require__(/*! ../objects/_abap_object */ "../core/build/src/objects/_abap_object.js");
|
|
95551
|
+
const _statement_1 = __webpack_require__(/*! ../abap/2_statements/statements/_statement */ "../core/build/src/abap/2_statements/statements/_statement.js");
|
|
95552
|
+
class FunctionLengthStats {
|
|
95553
|
+
static run(obj) {
|
|
95554
|
+
const res = [];
|
|
95555
|
+
let pos = undefined;
|
|
95556
|
+
let name = "";
|
|
95557
|
+
let count = 0;
|
|
95558
|
+
let func = false;
|
|
95559
|
+
if (!(obj instanceof _abap_object_1.ABAPObject)) {
|
|
95560
|
+
return [];
|
|
95561
|
+
}
|
|
95562
|
+
for (const file of obj.getABAPFiles()) {
|
|
95563
|
+
for (const stat of file.getStatements()) {
|
|
95564
|
+
const type = stat.get();
|
|
95565
|
+
if (type instanceof Statements.FunctionModule) {
|
|
95566
|
+
pos = stat.getFirstToken().getStart();
|
|
95567
|
+
name = this.findName(stat);
|
|
95568
|
+
func = true;
|
|
95569
|
+
count = 0;
|
|
95570
|
+
}
|
|
95571
|
+
else if (type instanceof Statements.EndFunction) {
|
|
95572
|
+
if (pos) {
|
|
95573
|
+
res.push({ name: name, className: "", count, file, pos });
|
|
95574
|
+
}
|
|
95575
|
+
else {
|
|
95576
|
+
continue;
|
|
95577
|
+
}
|
|
95578
|
+
func = false;
|
|
95579
|
+
}
|
|
95580
|
+
else if (func === true
|
|
95581
|
+
&& !(type instanceof _statement_1.Comment)
|
|
95582
|
+
&& !(type instanceof _statement_1.Empty)) {
|
|
95583
|
+
count = count + 1;
|
|
95584
|
+
}
|
|
95585
|
+
}
|
|
95586
|
+
}
|
|
95587
|
+
return res;
|
|
95588
|
+
}
|
|
95589
|
+
static findName(stat) {
|
|
95590
|
+
const nameExpr = stat.findFirstExpression(Expressions.Field);
|
|
95591
|
+
if (nameExpr) {
|
|
95592
|
+
return nameExpr.getFirstToken().getStr();
|
|
95593
|
+
}
|
|
95594
|
+
else {
|
|
95595
|
+
throw new Error("FunctionLength, findName, expected Field");
|
|
95596
|
+
}
|
|
95597
|
+
}
|
|
95598
|
+
}
|
|
95599
|
+
exports.FunctionLengthStats = FunctionLengthStats;
|
|
95600
|
+
//# sourceMappingURL=function_length_stats.js.map
|
|
95601
|
+
|
|
95602
|
+
/***/ },
|
|
95603
|
+
|
|
95493
95604
|
/***/ "../core/build/src/utils/include_graph.js"
|
|
95494
95605
|
/*!************************************************!*\
|
|
95495
95606
|
!*** ../core/build/src/utils/include_graph.js ***!
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/cli",
|
|
3
|
-
"version": "2.119.
|
|
3
|
+
"version": "2.119.41",
|
|
4
4
|
"description": "abaplint - Command Line Interface",
|
|
5
5
|
"funding": "https://github.com/sponsors/larshp",
|
|
6
6
|
"bin": {
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
},
|
|
39
39
|
"homepage": "https://abaplint.org",
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@abaplint/core": "^2.119.
|
|
41
|
+
"@abaplint/core": "^2.119.41",
|
|
42
42
|
"@types/chai": "^4.3.20",
|
|
43
43
|
"@types/minimist": "^1.2.5",
|
|
44
44
|
"@types/mocha": "^10.0.10",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"eslint": "^9.39.4",
|
|
50
50
|
"glob": "^13.0.6",
|
|
51
51
|
"json5": "^2.2.3",
|
|
52
|
-
"memfs": "^4.57.
|
|
52
|
+
"memfs": "^4.57.8",
|
|
53
53
|
"minimist": "^1.2.8",
|
|
54
54
|
"mocha": "^11.7.6",
|
|
55
55
|
"p-limit": "^3.1.0",
|