UNPKG

@abaplint/core

Version:
57 lines (56 loc) 2.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PreferXsdbool = exports.PreferXsdboolConf = void 0; const issue_1 = require("../issue"); const _abap_rule_1 = require("./_abap_rule"); const Expressions = require("../abap/2_statements/expressions"); const _basic_rule_config_1 = require("./_basic_rule_config"); const _irule_1 = require("./_irule"); const version_1 = require("../version"); const edit_helper_1 = require("../edit_helper"); class PreferXsdboolConf extends _basic_rule_config_1.BasicRuleConfig { } exports.PreferXsdboolConf = PreferXsdboolConf; class PreferXsdbool extends _abap_rule_1.ABAPRule { constructor() { super(...arguments); this.conf = new PreferXsdboolConf(); } getMetadata() { return { key: "prefer_xsdbool", title: "Prefer xsdbool over boolc", shortDescription: `Prefer xsdbool over boolc`, extendedInformation: `Activates if language version is v740sp08 or above. https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md#use-xsdbool-to-set-boolean-variables`, tags: [_irule_1.RuleTag.Styleguide, _irule_1.RuleTag.Upport, _irule_1.RuleTag.Quickfix, _irule_1.RuleTag.SingleFile], badExample: `DATA(sdf) = boolc( 1 = 2 ).`, goodExample: `DATA(sdf) = xsdbool( 1 = 2 ).`, }; } getConfig() { return this.conf; } setConfig(conf) { this.conf = conf; } runParsed(file) { var _a; const issues = []; if (this.reg.getConfig().getVersion() < version_1.Version.v740sp08 && this.reg.getConfig().getVersion() !== version_1.Version.Cloud) { return []; } for (const s of ((_a = file.getStructure()) === null || _a === void 0 ? void 0 : _a.findAllExpressions(Expressions.Source)) || []) { if (s.concatTokens().toUpperCase().startsWith("BOOLC( ") === false) { continue; } const token = s.getFirstToken(); const message = "Prefer xsdbool over boolc"; const fix = edit_helper_1.EditHelper.replaceToken(file, token, "xsdbool"); issues.push(issue_1.Issue.atToken(file, token, message, this.getMetadata().key, this.conf.severity, fix)); } return issues; } } exports.PreferXsdbool = PreferXsdbool; //# sourceMappingURL=prefer_xsdbool.js.map