@lcap/nasl-language-server-core 4.4.0-beta.18 → 4.4.0-beta.20

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.
Files changed (97) hide show
  1. package/out/checker.d.ts.map +1 -1
  2. package/out/checker.js +143 -4
  3. package/out/checker.js.map +1 -1
  4. package/out/index.d.ts +1 -1
  5. package/out/index.d.ts.map +1 -1
  6. package/out/index.js +5 -3
  7. package/out/index.js.map +1 -1
  8. package/out/reference-manager/build-q-name-def.js +2 -2
  9. package/out/reference-manager/build-q-name-def.js.map +1 -1
  10. package/out/reference-manager/builtin-q-name.js +2 -2
  11. package/out/reference-manager/builtin-q-name.js.map +1 -1
  12. package/out/reference-manager/collect-q-name.d.ts +1 -1
  13. package/out/reference-manager/collect-q-name.d.ts.map +1 -1
  14. package/out/reference-manager/collect-q-name.js +58 -24
  15. package/out/reference-manager/collect-q-name.js.map +1 -1
  16. package/out/reference-manager/def-key-helpers.d.ts +38 -0
  17. package/out/reference-manager/def-key-helpers.d.ts.map +1 -0
  18. package/out/reference-manager/{get-q-name.js → def-key-helpers.js} +176 -29
  19. package/out/reference-manager/def-key-helpers.js.map +1 -0
  20. package/out/reference-manager/helper.js +2 -2
  21. package/out/reference-manager/helper.js.map +1 -1
  22. package/out/reference-manager/reference-manager.d.ts +24 -52
  23. package/out/reference-manager/reference-manager.d.ts.map +1 -1
  24. package/out/reference-manager/reference-manager.js +222 -219
  25. package/out/reference-manager/reference-manager.js.map +1 -1
  26. package/out/reference-manager/remove-q-name.d.ts +1 -1
  27. package/out/reference-manager/remove-q-name.d.ts.map +1 -1
  28. package/out/reference-manager/remove-q-name.js +7 -10
  29. package/out/reference-manager/remove-q-name.js.map +1 -1
  30. package/out/reference-manager/rename-q-name.d.ts +26 -26
  31. package/out/reference-manager/rename-q-name.d.ts.map +1 -1
  32. package/out/reference-manager/rename-q-name.js +48 -167
  33. package/out/reference-manager/rename-q-name.js.map +1 -1
  34. package/out/reference-manager/symbol-type.d.ts +4 -4
  35. package/out/reference-manager/symbol-type.d.ts.map +1 -1
  36. package/out/reference-manager/symbol-type.js +1 -1
  37. package/out/reference-manager/symbol-type.js.map +1 -1
  38. package/out/reference-manager/update-nasl-fragment.js +4 -4
  39. package/out/reference-manager/update-nasl-fragment.js.map +1 -1
  40. package/out/typer/collectGlobalDefs.js +3 -3
  41. package/out/typer/collectGlobalDefs.js.map +1 -1
  42. package/out/typer/component-def-manager/component-def-manager.d.ts +16 -0
  43. package/out/typer/component-def-manager/component-def-manager.d.ts.map +1 -1
  44. package/out/typer/component-def-manager/component-def-manager.js +63 -2
  45. package/out/typer/component-def-manager/component-def-manager.js.map +1 -1
  46. package/out/typer/component-def-manager/utils.d.ts.map +1 -1
  47. package/out/typer/component-def-manager/utils.js +3 -2
  48. package/out/typer/component-def-manager/utils.js.map +1 -1
  49. package/out/typer/dispatch-all.js +3 -3
  50. package/out/typer/dispatch-all.js.map +1 -1
  51. package/out/typer/dispatch-call.js +3 -3
  52. package/out/typer/dispatch-call.js.map +1 -1
  53. package/out/typer/dispatch-def.js +3 -3
  54. package/out/typer/dispatch-def.js.map +1 -1
  55. package/out/typer/dispatch-expr.d.ts.map +1 -1
  56. package/out/typer/dispatch-expr.js +29 -30
  57. package/out/typer/dispatch-expr.js.map +1 -1
  58. package/out/typer/dispatch-process.js +3 -3
  59. package/out/typer/dispatch-process.js.map +1 -1
  60. package/out/typer/dispatch-view.d.ts.map +1 -1
  61. package/out/typer/dispatch-view.js +8 -13
  62. package/out/typer/dispatch-view.js.map +1 -1
  63. package/out/typer/get-oql-files.js +1 -1
  64. package/out/typer/get-oql-files.js.map +1 -1
  65. package/out/typer/incremental-update.js +8 -8
  66. package/out/typer/incremental-update.js.map +1 -1
  67. package/out/typer/overload-helper.js +2 -2
  68. package/out/typer/overload-helper.js.map +1 -1
  69. package/out/typer/solver.d.ts +5 -1
  70. package/out/typer/solver.d.ts.map +1 -1
  71. package/out/typer/solver.js +29 -9
  72. package/out/typer/solver.js.map +1 -1
  73. package/out/typer/subster.d.ts.map +1 -1
  74. package/out/typer/subster.js +39 -6
  75. package/out/typer/subster.js.map +1 -1
  76. package/out/typer/topo-sort.js +4 -4
  77. package/out/typer/topo-sort.js.map +1 -1
  78. package/out/typer/type-manager.d.ts.map +1 -1
  79. package/out/typer/type-manager.js +3 -3
  80. package/out/typer/type-manager.js.map +1 -1
  81. package/out/typer/type-predicate.js +4 -4
  82. package/out/typer/type-predicate.js.map +1 -1
  83. package/out/typer/typer.d.ts +2 -2
  84. package/out/typer/typer.d.ts.map +1 -1
  85. package/out/typer/typer.js +38 -29
  86. package/out/typer/typer.js.map +1 -1
  87. package/out/typer/unifier.d.ts.map +1 -1
  88. package/out/typer/unifier.js +19 -20
  89. package/out/typer/unifier.js.map +1 -1
  90. package/package.json +6 -6
  91. package/out/reference-manager/get-q-name.d.ts +0 -14
  92. package/out/reference-manager/get-q-name.d.ts.map +0 -1
  93. package/out/reference-manager/get-q-name.js.map +0 -1
  94. package/out/reference-manager/view-elem-logic.d.ts +0 -44
  95. package/out/reference-manager/view-elem-logic.d.ts.map +0 -1
  96. package/out/reference-manager/view-elem-logic.js +0 -181
  97. package/out/reference-manager/view-elem-logic.js.map +0 -1
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTokenQualifiedNameForMatchedExpr = exports.getParamDefQName = exports.getTokenQualifiedName = void 0;
3
+ exports.simpleCollectByGlobalDefKey = exports.fixConnectorNsp = exports.getGlobalDefKeyForMatchedExpr = exports.getLocalDefKeys = exports.isIdentifierAsPropertyName = exports.getLocalDefKey = exports.getGlobalDefKey = void 0;
4
4
  const nasl_concepts_1 = require("@lcap/nasl-concepts");
