@abaplint/core 2.113.75 → 2.113.76

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.
@@ -703,6 +703,10 @@ declare class CallSelectionScreen implements IStatement {
703
703
  getMatcher(): IStatementRunnable;
704
704
  }
705
705
 
706
+ declare class CallSubscreen implements IStatement {
707
+ getMatcher(): IStatementRunnable;
708
+ }
709
+
706
710
  declare class CallTransaction implements IStatement {
707
711
  getMatcher(): IStatementRunnable;
708
712
  }
@@ -1868,6 +1872,10 @@ declare type DynproHeader = {
1868
1872
 
1869
1873
  declare type DynproList = DynproHeader[];
1870
1874
 
1875
+ declare class DynproLogic implements IStructure {
1876
+ getMatcher(): IStructureRunnable;
1877
+ }
1878
+
1871
1879
  declare class EcattTestConfiguration extends AbstractObject {
1872
1880
  getType(): string;
1873
1881
  getAllowedNaming(): {
@@ -2237,7 +2245,7 @@ declare namespace Expressions {
2237
2245
  FieldOffset,
2238
2246
  FieldSub,
2239
2247
  FieldSymbol_2 as FieldSymbol,
2240
- Field,
2248
+ Field_2 as Field,
2241
2249
  FilterBody,
2242
2250
  FinalMethods,
2243
2251
  FindType,
@@ -2471,7 +2479,11 @@ declare class FetchNextCursor implements IStatement {
2471
2479
  getMatcher(): IStatementRunnable;
2472
2480
  }
2473
2481
 
2474
- declare class Field extends Expression {
2482
+ declare class Field implements IStatement {
2483
+ getMatcher(): IStatementRunnable;
2484
+ }
2485
+
2486
+ declare class Field_2 extends Expression {
2475
2487
  getRunnable(): IStatementRunnable;
2476
2488
  }
2477
2489
 
@@ -5230,6 +5242,18 @@ declare class PrivateSection implements IStructure {
5230
5242
  getMatcher(): IStructureRunnable;
5231
5243
  }
5232
5244
 
5245
+ declare class ProcessAfterInput implements IStatement {
5246
+ getMatcher(): IStatementRunnable;
5247
+ }
5248
+
5249
+ declare class ProcessBeforeOutput implements IStatement {
5250
+ getMatcher(): IStatementRunnable;
5251
+ }
5252
+
5253
+ declare class ProcessOnValueRequest implements IStatement {
5254
+ getMatcher(): IStatementRunnable;
5255
+ }
5256
+
5233
5257
  declare class Program extends ABAPObject {
5234
5258
  private parsedXML;
5235
5259
  getType(): string;
@@ -6450,6 +6474,7 @@ declare namespace Statements {
6450
6474
  Retry,
6451
6475
  AuthorityCheck,
6452
6476
  SetParameter,
6477
+ Field,
6453
6478
  GetCursor,
6454
6479
  CallKernel,
6455
6480
  CallTransaction,
@@ -6459,6 +6484,9 @@ declare namespace Statements {
6459
6484
  DataBegin,
6460
6485
  DataEnd,
6461
6486
  TypeBegin,
6487
+ ProcessAfterInput,
6488
+ ProcessBeforeOutput,
6489
+ ProcessOnValueRequest,
6462
6490
  TypeEnd,
6463
6491
  RaiseEvent,
6464
6492
  Cleanup_2 as Cleanup,
@@ -6472,6 +6500,7 @@ declare namespace Statements {
6472
6500
  DeleteMemory,
6473
6501
  Provide_2 as Provide,
6474
6502
  EndExec,
6503
+ CallSubscreen,
6475
6504
  SortDataset,
6476
6505
  GetPermissions,
6477
6506
  SetLocks,
@@ -6579,9 +6608,9 @@ declare class StructureNode extends AbstractNode<StructureNode | StatementNode>
6579
6608
  declare namespace Structures {
6580
6609
  export {
6581
6610
  Any,
6582
- At,
6583
6611
  AtFirst,
6584
6612
  AtLast,
6613
+ At,
6585
6614
  Body,
6586
6615
  CaseType,
6587
6616
  Case,
@@ -6596,7 +6625,7 @@ declare namespace Structures {
6596
6625
  Data,
6597
6626
  Define,
6598
6627
  Do,
6599
- TypeMesh,
6628
+ DynproLogic,
6600
6629
  Else,
6601
6630
  ElseIf,
6602
6631
  EnhancementSection,
@@ -6624,6 +6653,7 @@ declare namespace Structures {
6624
6653
  TestSeam,
6625
6654
  Try,
6626
6655
  TypeEnum,
6656
+ TypeMesh,
6627
6657
  Types_2 as Types,
6628
6658
  WhenType,
6629
6659
  When,
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CallSubscreen = void 0;
4
+ const combi_1 = require("../combi");
5
+ const expressions_1 = require("../expressions");
6
+ const version_1 = require("../../../version");
7
+ class CallSubscreen {
8
+ getMatcher() {
9
+ const including = (0, combi_1.seq)("INCLUDING", expressions_1.Source, expressions_1.Source);
10
+ const ret = (0, combi_1.seq)("CALL SUBSCREEN", expressions_1.Source, (0, combi_1.optPrio)(including));
11
+ return (0, combi_1.verNot)(version_1.Version.Cloud, ret);
12
+ }
13
+ }
14
+ exports.CallSubscreen = CallSubscreen;
15
+ //# sourceMappingURL=call_subscreen.js.map
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Field = void 0;
4
+ const combi_1 = require("../combi");
5
+ const expressions_1 = require("../expressions");
6
+ const version_1 = require("../../../version");
7
+ class Field {
8
+ getMatcher() {
9
+ const ret = (0, combi_1.seq)("FIELD", expressions_1.FieldSub, "MODULE", expressions_1.FormName, (0, combi_1.opt)((0, combi_1.alt)("ON INPUT", "ON REQUEST")));
10
+ return (0, combi_1.verNot)(version_1.Version.Cloud, ret);
11
+ }
12
+ }
13
+ exports.Field = Field;
14
+ //# sourceMappingURL=field.js.map
@@ -294,6 +294,7 @@ __exportStar(require("./endfunction"), exports);
294
294
  __exportStar(require("./retry"), exports);
295
295
  __exportStar(require("./authority_check"), exports);
296
296
  __exportStar(require("./set_parameter"), exports);
297
+ __exportStar(require("./field"), exports);
297
298
  __exportStar(require("./get_cursor"), exports);
298
299
  __exportStar(require("./call_kernel"), exports);
299
300
  __exportStar(require("./call_transaction"), exports);
@@ -303,6 +304,9 @@ __exportStar(require("./uline"), exports);
303
304
  __exportStar(require("./data_begin"), exports);
304
305
  __exportStar(require("./data_end"), exports);
305
306
  __exportStar(require("./type_begin"), exports);
307
+ __exportStar(require("./process_after_input"), exports);
308
+ __exportStar(require("./process_before_output"), exports);
309
+ __exportStar(require("./process_on_value_request"), exports);
306
310
  __exportStar(require("./type_end"), exports);
307
311
  __exportStar(require("./raise_event"), exports);
308
312
  __exportStar(require("./cleanup"), exports);
@@ -316,6 +320,7 @@ __exportStar(require("./end_test_seam"), exports);
316
320
  __exportStar(require("./delete_memory"), exports);
317
321
  __exportStar(require("./provide"), exports);
318
322
  __exportStar(require("./endexec"), exports);
323
+ __exportStar(require("./call_subscreen"), exports);
319
324
  __exportStar(require("./sort_dataset"), exports);
320
325
  __exportStar(require("./get_permissions"), exports);
321
326
  __exportStar(require("./set_locks"), exports);
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProcessAfterInput = void 0;
4
+ const combi_1 = require("../combi");
5
+ const version_1 = require("../../../version");
6
+ class ProcessAfterInput {
7
+ getMatcher() {
8
+ return (0, combi_1.verNot)(version_1.Version.Cloud, "PROCESS AFTER INPUT");
9
+ }
10
+ }
11
+ exports.ProcessAfterInput = ProcessAfterInput;
12
+ //# sourceMappingURL=process_after_input.js.map
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProcessBeforeOutput = void 0;
4
+ const combi_1 = require("../combi");
5
+ const version_1 = require("../../../version");
6
+ class ProcessBeforeOutput {
7
+ getMatcher() {
8
+ return (0, combi_1.verNot)(version_1.Version.Cloud, "PROCESS BEFORE OUTPUT");
9
+ }
10
+ }
11
+ exports.ProcessBeforeOutput = ProcessBeforeOutput;
12
+ //# sourceMappingURL=process_before_output.js.map
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProcessOnValueRequest = void 0;
4
+ const combi_1 = require("../combi");
5
+ const version_1 = require("../../../version");
6
+ class ProcessOnValueRequest {
7
+ getMatcher() {
8
+ return (0, combi_1.verNot)(version_1.Version.Cloud, "PROCESS ON VALUE-REQUEST");
9
+ }
10
+ }
11
+ exports.ProcessOnValueRequest = ProcessOnValueRequest;
12
+ //# sourceMappingURL=process_on_value_request.js.map
@@ -29,6 +29,9 @@ class StructureParser {
29
29
  else if (filename.endsWith(".intf.abap")) {
30
30
  return new Structures.InterfaceGlobal();
31
31
  }
32
+ else if (filename.match(/\.screen\_\d+\.abap$/i)) {
33
+ return new Structures.DynproLogic();
34
+ }
32
35
  else {
33
36
  // todo, add a special structure for TYPE-POOLS
34
37
  return new Structures.Any();
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DynproLogic = void 0;
4
+ const Statements = require("../../2_statements/statements");
5
+ const _combi_1 = require("./_combi");
6
+ class DynproLogic {
7
+ getMatcher() {
8
+ const pai = (0, _combi_1.star)((0, _combi_1.alt)((0, _combi_1.sta)(Statements.Module), (0, _combi_1.sta)(Statements.CallSubscreen)));
9
+ const pbo = (0, _combi_1.star)((0, _combi_1.alt)((0, _combi_1.sta)(Statements.Module), (0, _combi_1.sta)(Statements.Field), (0, _combi_1.sta)(Statements.CallSubscreen)));
10
+ const pov = (0, _combi_1.star)((0, _combi_1.sta)(Statements.Field));
11
+ return (0, _combi_1.seq)((0, _combi_1.sta)(Statements.ProcessBeforeOutput), pbo, (0, _combi_1.sta)(Statements.ProcessAfterInput), pai, (0, _combi_1.opt)((0, _combi_1.seq)((0, _combi_1.sta)(Statements.ProcessOnValueRequest), pov)));
12
+ }
13
+ }
14
+ exports.DynproLogic = DynproLogic;
15
+ //# sourceMappingURL=dynpro_logic.js.map
@@ -15,9 +15,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./any"), exports);
18
- __exportStar(require("./at"), exports);
19
18
  __exportStar(require("./at_first"), exports);
20
19
  __exportStar(require("./at_last"), exports);
20
+ __exportStar(require("./at"), exports);
21
21
  __exportStar(require("./body"), exports);
22
22
  __exportStar(require("./case_type"), exports);
23
23
  __exportStar(require("./case"), exports);
@@ -32,7 +32,7 @@ __exportStar(require("./constants"), exports);
32
32
  __exportStar(require("./data"), exports);
33
33
  __exportStar(require("./define"), exports);
34
34
  __exportStar(require("./do"), exports);
35
- __exportStar(require("./type_mesh"), exports);
35
+ __exportStar(require("./dynpro_logic"), exports);
36
36
  __exportStar(require("./else"), exports);
37
37
  __exportStar(require("./elseif"), exports);
38
38
  __exportStar(require("./enhancement_section"), exports);
@@ -60,6 +60,7 @@ __exportStar(require("./test_injection"), exports);
60
60
  __exportStar(require("./test_seam"), exports);
61
61
  __exportStar(require("./try"), exports);
62
62
  __exportStar(require("./type_enum"), exports);
63
+ __exportStar(require("./type_mesh"), exports);
63
64
  __exportStar(require("./types"), exports);
64
65
  __exportStar(require("./when_type"), exports);
65
66
  __exportStar(require("./when"), exports);
@@ -5,6 +5,7 @@ const Statements = require("../abap/2_statements/statements");
5
5
  const Expressions = require("../abap/2_statements/expressions");
6
6
  const _statement_1 = require("../abap/2_statements/statements/_statement");
7
7
  const virtual_position_1 = require("../virtual_position");
8
+ const structures_1 = require("../abap/3_structures/structures");
8
9
  // todo, will break if there is multiple statements per line?
9
10
  class Indent {
10
11
  constructor(options) {
@@ -33,11 +34,13 @@ class Indent {
33
34
  }
34
35
  // returns list of expected indentation for each line/statement?
35
36
  getExpectedIndents(file) {
37
+ var _a;
36
38
  const ret = [];
37
39
  const init = 1;
38
40
  const stack = new Stack();
39
41
  let indent = init;
40
42
  let parentIsEvent = false;
43
+ const isDynpro = ((_a = file.getStructure()) === null || _a === void 0 ? void 0 : _a.get()) instanceof structures_1.DynproLogic;
41
44
  let previousStatement = undefined;
42
45
  for (const statement of file.getStatements()) {
43
46
  if (statement.getFirstToken().getStart() instanceof virtual_position_1.VirtualPosition) {
@@ -75,6 +78,9 @@ class Indent {
75
78
  || type instanceof Statements.AtPF
76
79
  || type instanceof Statements.Initialization
77
80
  || type instanceof Statements.AtUserCommand
81
+ || type instanceof Statements.ProcessAfterInput
82
+ || type instanceof Statements.ProcessBeforeOutput
83
+ || type instanceof Statements.ProcessOnValueRequest
78
84
  || type instanceof Statements.TopOfPage
79
85
  || type instanceof Statements.Get
80
86
  || type instanceof Statements.EndOfSelection
@@ -84,7 +90,7 @@ class Indent {
84
90
  }
85
91
  else if (type instanceof Statements.Form
86
92
  || (type instanceof Statements.Include && parentIsEvent)
87
- || type instanceof Statements.Module
93
+ || (type instanceof Statements.Module && isDynpro === false)
88
94
  || type instanceof Statements.ClassImplementation
89
95
  || type instanceof Statements.ClassDefinition) {
90
96
  indent = init;
@@ -129,7 +135,7 @@ class Indent {
129
135
  ret.push(indent);
130
136
  if (type instanceof Statements.If
131
137
  || type instanceof Statements.While
132
- || type instanceof Statements.Module
138
+ || (type instanceof Statements.Module && isDynpro === false)
133
139
  || type instanceof Statements.SelectLoop
134
140
  || type instanceof Statements.FunctionModule
135
141
  || type instanceof Statements.Interface
@@ -139,6 +145,9 @@ class Indent {
139
145
  || type instanceof Statements.AtLast
140
146
  || type instanceof Statements.ExecSQL
141
147
  || type instanceof Statements.Catch
148
+ || type instanceof Statements.ProcessAfterInput
149
+ || type instanceof Statements.ProcessBeforeOutput
150
+ || type instanceof Statements.ProcessOnValueRequest
142
151
  || type instanceof Statements.Define
143
152
  || type instanceof Statements.When
144
153
  || type instanceof Statements.WhenType
@@ -67,7 +67,7 @@ class Registry {
67
67
  }
68
68
  static abaplintVersion() {
69
69
  // magic, see build script "version.sh"
70
- return "2.113.75";
70
+ return "2.113.76";
71
71
  }
72
72
  getDDICReferences() {
73
73
  return this.ddicReferences;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/core",
3
- "version": "2.113.75",
3
+ "version": "2.113.76",
4
4
  "description": "abaplint - Core API",
5
5
  "main": "build/src/index.js",
6
6
  "typings": "build/abaplint.d.ts",
@@ -57,7 +57,7 @@
57
57
  "chai": "^4.5.0",
58
58
  "eslint": "^9.16.0",
59
59
  "mocha": "^11.0.1",
60
- "c8": "^10.1.2",
60
+ "c8": "^10.1.3",
61
61
  "source-map-support": "^0.5.21",
62
62
  "ts-json-schema-generator": "^2.3.0",
63
63
  "typescript": "^5.7.2"