@lcap/nasl-language-server-core 4.1.0-rc.3 → 4.1.0-rc.4
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/out/checker.d.ts.map +1 -1
- package/out/checker.js +6 -4
- package/out/checker.js.map +1 -1
- package/out/index.d.ts +3 -0
- package/out/index.d.ts.map +1 -1
- package/out/index.js +5 -1
- package/out/index.js.map +1 -1
- package/out/reference-manager/build-q-name-def.d.ts +10 -0
- package/out/reference-manager/build-q-name-def.d.ts.map +1 -0
- package/out/reference-manager/build-q-name-def.js +66 -0
- package/out/reference-manager/build-q-name-def.js.map +1 -0
- package/out/reference-manager/builtin-q-name.js +6 -6
- package/out/reference-manager/builtin-q-name.js.map +1 -1
- package/out/reference-manager/get-q-name.d.ts.map +1 -1
- package/out/reference-manager/get-q-name.js +11 -7
- package/out/reference-manager/get-q-name.js.map +1 -1
- package/out/reference-manager/helper.d.ts +21 -0
- package/out/reference-manager/helper.d.ts.map +1 -0
- package/out/reference-manager/helper.js +92 -0
- package/out/reference-manager/helper.js.map +1 -0
- package/out/reference-manager/reference-manager.d.ts +39 -132
- package/out/reference-manager/reference-manager.d.ts.map +1 -1
- package/out/reference-manager/reference-manager.js +200 -481
- package/out/reference-manager/reference-manager.js.map +1 -1
- package/out/reference-manager/special-string-ref.d.ts +7 -0
- package/out/reference-manager/special-string-ref.d.ts.map +1 -0
- package/out/reference-manager/special-string-ref.js +34 -0
- package/out/reference-manager/special-string-ref.js.map +1 -0
- package/out/reference-manager/symbol-type.d.ts +5 -2
- package/out/reference-manager/symbol-type.d.ts.map +1 -1
- package/out/reference-manager/symbol-type.js +22 -2
- package/out/reference-manager/symbol-type.js.map +1 -1
- package/out/reference-manager/update-nasl-fragment.d.ts +1 -4
- package/out/reference-manager/update-nasl-fragment.d.ts.map +1 -1
- package/out/reference-manager/update-nasl-fragment.js +22 -37
- package/out/reference-manager/update-nasl-fragment.js.map +1 -1
- package/out/reference-manager/view-elem-logic.d.ts +44 -0
- package/out/reference-manager/view-elem-logic.d.ts.map +1 -0
- package/out/reference-manager/view-elem-logic.js +164 -0
- package/out/reference-manager/view-elem-logic.js.map +1 -0
- package/out/services/bindable-logic-service.d.ts +64 -0
- package/out/services/bindable-logic-service.d.ts.map +1 -0
- package/out/services/bindable-logic-service.js +186 -0
- package/out/services/bindable-logic-service.js.map +1 -0
- package/out/services/client.d.ts +10 -0
- package/out/services/client.d.ts.map +1 -0
- package/out/services/client.js +21 -0
- package/out/services/client.js.map +1 -0
- package/out/services/contextual-variables-service.d.ts +14 -0
- package/out/services/contextual-variables-service.d.ts.map +1 -0
- package/out/services/contextual-variables-service.js +17 -0
- package/out/services/contextual-variables-service.js.map +1 -0
- package/out/services/event-handler-type-service.d.ts +16 -0
- package/out/services/event-handler-type-service.d.ts.map +1 -0
- package/out/services/event-handler-type-service.js +57 -0
- package/out/services/event-handler-type-service.js.map +1 -0
- package/out/services/index.d.ts +2 -0
- package/out/services/index.d.ts.map +1 -0
- package/out/services/index.js +18 -0
- package/out/services/index.js.map +1 -0
- package/out/services/types/type.d.ts +13 -0
- package/out/services/types/type.d.ts.map +1 -0
- package/out/services/types/type.js +3 -0
- package/out/services/types/type.js.map +1 -0
- package/out/symbol/traverse/concepts/frontend/bind-event.d.ts.map +1 -1
- package/out/symbol/traverse/concepts/frontend/bind-event.js +3 -0
- package/out/symbol/traverse/concepts/frontend/bind-event.js.map +1 -1
- package/out/symbol/traverse/concepts/index.d.ts +1 -1
- package/out/symbol/traverse/concepts/index.d.ts.map +1 -1
- package/out/typer/collectGlobalDefs.js +1 -1
- package/out/typer/collectGlobalDefs.js.map +1 -1
- package/out/typer/dispatch-all.d.ts +1 -1
- package/out/typer/dispatch-all.d.ts.map +1 -1
- package/out/typer/dispatch-all.js +1 -1
- package/out/typer/dispatch-all.js.map +1 -1
- package/out/typer/dispatch-def.d.ts +2 -2
- package/out/typer/dispatch-def.d.ts.map +1 -1
- package/out/typer/dispatch-def.js +11 -16
- package/out/typer/dispatch-def.js.map +1 -1
- package/out/typer/dispatch-expr.js +11 -11
- package/out/typer/dispatch-expr.js.map +1 -1
- package/out/typer/dispatch-process.d.ts.map +1 -1
- package/out/typer/dispatch-process.js +7 -3
- package/out/typer/dispatch-process.js.map +1 -1
- package/out/typer/dispatch-view.d.ts.map +1 -1
- package/out/typer/dispatch-view.js +125 -62
- package/out/typer/dispatch-view.js.map +1 -1
- package/out/typer/helper.d.ts +0 -5
- package/out/typer/helper.d.ts.map +1 -1
- package/out/typer/helper.js +1 -21
- package/out/typer/helper.js.map +1 -1
- package/out/typer/incremental-update.d.ts.map +1 -1
- package/out/typer/incremental-update.js +127 -44
- package/out/typer/incremental-update.js.map +1 -1
- package/out/typer/index.d.ts +3 -3
- package/out/typer/index.d.ts.map +1 -1
- package/out/typer/index.js +3 -4
- package/out/typer/index.js.map +1 -1
- package/out/typer/nasl-predicate.d.ts +3 -5
- package/out/typer/nasl-predicate.d.ts.map +1 -1
- package/out/typer/nasl-predicate.js +10 -7
- package/out/typer/nasl-predicate.js.map +1 -1
- package/out/typer/solver.d.ts.map +1 -1
- package/out/typer/solver.js +4 -0
- package/out/typer/solver.js.map +1 -1
- package/out/typer/subster.js +4 -4
- package/out/typer/subster.js.map +1 -1
- package/out/typer/topo-sort.d.ts +1 -1
- package/out/typer/topo-sort.d.ts.map +1 -1
- package/out/typer/topo-sort.js +2 -2
- package/out/typer/topo-sort.js.map +1 -1
- package/out/typer/type-manager.d.ts +1 -1
- package/out/typer/type-manager.d.ts.map +1 -1
- package/out/typer/type-manager.js +5 -7
- package/out/typer/type-manager.js.map +1 -1
- package/out/typer/type-predicate.d.ts.map +1 -1
- package/out/typer/type-predicate.js +21 -7
- package/out/typer/type-predicate.js.map +1 -1
- package/out/typer/typer.d.ts +42 -6
- package/out/typer/typer.d.ts.map +1 -1
- package/out/typer/typer.js +127 -17
- package/out/typer/typer.js.map +1 -1
- package/out/typer/unifier.d.ts +0 -1
- package/out/typer/unifier.d.ts.map +1 -1
- package/out/typer/unifier.js +17 -12
- package/out/typer/unifier.js.map +1 -1
- package/out/utils/misc.d.ts +11 -0
- package/out/utils/misc.d.ts.map +1 -0
- package/out/utils/misc.js +29 -0
- package/out/utils/misc.js.map +1 -0
- package/out/utils/traverse-util.d.ts +5 -0
- package/out/utils/traverse-util.d.ts.map +1 -0
- package/out/utils/traverse-util.js +69 -0
- package/out/utils/traverse-util.js.map +1 -0
- package/package.json +5 -5
|
@@ -1,106 +1,21 @@
|
|
|
1
|
-
import { Entity, EntityProperty, Enum, Identifier, Structure, StructureProperty, type SyntaxNode, TypeAnnotation, App, EnumItem, ViewElement, ProcessElementV2, View,
|
|
1
|
+
import { Entity, EntityProperty, Enum, Identifier, Logic, Structure, StructureProperty, type SyntaxNode, TypeAnnotation, App, EnumItem, ViewElement, ProcessElementV2, View, BusinessLogic } 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';
|
|
5
5
|
import { type RefConcept, type DefConcept, SupportedNamespace, QName, Operation } from './symbol-type';
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* a 与 b 可能变为 T3.a 和 T4.b 中的引用
|
|
15
|
-
*
|
|
16
|
-
* 因此不能只对 (...) 中的符号做增删,而是需要对整个文件级别的符号做增删
|
|
17
|
-
* 并且 result 类型变化为,所有受牵连的文件也都需要对内部所有符号重新做增删
|
|
18
|
-
*/
|
|
19
|
-
/**
|
|
20
|
-
* 最核心的宗旨:(1)添加的东西可以链接到老的引用,但是新添加的东西里面都没有引用,所以先添加 qName,再做类型检查,再做引用计数
|
|
21
|
-
* (2)删除的东西前,必须先更新引用计数、把里面的引用都删掉,再删 qName,再类型检查,再视情况按新类型添加引用
|
|
22
|
-
* (3)更新时,必须按旧的类型删除引用,再做类型检查,再按新类型添加引用
|
|
23
|
-
*
|
|
24
|
-
* 增量类型检查时序:
|
|
25
|
-
* 对于非 definitions:
|
|
26
|
-
* 1 首先基于操作种类,对 xs 和内部引用符号做增删
|
|
27
|
-
* 2 无论是什么操作,都直接 getFileNodeTransClosure 查到 FileNode 的引用传递闭包,设为 ys
|
|
28
|
-
* 3 对 ys 中的所有引用,在 symbolRefs 中删除
|
|
29
|
-
* 4 类型检查 ys
|
|
30
|
-
* 5 对 ys 中的所有引用,在 symbolRefs 中添加
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* 对于 definitions:
|
|
34
|
-
* Create xs
|
|
35
|
-
* 1 创建 xs 的 qNames
|
|
36
|
-
* 2 尝试 'relink' 到旧的 refs(需要 relink 所有下属定义,如 Structure 下的 StructureProperty)
|
|
37
|
-
* 3 待检查项设为 ys:xs 所在的 FileNode,和 refs 所在的 FileNode 的 transitive closure
|
|
38
|
-
*
|
|
39
|
-
* (一般不需要处理 xs 的下属定义?如 Structure 下的 StructureProperty,
|
|
40
|
-
* 因为引用下属定义前一定会先引用 xs 的 qName,如引用 .prop1 时必定有类似 x: Structure1, x.prop1。
|
|
41
|
-
* 但也不一定,比如 f().prop1 时,只引用了 prop1 而没有 Structure1 的名字)
|
|
42
|
-
*
|
|
43
|
-
* 以下不在 preProcess 中做:
|
|
44
|
-
* 4 拓扑排序 ys 确定类型检查顺序
|
|
45
|
-
* 5 类型检查 ys
|
|
46
|
-
* 6 更新 ys 中对 xs qNames 的引用 symbolRefs
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
* Remove xs:
|
|
50
|
-
* 1 扫描 xs 的 qNames
|
|
51
|
-
* 2 确定待检查项 ys:xs 引用的 FileNodes,
|
|
52
|
-
* 3 删除 xs 中对所有全局符号的引用,更新 symbolRefs
|
|
53
|
-
* (1 因为即使通过撤销重做,进来的 refs 对象的内存地址也不一样,无法重用)
|
|
54
|
-
* (2 xs 中其他符号的引用如果还在,查找其他符号时依然会找到"消失的xs",然后再找到 xs 被引用的 FileNode,这样不对)
|
|
55
|
-
* 4 缓存要删除的 qNames qNameDefsToRemove,现在不能删除,因为如果删除了,移除 ys 中的符号时就会报错,例子我不记得了,之后再想想……
|
|
56
|
-
*
|
|
57
|
-
* 以下不在 preProcess 中做:
|
|
58
|
-
* 5 类型检查 ys
|
|
59
|
-
* 6 不需要删除 ys 中对 xs 的引用 refs,所以不需要更新 symbolRefs(为了之后做 'relink')
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
* Rename xs:
|
|
63
|
-
* 1 获取要删除的旧的 qNames1
|
|
64
|
-
* 2 获取引用旧的 qNames1 的待检查项 ys
|
|
65
|
-
* 3 获取要增加的新的 qNames2
|
|
66
|
-
* 4 引用转移:qNameDefs 中增加 qNames2,并且把 qNames1 的 symbolRefs 转移到 qNames2,qNameDefs 中删除 qNames1
|
|
67
|
-
* 5 尝试 'relink':改名后,如果新名字已经存在一些存量 refs,也要加进去
|
|
68
|
-
* 6 根据转移的 symbolRefs,获取引用新的 qNames2 的待检查项 zs(比如可能一个以前找不到的名字碰巧连接上了)
|
|
69
|
-
* 7 类型检查 ys 和 zs
|
|
70
|
-
*
|
|
71
|
-
* 其他 update xs:
|
|
72
|
-
* 1 拆成 delete oldObj 和 create newObj
|
|
73
|
-
* 2 查找 xs 的引用, 确定待检查项 ys
|
|
74
|
-
*
|
|
75
|
-
* 3 (基于旧类型)删除 xs 和 ys 中的引用 symbolRefs
|
|
76
|
-
* 4 类型检查 xs 和 ys
|
|
77
|
-
* 5 (基于新类型)更新 xs 和 ys 中的引用 symbolRefs
|
|
78
|
-
*
|
|
79
|
-
* 以上所有的基于旧类型删除 symbolRefs,类型检查,然后基于新类型更新 symbolRefs 的操作,都需要在最后执行。在那之前只处理 def 的 qNames 和 ref 的局部更新等。
|
|
80
|
-
*/
|
|
81
|
-
/**
|
|
82
|
-
* 特点:增量更新、惰性
|
|
83
|
-
* 进入应用:扫描所有全局符号
|
|
84
|
-
* 打开页面逻辑、逻辑、页面:啥也不动
|
|
85
|
-
* 更新逻辑:增量更新局部引用、全局引用
|
|
86
|
-
* 查找全局符号:直接返回
|
|
87
|
-
* 查找局部符号:有缓存则从缓存返回结果,如无缓存则局部扫描局部所有符号建立缓存再返回结果
|
|
88
|
-
*/
|
|
89
|
-
/**
|
|
90
|
-
* 不考虑场景:剪切后粘贴并自动重命名等
|
|
91
|
-
*/
|
|
92
|
-
/**
|
|
93
|
-
* 约定:不要在这里处理任何定义中的 type 删除,这里只管引用。
|
|
94
|
-
* 删除引用时,需要一并移除类型:这里是删除引用的最后的现场,删除引用后类型检查阶段拿到的 NASL 是
|
|
95
|
-
* 不带删除节点的 NASL,所以无法再处理了。(删除定义时,有一个删除定义列表可以处理,引用不在此列表里)。
|
|
96
|
-
* 因为今天永远也不知道 public 方法明天会被什么地方调到,增量更新是时序非常敏感的,很容易出问题
|
|
97
|
-
*/
|
|
98
|
-
/**
|
|
99
|
-
* 一些奇怪的引用或关联关系,特别容易出错的:
|
|
100
|
-
* - BindAttr 的 field、valueField、textField、parentField 字符串暗含的特殊引用
|
|
7
|
+
* 一些非常规引用或关联关系,特别容易出错的:
|
|
8
|
+
* - BindAttr 的
|
|
9
|
+
* field、
|
|
10
|
+
* valueField、
|
|
11
|
+
* textField、
|
|
12
|
+
* parentField 字符串暗含的特殊引用
|
|
13
|
+
* @warning 考虑之后开放一个接口,让组件库开发自己配置字符串引用
|
|
101
14
|
* - QueryFieldExpression、QueryJoinExpression、QueryFromExpression 中的特殊引用,可能是字符串也可能是别的,注意 QueryFromExpression 内部包含 QueryJoinExpression
|
|
102
15
|
* - 触碰到 Logic 时,要同时看看 OverriddenLogic
|
|
103
16
|
* - 触碰到实体时,要看看实体逻辑
|
|
17
|
+
* - __TypeAnnotation 要单独管理,因为重命名不能碰这些推导的没有记录在 NASL 的数据
|
|
18
|
+
* - 页面引用了流程(通过“流程——关联页面”),但可能被页面局部符号 shadow
|
|
104
19
|
*/
|
|
105
20
|
export declare class ReferenceManager {
|
|
106
21
|
static refConcept: string[]; /** imported */
|
|
@@ -108,33 +23,47 @@ export declare class ReferenceManager {
|
|
|
108
23
|
static localDefConcept: string[]; /** imported */
|
|
109
24
|
static defConcept: string[]; /** imported */
|
|
110
25
|
static compositeNodeConcept: string[]; /** imported */
|
|
111
|
-
|
|
26
|
+
gQNameDefs: Map<string, DefConcept>;
|
|
112
27
|
/**
|
|
28
|
+
* @warning g 表示 global,这里基本只存放全局符号的引用
|
|
29
|
+
*
|
|
30
|
+
* 增量语义分析的范围基本由它决定:因为全局符号改动后,接口有变动,引用处需要重新做语义分析
|
|
31
|
+
* 局部符号变动后,仅直接影响所处的全局定义(如实体、逻辑接口类型);其他的定义无法引用局部符号。
|
|
32
|
+
*
|
|
33
|
+
* definition to its references (memory address) for GLOBAL DEFINITIONS
|
|
113
34
|
* 实体 def,11 个实体逻辑构成对其引用吗?
|
|
114
|
-
* 实体逻辑的定义的 params 的 typeAnnotation
|
|
35
|
+
* 实体逻辑的定义的 params 的 typeAnnotation 确实对实体有引用,但那不是用户数据。
|
|
36
|
+
* 如果加上引用,则 rename 时 实体逻辑的 nodePath 直接 invalid ==> "数据不同步强制刷新"
|
|
37
|
+
*
|
|
115
38
|
* 实体逻辑对其不够成引用 ==> rename 时额外加上 11 个实体逻辑的引用
|
|
116
39
|
*
|
|
117
40
|
* 将实体看成 namespace,所有引用实体逻辑的地方也算引用了实体?
|
|
118
41
|
*/
|
|
119
|
-
private
|
|
42
|
+
private gSymbolRefs;
|
|
120
43
|
getSymbolRefs: (__def: DefConcept) => Set<RefConcept> | undefined;
|
|
121
44
|
setSymbolRefs: (__def: DefConcept, refs: Set<RefConcept>) => void;
|
|
122
45
|
deleteSymbolRefs: (__def: DefConcept) => boolean;
|
|
123
46
|
clearSymbolRefs: () => void;
|
|
124
47
|
getSymbolRefsSize: () => number;
|
|
48
|
+
private veQNameDefs;
|
|
49
|
+
/**
|
|
50
|
+
* @warning ViewElement 和 Logic 都是局部符号,可以重名,qName 重复时会出错,不要搞这种例子谢谢
|
|
51
|
+
* key 是 memory addr 而不是 string 的原因:点查找引用时,不好高效获取 qName(如 Logic 没有 namespace 但调用处其实有,对的就是 elements.)
|
|
52
|
+
*/
|
|
53
|
+
private veRefs;
|
|
125
54
|
modeForCollect: Operation | null;
|
|
126
55
|
/**
|
|
127
56
|
* 非用户选择的"隐式引用",如推导出的类型
|
|
128
57
|
* 用于存储来自 __TypeAnnotation 字段的隐式引用
|
|
129
58
|
*/
|
|
130
|
-
private
|
|
59
|
+
private gSymbolImplicitRefs;
|
|
131
60
|
private setSymbolImplicitRef;
|
|
132
61
|
getImplicitReferences: (__nd: DefConcept) => Set<RefConcept>;
|
|
133
|
-
|
|
62
|
+
gCachedQNameSymbolRefs: Map<string, Set<RefConcept>>;
|
|
134
63
|
compDefMgr: ComponentDefManager;
|
|
135
64
|
private lastBoundary;
|
|
136
|
-
isLocalCacheValid
|
|
137
|
-
|
|
65
|
+
private isLocalCacheValid;
|
|
66
|
+
lQNameRefs: Map<string, Set<RefConcept>>;
|
|
138
67
|
curFileNode: SyntaxNode | undefined;
|
|
139
68
|
static connectionNsp: string;
|
|
140
69
|
constructor();
|
|
@@ -142,13 +71,11 @@ export declare class ReferenceManager {
|
|
|
142
71
|
buildSymbolRefsForApp(env: SemEnv, app?: App): void;
|
|
143
72
|
static getProp: (def: Entity | Structure | Enum | TypeAnnotation, prop: string) => EntityProperty | StructureProperty | EnumItem | undefined;
|
|
144
73
|
slowBuildSymbolRefsForApp: (env: SemEnv, app: App) => void;
|
|
145
|
-
private fastBuildQNameDefs;
|
|
146
|
-
/**
|
|
147
|
-
* FIXME wudengke rename this to collectFullDefs
|
|
148
|
-
* @param app
|
|
149
|
-
*/
|
|
150
74
|
addQNameDefs: (app: App) => void;
|
|
151
|
-
|
|
75
|
+
/** 注释见具体实现 */
|
|
76
|
+
addViewElementLogicQNameDefs: (viewLike: View | import("@lcap/nasl-concepts").BusinessComponent) => void;
|
|
77
|
+
/** 注释见具体实现 */
|
|
78
|
+
addViewElementLogicRefs: (viewLike: View | import("@lcap/nasl-concepts").BusinessComponent) => void;
|
|
152
79
|
queryQNameDef: (qName: string) => DefConcept | undefined;
|
|
153
80
|
buildTsQNameDefs: (env: SemEnv, nsp: SupportedNamespace, fileContent: string) => void;
|
|
154
81
|
/**
|
|
@@ -169,8 +96,8 @@ export declare class ReferenceManager {
|
|
|
169
96
|
* @returns 所有引用处
|
|
170
97
|
*/
|
|
171
98
|
getReferences: (env: SemEnv, __nd: DefConcept) => Array<RefConcept>;
|
|
172
|
-
|
|
173
|
-
private
|
|
99
|
+
timeAndLog: (label: string, fn: (...args: any[]) => void, ...args: any[]) => void;
|
|
100
|
+
private buildMinimalLocalQNameRefs;
|
|
174
101
|
/**
|
|
175
102
|
* References to view elements are calls of component logic and access of properties
|
|
176
103
|
* 'elements.uLinearLayout1.logics.openLoading'
|
|
@@ -181,7 +108,7 @@ export declare class ReferenceManager {
|
|
|
181
108
|
* "name": "uLinearLayout1",
|
|
182
109
|
*
|
|
183
110
|
*/
|
|
184
|
-
getViewElementRefs: (
|
|
111
|
+
getViewElementRefs: (nd: ViewElement | Logic | BusinessLogic | undefined) => Set<RefConcept>;
|
|
185
112
|
/**
|
|
186
113
|
* 非常危险,但是先这样吧
|
|
187
114
|
*/
|
|
@@ -200,7 +127,6 @@ export declare class ReferenceManager {
|
|
|
200
127
|
*/
|
|
201
128
|
transferQNameDef: (oldQName: string, newQName: string, mode: 'update' | 'rename-only' | null) => void;
|
|
202
129
|
updateRefsInNaslFragment: (env: SemEnv, payload: NASLObject.EventPayload) => void;
|
|
203
|
-
cacheRemovedConnectors: (nd: Connector, connDeps: Connector[], removedFiles: Set<SyntaxNode>) => void;
|
|
204
130
|
/**
|
|
205
131
|
* @warning Only handle global symbols
|
|
206
132
|
*/
|
|
@@ -251,6 +177,7 @@ export declare class ReferenceManager {
|
|
|
251
177
|
*/
|
|
252
178
|
addRefsForGlobalSym: (env: SemEnv, nd: DefConcept, skipSubView?: boolean) => void;
|
|
253
179
|
invalidateLocalSymCache: () => void;
|
|
180
|
+
getLocalCacheState: () => boolean;
|
|
254
181
|
/**
|
|
255
182
|
* 干的事太多了,只能改名 hack 了
|
|
256
183
|
* 假设 a:A, b:B, c:C, d:D,a.b.c.d 拆解为
|
|
@@ -283,10 +210,6 @@ export declare class ReferenceManager {
|
|
|
283
210
|
normaliseEntityLogic: <T extends DefConcept>(nd: T) => T;
|
|
284
211
|
}
|
|
285
212
|
export declare const easyGetOldQName: (qName: string, oldName: string) => string;
|
|
286
|
-
/**
|
|
287
|
-
* 今后大概率会改成 isNonUserNode,实体逻辑只是其中之一。比如文件夹应该也是 nonUserNode 吧
|
|
288
|
-
*/
|
|
289
|
-
export declare const isEntityLogic: (nd: SyntaxNode | null | undefined) => boolean;
|
|
290
213
|
/**
|
|
291
214
|
* 处理 CodeWave 编译器的一些连带的自动化行为,如自动生成 { abc: Abc } 这样的匿名结构体。
|
|
292
215
|
* 这里实质上是否是引用?这里不是直接引用,但是 entityX 这个名字是从 EntityX 自动生成的,也可以看作是间接引用
|
|
@@ -294,20 +217,4 @@ export declare const isEntityLogic: (nd: SyntaxNode | null | undefined) => boole
|
|
|
294
217
|
* 暂时也当做直接引用得了
|
|
295
218
|
*/
|
|
296
219
|
export declare const handleEntityAutoRef: (ty: TypeAnnotation, nextProp: StructureProperty | undefined, ident: Identifier) => [Identifier, QName] | undefined;
|
|
297
|
-
export declare const getDatasourceQName: (eNsp: string) => string;
|
|
298
|
-
/**
|
|
299
|
-
* 移除 nsp 中最后一个 . 之后的内容,
|
|
300
|
-
* 如 app.logics 只保留 app,
|
|
301
|
-
* extensions.encrypt_tool.logics 只保留 extensions.encrypt_tool
|
|
302
|
-
* xxx.entities 只保留 xxx
|
|
303
|
-
*/
|
|
304
|
-
export declare const getNamespaceWithoutLast: (def: DefConcept) => string;
|
|
305
|
-
export declare const cheapTestLocalSymbol: (qName: string) => boolean;
|
|
306
|
-
/**
|
|
307
|
-
* 一个 FileNode 下面还可以有其他 FileNode 哦,其实没什么神秘的。
|
|
308
|
-
* @warning 只会返回下属的 FileNode,不包含自己
|
|
309
|
-
* @param node
|
|
310
|
-
* @returns 下属 FileNodes,不包含自己
|
|
311
|
-
*/
|
|
312
|
-
export declare const getSubViews: (node: SyntaxNode) => Array<View>;
|
|
313
220
|
//# sourceMappingURL=reference-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reference-manager.d.ts","sourceRoot":"","sources":["../../src/reference-manager/reference-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,MAAM,EACN,cAAc,EACd,IAAI,EACJ,UAAU,
|
|
1
|
+
{"version":3,"file":"reference-manager.d.ts","sourceRoot":"","sources":["../../src/reference-manager/reference-manager.ts"],"names":[],"mappings":"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"}
|