5
5
  const symbol_type_1 = require("./symbol-type");
6
6
  const string_1 = require("../utils/string");
7
+ const misc_1 = require("../utils/misc");
7
8
  const handleLogic = (nd) => {
8
9
  try {
9
10
  return nd.calleewholeKey;
@@ -24,7 +25,7 @@ const handleFVar = (nd) => {
24
25
  * 效率低,仅单次使用,其实应该返回 Array<QName>,比如一个 QueryFromExpression
25
26
  * 里就有对数据源、实体等的多个引用,QName 不一样,但是现在搞简单点吧
26
27
  */
27
- const getTokenQualifiedName = (nd) => {
28
+ const getGlobalDefKey = (nd) => {
28
29
  switch (nd?.concept) {
29
30
  // references
30
31
  // 超高频的放前面
@@ -58,21 +59,35 @@ const getTokenQualifiedName = (nd) => {
58
59
  return (0, string_1.prependNonEmptyStr)(nd.calleeNamespace, nd.calleeName);
59
60
  // // 谁有什么更好的办法吗
60
61
  // return `app.${prependNonEmptyStr(nd.calleeNamespace, nd.calleeName)}`;
61
- case 'CallLogic':
62
+ case 'CallLogic': {
62
63
  if ((0, symbol_type_1.isProcessLogicCall)(nd.calleeNamespace) && (0, symbol_type_1.isSpecialProcessLogic)(nd.calleeName)) {
63
64
  // 触发 completeArguments 的填充逻辑,修复 keyword 丢失的问题
64
65
  const completedArgs = nd.completeArguments ?? nd.arguments;
65
66
  const procDefKey = completedArgs?.find((arg) => arg?.keyword === 'procDefKey');
66
67
  return `${procDefKey?.expression?.value}.logics.${nd.calleeName}`;
67
68
  }
68
- // return nd.calleewholeKey;
69
+ if (!nd.calleeNamespace?.length && nd.calleeName) {
70
+ const ctxViewLike = (0, nasl_concepts_1.getCtxViewLike)(nd);
71
+ if (ctxViewLike) {
72
+ const viewQ = (0, exports.getGlobalDefKey)(ctxViewLike);
73
+ return viewQ ? `${viewQ}.logics.${nd.calleeName}` : undefined;
74
+ }
75
+ }
76
+ // 业务组件逻辑:页面中 elements.bs-xxx.logics 调用的是 BC 的 logics,定义在 {bcQName}.logics.{name}
77
+ if (nd.calleeNamespace?.startsWith('elements.') && nd.calleeNamespace.endsWith('.logics')) {
78
+ const callNode = nd.getCallNode?.();
79
+ if (callNode?.concept === 'BusinessLogic') {
80
+ return (0, exports.getGlobalDefKey)(callNode);
81
+ }
82
+ }
69
83
  return (0, string_1.prependNonEmptyStr)(nd.calleeNamespace, nd.calleeName);
84
+ }
70
85
  case 'CallEvent': {
71
86
  const e = nd.getCallNode();
72
87
  if (!e) {
73
88
  return undefined;
74
89
  }
75
- return (0, exports.getTokenQualifiedName)(e);
90
+ return (0, exports.getGlobalDefKey)(e);
76
91
  }
77
92
  case 'MemberExpression':
78
93
  // qName 未定义
@@ -86,9 +101,15 @@ const getTokenQualifiedName = (nd) => {
86
101
  case 'QueryJoinExpression': /** 先计算实体 name 好了,查找引用另有 hack */
87
102
  return `${nd.entityNamespace}.${nd.entityName}`;
88
103
  // definitions
89
- case 'Logic': // fallthrough
90
- case 'BusinessLogic':
104
+ case 'Logic':
105
+ case 'BusinessLogic': {
106
+ const parent = nd.parentNode;
107
+ if (parent && (parent.concept === 'View' || parent.concept === 'BusinessComponent')) {
108
+ const parentQ = (0, exports.getGlobalDefKey)(parent);
109
+ return parentQ ? `${parentQ}.logics.${nd.name}` : handleLogic(nd);
110
+ }
91
111
  return handleLogic(nd);
112
+ }
92
113
  case 'AuthInterface':
93
114
  return (0, string_1.prependNonEmptyStr)(nd.getNamespace(), nd.name);
94
115
  case 'McpInterface':
@@ -98,7 +119,7 @@ const getTokenQualifiedName = (nd) => {
98
119
  return `app.backend.variables.${nd.name}`;
99
120
  case 'Event': {
100
121
  if (nd.parentNode?.concept === 'BusinessComponent') {
101
- return (0, string_1.prependNonEmptyStr)((0, exports.getTokenQualifiedName)(nd.parentNode), `events.${nd.name}`);
122
+ return (0, string_1.prependNonEmptyStr)((0, exports.getGlobalDefKey)(nd.parentNode), `events.${nd.name}`);
102
123
  }
103
124
  // 其他情形还不能处理
104
125
  return nd.name;
@@ -108,7 +129,7 @@ const getTokenQualifiedName = (nd) => {
108
129
  case 'EntityProperty': {
109
130
  const entity = nd.getAncestorRaw('Entity');
110
131
  if (entity.concept === 'Entity') {
111
- const entityQName = (0, exports.getTokenQualifiedName)(entity);
132
+ const entityQName = (0, exports.getGlobalDefKey)(entity);
112
133
  return (0, string_1.getPropQName)(entityQName, nd.name, 'Entity');
113
134
  }
114
135
  else {
@@ -133,8 +154,14 @@ const getTokenQualifiedName = (nd) => {
133
154
  case 'OverriddenLogic':
134
155
  return `${symbol_type_1.overriddenLogicNsp}.logics.${nd.name}`;
135
156
  case 'Param':
136
- case 'ParamWithGroup':
137
- return nd.name;
157
+ case 'ParamWithGroup': {
158
+ const parent = nd.parentNode;
159
+ if (!parent || !(0, symbol_type_1.isLogicViewLike)(parent)) {
160
+ return nd.name;
161
+ }
162
+ const parentQ = (0, exports.getGlobalDefKey)(parent);
163
+ return parentQ ? `${parentQ}.params.${nd.name}` : nd.name;
164
+ }
138
165
  case 'Return':
139
166
  return nd.name;
140
167
  case 'Structure':
@@ -150,7 +177,7 @@ const getTokenQualifiedName = (nd) => {
150
177
  case 'View':
151
178
  return (0, string_1.prependNonEmptyStr)(nd.getNamespace(), nd.name); // 局部名就可以了
152
179
  case 'ViewElement': {
153
- return (0, string_1.prependNonEmptyStr)((0, exports.getTokenQualifiedName)(nd.likeComponent), nd.name);
180
+ return (0, string_1.prependNonEmptyStr)((0, exports.getGlobalDefKey)(nd.likeComponent), nd.name);
154
181
  }
155
182
  case 'BusinessComponent':
156
183
  return (0, string_1.prependNonEmptyStr)(nd.getNamespace(), nd.name);
@@ -206,7 +233,7 @@ const getTokenQualifiedName = (nd) => {
206
233
  // const oldPropName = nd.value.split('.')[1];
207
234
  // const oldProp = ReferenceManager.getProp(dsTy, oldPropName);
208
235
  // if (oldProp) {
209
- // const oldPropQName = getTokenQualifiedName(oldProp)!;
236
+ // const oldPropQName = getGlobalDefKey(oldProp)!;
210
237
  // self.symbolRefs.get(oldProp)?.delete(target);
211
238
  // self.cachedQNameSymbolRefs.get(oldPropQName)?.delete(target);
212
239
  // }
@@ -221,27 +248,147 @@ const getTokenQualifiedName = (nd) => {
221
248
  }
222
249
  }
223
250
  };
224
- exports.getTokenQualifiedName = getTokenQualifiedName;
251
+ exports.getGlobalDefKey = getGlobalDefKey;
225
252
  /**
226
- * 逻辑/页面参数作为「定义」时的完整 qName,仅用于引用系统建立「调用逻辑的参数」到「逻辑的参数」的引用。
227
- * 内部其它场景请继续使用 getTokenQualifiedName(Param) 得到局部名 nd.name。
253
+ * 获取局部符号在 localRefs / localDefStacks 中的查找 key。
254
+ * 统一入口:定义节点和引用节点都走这里,保证 def ref 的 key 一致。
255
+ *
256
+ * 有局部形式的节点:Param、Variable、Logic(在 View/BC 内)、Event 等,用 simple name 即可引用。
257
+ * 无局部形式的节点:Structure、Enum、ViewElement、BindEvent.logics 等,需用完整路径。
228
258
  */
229
- const getParamDefQName = (nd) => {
230
- if (nd?.concept !== 'Param' && nd?.concept !== 'ParamWithGroup')
231
- return undefined;
259
+ const getLocalDefKey = (nd) => {
260
+ const keys = (0, exports.getLocalDefKeys)(nd);
261
+ return keys.length > 0 ? keys[0] : (0, exports.getGlobalDefKey)(nd);
262
+ };
263
+ exports.getLocalDefKey = getLocalDefKey;
264
+ /**
265
+ * Identifier 作为属性名(非变量引用)的场景:
266
+ * 1. NewComposite.properties - new Entity1({ var1: ... }) 中的 var1
267
+ * 2. MemberExpression.property - x.var1 中的 var1(含 BatchAssignment.left 的 var2.{ var1 })
268
+ */
269
+ const isIdentifierAsPropertyName = (nd) => {
270
+ if (nd?.concept !== 'Identifier')
271
+ return false;
232
272
  const parent = nd.parentNode;
233
- if (!parent || !(0, symbol_type_1.isLogicViewLike)(parent)) {
234
- return nd.name;
273
+ // NewComposite.properties
274
+ const nc = parent?.concept === 'NewComposite' ? parent : nd.getAncestorRaw?.('NewComposite');
275
+ const props = nc?.properties;
276
+ if (props?.some((p) => (0, misc_1.toRaw)(p) === (0, misc_1.toRaw)(nd)))
277
+ return true;
278
+ // MemberExpression.property(x.var1 中的 var1,含 BatchAssignment 左侧)
279
+ if (parent?.concept === 'MemberExpression' && parent.property === nd) {
280
+ return true;
281
+ }
282
+ return false;
283
+ };
284
+ exports.isIdentifierAsPropertyName = isIdentifierAsPropertyName;
285
+ /**
286
+ * 获取局部符号在 localRefs 中的全部查找 key(部分引用如 Identifier 的 elements.* 需多 key 索引)。
287
+ * 供 buildLocalRefs 等统一写入 localRefs 使用。
288
+ */
289
+ const getLocalDefKeys = (nd) => {
290
+ if (!nd)
291
+ return [];
292
+ const parent = nd.parentNode;
293
+ const isInViewOrBC = parent && (parent.concept === 'View' || parent.concept === 'BusinessComponent');
294
+ switch (nd.concept) {
295
+ case 'Param':
296
+ case 'ParamWithGroup':
297
+ case 'Return':
298
+ case 'InterfaceParam':
299
+ case 'Variable':
300
+ case 'FrontendVariable':
301
+ return nd.name ? [nd.name] : [];
302
+ case 'Logic':
303
+ case 'BusinessLogic':
304
+ case 'Event':
305
+ if (isInViewOrBC && nd.name)
306
+ return [nd.name];
307
+ break;
308
+ case 'CallLogic': {
309
+ if (!nd.calleeNamespace?.length && nd.calleeName) {
310
+ return [nd.calleeName];
311
+ }
312
+ if (nd.calleeNamespace?.startsWith('elements.') && nd.calleeNamespace.endsWith('.logics')) {
313
+ const ctxViewLike = (0, nasl_concepts_1.getCtxViewLike)(nd);
314
+ const viewQ = ctxViewLike && (0, exports.getGlobalDefKey)(ctxViewLike);
315
+ if (viewQ) {
316
+ const elemPath = nd.calleeNamespace.slice(0, -7);
317
+ return [`${viewQ}.${elemPath}`];
318
+ }
319
+ }
320
+ break;
321
+ }
322
+ case 'CallEvent': {
323
+ if ((!nd.calleeNamespace?.length || !nd.calleeNamespace) && nd.calleeName) {
324
+ return [nd.calleeName];
325
+ }
326
+ break;
327
+ }
328
+ case 'Identifier': {
329
+ // 属性名(NewComposite/BatchAssignment 等)不是对局部变量/param 的引用
330
+ if ((0, exports.isIdentifierAsPropertyName)(nd)) {
331
+ return [];
332
+ }
333
+ const nsp = nd.namespace;
334
+ if (!nsp || !nsp.length) {
335
+ const ctxViewLike = (0, nasl_concepts_1.getCtxViewLike)(nd);
336
+ if (ctxViewLike && nd.name)
337
+ return [nd.name];
338
+ }
339
+ if (nsp?.startsWith('elements.')) {
340
+ const ctxViewLike = (0, nasl_concepts_1.getCtxViewLike)(nd);
341
+ const viewQ = ctxViewLike && (0, exports.getGlobalDefKey)(ctxViewLike);
342
+ if (!viewQ)
343
+ break;
344
+ const keys = [];
345
+ if (nsp.endsWith('.property')) {
346
+ keys.push(`${viewQ}.${nsp.substring(0, nsp.length - 9)}`);
347
+ }
348
+ else if (nsp.endsWith('.logics')) {
349
+ const fullRelKey = (0, exports.getGlobalDefKey)(nd);
350
+ if (fullRelKey)
351
+ keys.push(`${viewQ}.${fullRelKey}`);
352
+ const bindIdx = nsp.indexOf('.bindEvents');
353
+ const elemPath = bindIdx >= 0 ? nsp.substring(0, bindIdx) : nsp;
354
+ keys.push(`${viewQ}.${elemPath}`);
355
+ }
356
+ if (keys.length > 0)
357
+ return keys;
358
+ }
359
+ break;
360
+ }
235
361
  }
236
- const parentQ = (0, exports.getTokenQualifiedName)(parent);
237
- return parentQ ? `${parentQ}.params.${nd.name}` : nd.name;
362
+ const fallback = (0, exports.getGlobalDefKey)(nd);
363
+ return fallback ? [fallback] : [];
238
364
  };
239
- exports.getParamDefQName = getParamDefQName;
240
- const getTokenQualifiedNameForMatchedExpr = (env, nd) => {
365
+ exports.getLocalDefKeys = getLocalDefKeys;
366
+ const getGlobalDefKeyForMatchedExpr = (env, nd) => {
241
367
  if (nd.concept === 'MemberExpression') {
242
- return ((0, exports.getTokenQualifiedNameForMatchedExpr)(env, nd.object) + '.' + nd.property.name);
368
+ const objectKey = (0, exports.getGlobalDefKeyForMatchedExpr)(env, nd.object);
369
+ if (objectKey == null)
370
+ return undefined;
371
+ return objectKey + '.' + nd.property.name;
243
372
  }
244
- return (0, exports.getTokenQualifiedName)(nd);
373
+ return (0, exports.getGlobalDefKey)(nd);
374
+ };
375
+ exports.getGlobalDefKeyForMatchedExpr = getGlobalDefKeyForMatchedExpr;
376
+ /**
377
+ * Connector 的 namespace 需要去掉末尾的 'connector' 或 '.connector'
378
+ * collect 与 remove 共用此逻辑
379
+ */
380
+ const fixConnectorNsp = (nsp) => nsp.endsWith('connector')
381
+ ? nsp.substring(0, nsp.length - 'connector'.length)
382
+ : nsp.endsWith('.connector')
383
+ ? nsp.substring(0, nsp.length - '.connector'.length)
384
+ : nsp;
385
+ exports.fixConnectorNsp = fixConnectorNsp;
386
+ /**
387
+ * 仅用 getGlobalDefKey 生成 defKey 的简单 handler(如 Connection、ViewComponent、ViewComponentDeclaration)
388
+ */
389
+ const simpleCollectByGlobalDefKey = (def) => {
390
+ const defKey = (0, exports.getGlobalDefKey)(def);
391
+ return defKey ? [[defKey, def]] : [];
245
392
  };
246
- exports.getTokenQualifiedNameForMatchedExpr = getTokenQualifiedNameForMatchedExpr;
247
- //# sourceMappingURL=get-q-name.js.map
393
+ exports.simpleCollectByGlobalDefKey = simpleCollectByGlobalDefKey;
394
+ //# sourceMappingURL=def-key-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"def-key-helpers.js","sourceRoot":"","sources":["../../src/reference-manager/def-key-helpers.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ const nasl_concepts_1 = require("@lcap/nasl-concepts");
5
5
  const typer_1 = require("../typer");
6
6
  const service_1 = require("@lcap/nasl-concepts/service");
7
7
  const misc_1 = require("../utils/misc");
8
- const get_q_name_1 = require("./get-q-name");
8
+ const def_key_helpers_1 = require("./def-key-helpers");
9
9
  /**
10
10
  * 获取命名空间,移除最后一个点后的内容
11
11
  * 移除 nsp 中最后一个 . 之后的内容,
@@ -14,7 +14,7 @@ const get_q_name_1 = require("./get-q-name");
14
14
  * xxx.entities 只保留 xxx
15
15
  */
16
16
  const getNamespaceWithoutLast = (def) => {
17
- const qName = (0, get_q_name_1.getTokenQualifiedName)(def) ?? '';
17
+ const qName = (0, def_key_helpers_1.getGlobalDefKey)(def) ?? '';
18
18
  const lastDotIndex0 = qName.lastIndexOf('.');
19
19
  const res0 = lastDotIndex0 !== -1 ? qName.slice(0, lastDotIndex0) : '';
20
20
  const lastDotIndex1 = res0.lastIndexOf('.');
@@ -1 +1 @@
1
- {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../src/reference-manager/helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../src/reference-manager/helper.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Entity, EntityProperty, Enum, Identifier, Logic, Structure, StructureProperty, type SyntaxNode, TypeAnnotation, BaseNode, App, EnumItem, ViewElement, ProcessElementV2, View, BusinessLogic, Event } from '@lcap/nasl-concepts';
1
+ import { Entity, EntityProperty, Enum, Identifier, Logic, Structure, StructureProperty, type SyntaxNode, TypeAnnotation, BaseNode, App, EnumItem, ViewElement, ProcessElementV2, BusinessLogic, Event } from '@lcap/nasl-concepts';
2
2
  import { NASLObject } from '@lcap/nasl-types';
3
3
  import { type SemEnv } from '../typer';
4
4
  import { ComponentDefManager } from '../typer/component-def-manager/component-def-manager';
@@ -40,18 +40,12 @@ export declare class ReferenceManager {
40
40
  *
41
41
  * 将实体看成 namespace,所有引用实体逻辑的地方也算引用了实体?
42
42
  */
43
- private gSymbolRefs;
43
+ private globalRefs;
44
44
  getSymbolRefs: (__def: DefConcept) => Set<RefConcept> | undefined;
45
45
  setSymbolRefs: (__def: DefConcept, refs: Set<RefConcept>) => void;
46
46
  deleteSymbolRefs: (__def: DefConcept) => boolean;
47
- clearSymbolRefs: () => void;
48
- getSymbolRefsSize: () => number;
49
- private veQNameDefs;
50
- /**
51
- * @warning ViewElement 和 Logic 都是局部符号,可以重名,qName 重复时会出错,不要搞这种例子谢谢
52
- * key 是 memory addr 而不是 string 的原因:点查找引用时,不好高效获取 qName(如 Logic 没有 namespace 但调用处其实有,对的就是 elements.)
53
- */
54
- private veRefs;
47
+ clearGlobalRefs: () => void;
48
+ getGlobalRefsSize: () => number;
55
49
  modeForCollect: Operation | null;
56
50
  /**
57
51
  * 非用户选择的"隐式引用",如推导出的类型
@@ -77,8 +71,8 @@ export declare class ReferenceManager {
77
71
  compDefMgr: ComponentDefManager;
78
72
  private lastBoundary;
79
73
  private isLocalCacheValid;
80
- /** local qName refs 局部符号的引用 */
81
- lQNameRefs: Map<string, Set<RefConcept>>;
74
+ /** 局部符号的引用,key getLocalDefKey 返回值(作用域内简单名或完整路径) */
75
+ localRefs: Map<string, Set<RefConcept>>;
82
76
  curFileNode: SyntaxNode | undefined;
83
77
  static connectionNsp: string;
84
78
  constructor();
@@ -111,7 +105,7 @@ export declare class ReferenceManager {
111
105
  * declaration for each variable name is returned (nearest-first ordering).
112
106
  *
113
107
  * Implementation notes:
114
- * - We intentionally DO NOT depend on the (ephemeral) lexicalVarStacks in SemEnv so
108
+ * - We intentionally DO NOT depend on the (ephemeral) localDefStacks in SemEnv so
115
109
  * this works post-typing (e.g. in reference / rename / hover providers) without
116
110
  * re-running the typer.
117
111
  * - Order:
@@ -157,10 +151,6 @@ export declare class ReferenceManager {
157
151
  static getProp: (def: Entity | Structure | Enum | TypeAnnotation, prop: string) => EntityProperty | StructureProperty | EnumItem | undefined;
158
152
  slowBuildSymbolRefsForApp: (env: SemEnv, app: App) => void;
159
153
  addQNameDefs: (app: App) => void;
160
- /** 注释见具体实现 */
161
- addViewElementLogicQNameDefs: (viewLike: View | import("@lcap/nasl-concepts").BusinessComponent) => void;
162
- /** 注释见具体实现 */
163
- addViewElementLogicRefs: (viewLike: View | import("@lcap/nasl-concepts").BusinessComponent) => void;
164
154
  queryQNameDef: (qName: string) => DefConcept | undefined;
165
155
  buildTsQNameDefs: (env: SemEnv, nsp: SupportedNamespace, fileContent: string) => void;
166
156
  /**
@@ -170,18 +160,9 @@ export declare class ReferenceManager {
170
160
  */
171
161
  findOrCreateTypeDef: (ty: TypeAnnotation) => Structure | Entity | Enum | undefined;
172
162
  /**
173
- * 重要对外接口,查找符号的定义
174
- * @param ref
175
- * @returns
163
+ * 查找符号的定义(含全局符号、View/BC 内 logics 等,均已在 gQNameDefs 中注册)
176
164
  */
177
165
  getNodeDef: (ref: RefConcept | DefConcept) => DefConcept | undefined;
178
- /**
179
- * 查找符号的定义,同时查找全局定义和 View 级别的定义
180
- * 用于构建调用图时查找 View 级别的 logics
181
- * @param ref
182
- * @returns
183
- */
184
- getNodeDefIncludingView: (ref: RefConcept | DefConcept) => DefConcept | undefined;
185
166
  /**
186
167
  * @warning 对外接口,指用户点击 "查找引用",只返回用户手动指定的引用
187
168
  * @param __nd 要查找引用的定义
@@ -191,20 +172,11 @@ export declare class ReferenceManager {
191
172
  timeAndLog: (label: string, fn: (...args: any[]) => void, ...args: any[]) => void;
192
173
  /**
193
174
  * 给类似 FileNode 级别的定义建立局部引用记录
194
- * @warning 不包括 ViewElement、BindEvent 相关的引用,那个在 @link addViewElementLogicRefs
175
+ * @warning 不包括 ViewElement、BindEvent 相关的引用,已合并到 getLocalDefKeys 与 collectedRefs 处理
195
176
  * @warning 需要包括 SubLogics
196
177
  */
197
- private buildMinimalLocalQNameRefs;
198
- /**
199
- * References to view elements are calls of component logic and access of properties
200
- * 'elements.uLinearLayout1.logics.openLoading'
201
- *
202
- * 'elements.uLinearLayout1.property.uLinearLayout1._if._if'
203
- * "concept": "Identifier",
204
- * "namespace": "elements.uLinearLayout1.property",
205
- * "name": "uLinearLayout1",
206
- *
207
- */
178
+ private buildLocalRefs;
179
+ /** @deprecated 使用 getSymbolRefs,保留仅为兼容 */
208
180
  getViewElementRefs: (nd: ViewElement | Logic | BusinessLogic | Event | undefined) => Set<RefConcept>;
209
181
  /**
210
182
  * 非常危险,但是先这样吧
@@ -290,8 +262,9 @@ export declare class ReferenceManager {
290
262
  */
291
263
  private unregisterParamsOfLogicOrView;
292
264
  /**
293
- * 对「调用该 Logic/View 的所有 CallLogic/Destination」重新收集参数引用,把参数引用加进 gSymbolRefs
265
+ * 对「调用该 Logic/View/BusinessComponent 的所有 CallLogic/Destination/ViewElement」重新收集参数引用,把参数引用加进 globalRefs
294
266
  * syncParamsOfLogicOrView 与 registerNewParamAndRecollectRefs 共用,避免重复逻辑。
267
+ * 所有 callers 均在 globalRefs。
295
268
  */
296
269
  private recollectParamRefsForCallers;
297
270
  /**
@@ -300,11 +273,11 @@ export declare class ReferenceManager {
300
273
  */
301
274
  recollectParamRefsForDef: (env: SemEnv, defNode: DefConcept) => void;
302
275
  /**
303
- * Logic/View/BusinessLogic 参数列表变更时同步 gQNameDefs 与 gSymbolRefs
276
+ * Logic/View/BusinessLogic 参数列表变更时同步 gQNameDefs 与 globalRefs
304
277
  * - 仅卸载「已删除」的参数,避免把内部引用清空。
305
278
  * - 仍存在的参数:把 refs 从旧 def 迁移到新 def,并更新 gQNameDefs。
306
279
  * - 新加参数:只做注册。
307
- * - 最后对「调用该 Logic/View 的所有 CallLogic」重新收集参数引用,把新参数的引用加进 gSymbolRefs
280
+ * - 最后对「调用该 Logic/View 的所有 CallLogic」重新收集参数引用,把新参数的引用加进 globalRefs
308
281
  */
309
282
  syncParamsOfLogicOrView: (env: SemEnv, updatedDefNode: DefConcept, oldDefNode: DefConcept) => void;
310
283
  /**
@@ -313,21 +286,20 @@ export declare class ReferenceManager {
313
286
  */
314
287
  registerNewParamAndRecollectRefs: (env: SemEnv, paramNode: DefConcept) => void;
315
288
  /**
316
- * 建立「调用逻辑的参数」到「逻辑的参数」的引用:对 CallLogic 的每个 Argument,按 keyword/顺序匹配到 Logic 的 Param,并 handleRefOp
289
+ * 建立「调用处实参」到「Logic/View/BusinessComponent 形参」的引用。
290
+ * 支持 CallLogic(调用逻辑)、Destination(页面跳转)、ViewElement(业务组件 bindAttrs)等。
291
+ * 扩充新类型时只需在此处增加分支。
317
292
  */
318
- private handleCallLogicParamRefs;
293
+ private handleCallerParamRefs;
319
294
  /**
320
- * 建立「页面跳转的参数」到「页面的参数」的引用:对 Destination 的每个 Argument,按 keyword/顺序匹配到 View 的 Param,并 handleRefOp。
321
- * handleCallLogicParamRefs 对称,页面入参的查找引用需包含跳转处的实参。
322
- */
323
- private handleDestinationParamRefs;
324
- /**
325
- * @warning Only handle global symbols
326
- */
295
+ * 处理「定义」的增删
296
+ * @warning Only handle global symbols
297
+ **/
327
298
  handleDefOp: (mode: Operation, defNode: DefConcept, qName: string) => void;
328
299
  /**
300
+ * 处理「引用」的增删
329
301
  * @warning Only handle global symbols
330
- */
302
+ **/
331
303
  handleRefOp: (mode: Operation, refNd: RefConcept, qName: string) => void;
332
304
  handleSymbolImplicitRefs: (nd: SyntaxNode | undefined) => void;
333
305
  private handleNewCompositeNode;
@@ -1 +1 @@
1
- {"version":3,"file":"reference-manager.d.ts","sourceRoot":"","sources":["../../src/reference-manager/reference-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reference-manager.d.ts","sourceRoot":"","sources":["../../src/reference-manager/reference-manager.ts"],"names":[],"mappings":"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"}