agent-ide 0.5.0 → 0.6.0

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 (131) hide show
  1. package/dist/core/change-signature/change-signature-service.d.ts.map +1 -1
  2. package/dist/core/change-signature/change-signature-service.js +5 -9
  3. package/dist/core/change-signature/change-signature-service.js.map +1 -1
  4. package/dist/core/change-signature/signature-parser.d.ts +0 -16
  5. package/dist/core/change-signature/signature-parser.d.ts.map +1 -1
  6. package/dist/core/change-signature/signature-parser.js +0 -109
  7. package/dist/core/change-signature/signature-parser.js.map +1 -1
  8. package/dist/core/dead-code/dead-code-detector.d.ts +63 -0
  9. package/dist/core/dead-code/dead-code-detector.d.ts.map +1 -0
  10. package/dist/core/dead-code/dead-code-detector.js +256 -0
  11. package/dist/core/dead-code/dead-code-detector.js.map +1 -0
  12. package/dist/core/dead-code/index.d.ts +8 -0
  13. package/dist/core/dead-code/index.d.ts.map +1 -0
  14. package/dist/core/dead-code/index.js +7 -0
  15. package/dist/core/dead-code/index.js.map +1 -0
  16. package/dist/core/dead-code/types.d.ts +68 -0
  17. package/dist/core/dead-code/types.d.ts.map +1 -0
  18. package/dist/core/dead-code/types.js +20 -0
  19. package/dist/core/dead-code/types.js.map +1 -0
  20. package/dist/core/dependency/dependency-analyzer.d.ts.map +1 -1
  21. package/dist/core/dependency/dependency-analyzer.js +2 -15
  22. package/dist/core/dependency/dependency-analyzer.js.map +1 -1
  23. package/dist/core/indexing/index-engine.d.ts.map +1 -1
  24. package/dist/core/indexing/index-engine.js +0 -12
  25. package/dist/core/indexing/index-engine.js.map +1 -1
  26. package/dist/core/indexing/types.d.ts +1 -1
  27. package/dist/core/indexing/types.js +1 -1
  28. package/dist/core/indexing/types.js.map +1 -1
  29. package/dist/core/move-file/import-resolver.d.ts +1 -1
  30. package/dist/core/move-file/import-resolver.d.ts.map +1 -1
  31. package/dist/core/move-file/import-resolver.js +1 -9
  32. package/dist/core/move-file/import-resolver.js.map +1 -1
  33. package/dist/core/move-file/move-service.d.ts +8 -0
  34. package/dist/core/move-file/move-service.d.ts.map +1 -1
  35. package/dist/core/move-file/move-service.js +102 -21
  36. package/dist/core/move-file/move-service.js.map +1 -1
  37. package/dist/core/move-member/member-extractor.d.ts +0 -8
  38. package/dist/core/move-member/member-extractor.d.ts.map +1 -1
  39. package/dist/core/move-member/member-extractor.js +0 -49
  40. package/dist/core/move-member/member-extractor.js.map +1 -1
  41. package/dist/core/move-member/move-member-service.js +1 -1
  42. package/dist/core/move-member/move-member-service.js.map +1 -1
  43. package/dist/core/rename/reference-updater.d.ts +4 -0
  44. package/dist/core/rename/reference-updater.d.ts.map +1 -1
  45. package/dist/core/rename/reference-updater.js +30 -0
  46. package/dist/core/rename/reference-updater.js.map +1 -1
  47. package/dist/core/snapshot/index.d.ts +2 -0
  48. package/dist/core/snapshot/index.d.ts.map +1 -1
  49. package/dist/core/snapshot/index.js +1 -0
  50. package/dist/core/snapshot/index.js.map +1 -1
  51. package/dist/core/snapshot/snapshot-cache.d.ts +103 -0
  52. package/dist/core/snapshot/snapshot-cache.d.ts.map +1 -0
  53. package/dist/core/snapshot/snapshot-cache.js +249 -0
  54. package/dist/core/snapshot/snapshot-cache.js.map +1 -0
  55. package/dist/core/snapshot/snapshot-generator.d.ts +12 -0
  56. package/dist/core/snapshot/snapshot-generator.d.ts.map +1 -1
  57. package/dist/core/snapshot/snapshot-generator.js +61 -3
  58. package/dist/core/snapshot/snapshot-generator.js.map +1 -1
  59. package/dist/infrastructure/formatters/index.d.ts +1 -1
  60. package/dist/infrastructure/formatters/index.d.ts.map +1 -1
  61. package/dist/infrastructure/formatters/index.js.map +1 -1
  62. package/dist/infrastructure/formatters/query-formatter.d.ts +16 -0
  63. package/dist/infrastructure/formatters/query-formatter.d.ts.map +1 -1
  64. package/dist/infrastructure/formatters/query-formatter.js +155 -3
  65. package/dist/infrastructure/formatters/query-formatter.js.map +1 -1
  66. package/dist/infrastructure/formatters/query-types.d.ts +73 -2
  67. package/dist/infrastructure/formatters/query-types.d.ts.map +1 -1
  68. package/dist/interfaces/cli/cli.d.ts.map +1 -1
  69. package/dist/interfaces/cli/cli.js +2 -29
  70. package/dist/interfaces/cli/cli.js.map +1 -1
  71. package/dist/interfaces/cli/commands/deadcode.command.d.ts +11 -0
  72. package/dist/interfaces/cli/commands/deadcode.command.d.ts.map +1 -0
  73. package/dist/interfaces/cli/commands/deadcode.command.js +103 -0
  74. package/dist/interfaces/cli/commands/deadcode.command.js.map +1 -0
  75. package/dist/interfaces/cli/commands/index.d.ts +1 -0
  76. package/dist/interfaces/cli/commands/index.d.ts.map +1 -1
  77. package/dist/interfaces/cli/commands/index.js +1 -0
  78. package/dist/interfaces/cli/commands/index.js.map +1 -1
  79. package/dist/interfaces/cli/commands/move.command.js +1 -1
  80. package/dist/interfaces/cli/commands/move.command.js.map +1 -1
  81. package/dist/interfaces/cli/commands/rename.command.js +2 -3
  82. package/dist/interfaces/cli/commands/rename.command.js.map +1 -1
  83. package/dist/interfaces/cli/commands/snapshot.command.d.ts.map +1 -1
  84. package/dist/interfaces/cli/commands/snapshot.command.js +20 -0
  85. package/dist/interfaces/cli/commands/snapshot.command.js.map +1 -1
  86. package/package.json +10 -12
  87. package/dist/plugins/python/dependency-analyzer.d.ts +0 -86
  88. package/dist/plugins/python/dependency-analyzer.d.ts.map +0 -1
  89. package/dist/plugins/python/dependency-analyzer.js +0 -252
  90. package/dist/plugins/python/dependency-analyzer.js.map +0 -1
  91. package/dist/plugins/python/index.d.ts +0 -9
  92. package/dist/plugins/python/index.d.ts.map +0 -1
  93. package/dist/plugins/python/index.js +0 -14
  94. package/dist/plugins/python/index.js.map +0 -1
  95. package/dist/plugins/python/parser.d.ts +0 -117
  96. package/dist/plugins/python/parser.d.ts.map +0 -1
  97. package/dist/plugins/python/parser.js +0 -414
  98. package/dist/plugins/python/parser.js.map +0 -1
  99. package/dist/plugins/python/symbol-extractor.d.ts +0 -108
  100. package/dist/plugins/python/symbol-extractor.d.ts.map +0 -1
  101. package/dist/plugins/python/symbol-extractor.js +0 -389
  102. package/dist/plugins/python/symbol-extractor.js.map +0 -1
  103. package/dist/plugins/python/tree-sitter-bridge.d.ts +0 -57
  104. package/dist/plugins/python/tree-sitter-bridge.d.ts.map +0 -1
  105. package/dist/plugins/python/tree-sitter-bridge.js +0 -269
  106. package/dist/plugins/python/tree-sitter-bridge.js.map +0 -1
  107. package/dist/plugins/python/types.d.ts +0 -191
  108. package/dist/plugins/python/types.d.ts.map +0 -1
  109. package/dist/plugins/python/types.js +0 -279
  110. package/dist/plugins/python/types.js.map +0 -1
  111. package/dist/plugins/swift/dependency-analyzer.d.ts +0 -33
  112. package/dist/plugins/swift/dependency-analyzer.d.ts.map +0 -1
  113. package/dist/plugins/swift/dependency-analyzer.js +0 -95
  114. package/dist/plugins/swift/dependency-analyzer.js.map +0 -1
  115. package/dist/plugins/swift/index.d.ts +0 -14
  116. package/dist/plugins/swift/index.d.ts.map +0 -1
  117. package/dist/plugins/swift/index.js +0 -19
  118. package/dist/plugins/swift/index.js.map +0 -1
  119. package/dist/plugins/swift/parser.d.ts +0 -164
  120. package/dist/plugins/swift/parser.d.ts.map +0 -1
  121. package/dist/plugins/swift/parser.js +0 -688
  122. package/dist/plugins/swift/parser.js.map +0 -1
  123. package/dist/plugins/swift/swift-bridge/swift-parser +0 -0
  124. package/dist/plugins/swift/symbol-extractor.d.ts +0 -46
  125. package/dist/plugins/swift/symbol-extractor.d.ts.map +0 -1
  126. package/dist/plugins/swift/symbol-extractor.js +0 -187
  127. package/dist/plugins/swift/symbol-extractor.js.map +0 -1
  128. package/dist/plugins/swift/types.d.ts +0 -149
  129. package/dist/plugins/swift/types.d.ts.map +0 -1
  130. package/dist/plugins/swift/types.js +0 -251
  131. package/dist/plugins/swift/types.js.map +0 -1
@@ -1,389 +0,0 @@
1
- /**
2
- * Python 符號提取器
3
- * 從 AST 中提取 class、function、variable 等符號
4
- */
5
- import { SymbolType, createSymbol, createScope } from '../../shared/types/index.js';
6
- import { PythonNodeKind } from './types.js';
7
- import { getNodeText, getFieldNode } from './tree-sitter-bridge.js';
8
- /**
9
- * Python 符號提取器類別
10
- */
11
- export class PythonSymbolExtractor {
12
- /**
13
- * 從 AST 提取所有符號
14
- */
15
- async extractSymbols(ast) {
16
- const symbols = [];
17
- const globalScope = createScope('module', ast.sourceFile);
18
- this.visitNode(ast.root, symbols, globalScope, ast.sourceFile);
19
- return symbols;
20
- }
21
- /**
22
- * 遞歸訪問節點並提取符號
23
- */
24
- visitNode(node, symbols, scope, filePath) {
25
- switch (node.pythonKind) {
26
- case PythonNodeKind.ClassDefinition:
27
- this.extractClassSymbol(node, symbols, scope, filePath);
28
- break;
29
- case PythonNodeKind.FunctionDefinition:
30
- case PythonNodeKind.AsyncFunctionDefinition:
31
- this.extractFunctionSymbol(node, symbols, scope, filePath);
32
- break;
33
- case PythonNodeKind.DecoratedDefinition:
34
- this.handleDecoratedDefinition(node, symbols, scope, filePath);
35
- break;
36
- case PythonNodeKind.Assignment:
37
- case PythonNodeKind.AnnotatedAssignment:
38
- this.extractVariableSymbols(node, symbols, scope, filePath);
39
- break;
40
- case PythonNodeKind.GlobalStatement:
41
- case PythonNodeKind.NonlocalStatement:
42
- // 這些語句不創建新符號,只是引用現有符號
43
- break;
44
- default:
45
- // 遞歸處理子節點
46
- this.visitChildren(node, symbols, scope, filePath);
47
- }
48
- }
49
- /**
50
- * 訪問子節點
51
- */
52
- visitChildren(node, symbols, scope, filePath) {
53
- for (const child of node.children) {
54
- this.visitNode(child, symbols, scope, filePath);
55
- }
56
- }
57
- /**
58
- * 提取類別符號
59
- */
60
- extractClassSymbol(node, symbols, scope, filePath) {
61
- const name = this.getNodeName(node);
62
- if (!name) {
63
- return;
64
- }
65
- const modifiers = this.extractClassModifiers(node);
66
- const superclass = this.extractSuperclass(node);
67
- const implementsProtocols = this.extractImplementedProtocols(node);
68
- const decorators = node.decorators;
69
- const location = this.createLocation(node, filePath);
70
- const symbol = createSymbol(name, SymbolType.Class, location, scope, modifiers, decorators, superclass, implementsProtocols);
71
- symbols.push(symbol);
72
- // 創建類別作用域,遞歸處理類別內部
73
- const classScope = createScope('class', name, scope);
74
- this.visitClassBody(node, symbols, classScope, filePath);
75
- }
76
- /**
77
- * 提取函式符號
78
- */
79
- extractFunctionSymbol(node, symbols, scope, filePath) {
80
- const name = this.getNodeName(node);
81
- if (!name) {
82
- return;
83
- }
84
- const modifiers = this.extractFunctionModifiers(node);
85
- const decorators = node.decorators;
86
- const location = this.createLocation(node, filePath);
87
- const symbol = createSymbol(name, SymbolType.Function, location, scope, modifiers, decorators);
88
- symbols.push(symbol);
89
- // 提取函式參數
90
- this.extractParameters(node, symbols, scope, filePath);
91
- // 創建函式作用域,遞歸處理函式內部
92
- const funcScope = createScope('function', name, scope);
93
- this.visitFunctionBody(node, symbols, funcScope, filePath);
94
- }
95
- /**
96
- * 處理帶裝飾器的定義
97
- */
98
- handleDecoratedDefinition(node, symbols, scope, filePath) {
99
- // 收集裝飾器
100
- const decorators = node.decorators || [];
101
- // 找到被裝飾的定義(class 或 function)
102
- for (const child of node.children) {
103
- const childNode = child;
104
- if (childNode.pythonKind === PythonNodeKind.ClassDefinition
105
- || childNode.pythonKind === PythonNodeKind.FunctionDefinition
106
- || childNode.pythonKind === PythonNodeKind.AsyncFunctionDefinition) {
107
- // 將裝飾器傳遞給子節點
108
- const decoratedNode = {
109
- ...childNode,
110
- decorators: decorators
111
- };
112
- if (childNode.pythonKind === PythonNodeKind.ClassDefinition) {
113
- this.extractClassSymbol(decoratedNode, symbols, scope, filePath);
114
- }
115
- else {
116
- this.extractFunctionSymbol(decoratedNode, symbols, scope, filePath);
117
- }
118
- return;
119
- }
120
- }
121
- }
122
- /**
123
- * 提取變數符號
124
- */
125
- extractVariableSymbols(node, symbols, scope, filePath) {
126
- // 獲取賦值左側的目標
127
- const targets = this.getAssignmentTargets(node);
128
- for (const target of targets) {
129
- const name = target.name;
130
- if (!name || this.isPrivateOrDunder(name)) {
131
- continue;
132
- }
133
- const modifiers = this.extractVariableModifiers(node, name);
134
- const location = this.createLocation(target.node || node, filePath);
135
- // 判斷是常量還是變數
136
- const symbolType = this.isConstant(name) ? SymbolType.Constant : SymbolType.Variable;
137
- const symbol = createSymbol(name, symbolType, location, scope, modifiers);
138
- symbols.push(symbol);
139
- }
140
- }
141
- /**
142
- * 提取函式參數
143
- */
144
- extractParameters(funcNode, symbols, scope, filePath) {
145
- const parametersNode = this.findChildByKind(funcNode, PythonNodeKind.Parameters);
146
- if (!parametersNode) {
147
- return;
148
- }
149
- for (const child of parametersNode.children) {
150
- const childNode = child;
151
- const paramName = this.extractParameterName(childNode);
152
- if (paramName && !this.isSpecialParameter(paramName)) {
153
- const location = this.createLocation(childNode, filePath);
154
- const symbol = createSymbol(paramName, SymbolType.Variable, location, scope, ['parameter']);
155
- symbols.push(symbol);
156
- }
157
- }
158
- }
159
- /**
160
- * 訪問類別主體
161
- */
162
- visitClassBody(classNode, symbols, scope, filePath) {
163
- const bodyNode = this.findChildByKind(classNode, PythonNodeKind.Block);
164
- if (!bodyNode) {
165
- return;
166
- }
167
- for (const child of bodyNode.children) {
168
- this.visitNode(child, symbols, scope, filePath);
169
- }
170
- }
171
- /**
172
- * 訪問函式主體
173
- */
174
- visitFunctionBody(funcNode, symbols, scope, filePath) {
175
- const bodyNode = this.findChildByKind(funcNode, PythonNodeKind.Block);
176
- if (!bodyNode) {
177
- return;
178
- }
179
- for (const child of bodyNode.children) {
180
- this.visitNode(child, symbols, scope, filePath);
181
- }
182
- }
183
- /**
184
- * 獲取節點名稱
185
- */
186
- getNodeName(node) {
187
- const nameNode = getFieldNode(node, 'name');
188
- if (nameNode) {
189
- return getNodeText(nameNode);
190
- }
191
- // 嘗試從 properties 獲取
192
- if (node.properties.name) {
193
- return node.properties.name;
194
- }
195
- return undefined;
196
- }
197
- /**
198
- * 提取類別修飾符
199
- */
200
- extractClassModifiers(node) {
201
- const modifiers = [];
202
- const decorators = node.decorators || [];
203
- // 檢查常見的類別裝飾器
204
- if (decorators.includes('abstractmethod') || decorators.includes('abc.abstractmethod')) {
205
- modifiers.push('abstract');
206
- }
207
- if (decorators.includes('dataclass') || decorators.includes('dataclasses.dataclass')) {
208
- modifiers.push('dataclass');
209
- }
210
- if (decorators.includes('final') || decorators.includes('typing.final')) {
211
- modifiers.push('final');
212
- }
213
- return modifiers;
214
- }
215
- /**
216
- * 提取函式修飾符
217
- */
218
- extractFunctionModifiers(node) {
219
- const modifiers = [];
220
- // async 函式
221
- if (node.pythonKind === PythonNodeKind.AsyncFunctionDefinition) {
222
- modifiers.push('async');
223
- }
224
- const decorators = node.decorators || [];
225
- // 檢查常見的函式裝飾器
226
- if (decorators.includes('staticmethod')) {
227
- modifiers.push('static');
228
- }
229
- if (decorators.includes('classmethod')) {
230
- modifiers.push('classmethod');
231
- }
232
- if (decorators.includes('property')) {
233
- modifiers.push('property');
234
- }
235
- if (decorators.includes('abstractmethod') || decorators.includes('abc.abstractmethod')) {
236
- modifiers.push('abstract');
237
- }
238
- return modifiers;
239
- }
240
- /**
241
- * 提取變數修飾符
242
- */
243
- extractVariableModifiers(node, name) {
244
- const modifiers = [];
245
- // 檢查是否為常量(全大寫)
246
- if (this.isConstant(name)) {
247
- modifiers.push('const');
248
- }
249
- // 檢查是否有型別註解
250
- if (node.pythonKind === PythonNodeKind.AnnotatedAssignment) {
251
- modifiers.push('typed');
252
- }
253
- return modifiers;
254
- }
255
- /**
256
- * 提取父類別
257
- */
258
- extractSuperclass(node) {
259
- const superclassesNode = node.treeSitterNode.childForFieldName('superclasses');
260
- if (!superclassesNode) {
261
- return undefined;
262
- }
263
- // 取第一個父類別
264
- const firstArg = superclassesNode.namedChild(0);
265
- if (firstArg) {
266
- return firstArg.text;
267
- }
268
- return undefined;
269
- }
270
- /**
271
- * 提取實現的協議/介面
272
- */
273
- extractImplementedProtocols(node) {
274
- const superclassesNode = node.treeSitterNode.childForFieldName('superclasses');
275
- if (!superclassesNode) {
276
- return undefined;
277
- }
278
- const protocols = [];
279
- for (let i = 1; i < superclassesNode.namedChildCount; i++) {
280
- const child = superclassesNode.namedChild(i);
281
- if (child) {
282
- protocols.push(child.text);
283
- }
284
- }
285
- return protocols.length > 0 ? protocols : undefined;
286
- }
287
- /**
288
- * 獲取賦值目標
289
- */
290
- getAssignmentTargets(node) {
291
- const targets = [];
292
- // 尋找賦值左側
293
- const leftNode = node.treeSitterNode.childForFieldName('left');
294
- if (leftNode) {
295
- // 簡單變數賦值
296
- if (leftNode.type === 'identifier') {
297
- targets.push({ name: leftNode.text });
298
- }
299
- // 元組解包
300
- else if (leftNode.type === 'pattern_list' || leftNode.type === 'tuple_pattern') {
301
- for (let i = 0; i < leftNode.namedChildCount; i++) {
302
- const child = leftNode.namedChild(i);
303
- if (child?.type === 'identifier') {
304
- targets.push({ name: child.text });
305
- }
306
- }
307
- }
308
- }
309
- // annotated_assignment 的情況
310
- const nameNode = node.treeSitterNode.childForFieldName('name');
311
- if (nameNode?.type === 'identifier') {
312
- targets.push({ name: nameNode.text });
313
- }
314
- return targets;
315
- }
316
- /**
317
- * 提取參數名稱
318
- */
319
- extractParameterName(node) {
320
- const nodeType = node.pythonKind;
321
- switch (nodeType) {
322
- case PythonNodeKind.Identifier:
323
- return getNodeText(node);
324
- case PythonNodeKind.Parameter:
325
- case PythonNodeKind.TypedParameter:
326
- case PythonNodeKind.DefaultParameter:
327
- case PythonNodeKind.TypedDefaultParameter: {
328
- const nameNode = node.treeSitterNode.childForFieldName('name');
329
- return nameNode?.text;
330
- }
331
- case PythonNodeKind.ListSplatPattern:
332
- case PythonNodeKind.DictionarySplatPattern: {
333
- // *args, **kwargs
334
- const child = node.treeSitterNode.namedChild(0);
335
- return child?.text;
336
- }
337
- default:
338
- return undefined;
339
- }
340
- }
341
- /**
342
- * 查找指定類型的子節點
343
- */
344
- findChildByKind(node, kind) {
345
- for (const child of node.children) {
346
- const childNode = child;
347
- if (childNode.pythonKind === kind) {
348
- return childNode;
349
- }
350
- }
351
- return undefined;
352
- }
353
- /**
354
- * 創建位置資訊
355
- */
356
- createLocation(node, filePath) {
357
- return {
358
- filePath,
359
- range: node.range
360
- };
361
- }
362
- /**
363
- * 檢查是否為常量(全大寫命名)
364
- */
365
- isConstant(name) {
366
- return /^[A-Z][A-Z0-9_]*$/.test(name);
367
- }
368
- /**
369
- * 檢查是否為私有或 dunder 名稱
370
- */
371
- isPrivateOrDunder(name) {
372
- // 跳過 _single_leading_underscore 和 __double_leading_underscore
373
- // 但保留 __dunder__ 方法
374
- return name.startsWith('_') && !name.endsWith('_');
375
- }
376
- /**
377
- * 檢查是否為特殊參數
378
- */
379
- isSpecialParameter(name) {
380
- return name === 'self' || name === 'cls';
381
- }
382
- }
383
- /**
384
- * 創建符號提取器實例
385
- */
386
- export function createSymbolExtractor() {
387
- return new PythonSymbolExtractor();
388
- }
389
- //# sourceMappingURL=symbol-extractor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"symbol-extractor.js","sourceRoot":"","sources":["../../../src/plugins/python/symbol-extractor.ts"],"names":[],"mappings":"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"}
@@ -1,57 +0,0 @@
1
- /**
2
- * tree-sitter 橋接層
3
- * 負責 Parser 初始化和節點轉換
4
- */
5
- import { Parser as TreeSitterParser, type Node as TreeSitterNode, type Tree as TreeSitterTree } from 'web-tree-sitter';
6
- import { type PythonASTNode, type PythonAST, PythonNodeKind } from './types.js';
7
- /**
8
- * 初始化 tree-sitter Parser
9
- * 使用單例模式,確保只初始化一次
10
- */
11
- export declare function initializeParser(): Promise<TreeSitterParser>;
12
- /**
13
- * 獲取 Parser 實例
14
- * @throws 如果 Parser 未初始化
15
- */
16
- export declare function getParser(): TreeSitterParser;
17
- /**
18
- * 檢查 Parser 是否已初始化
19
- */
20
- export declare function isParserInitialized(): boolean;
21
- /**
22
- * 解析 Python 程式碼
23
- */
24
- export declare function parseCode(code: string): Promise<TreeSitterTree>;
25
- /**
26
- * 轉換 tree-sitter Node 為 PythonASTNode
27
- */
28
- export declare function convertNode(node: TreeSitterNode, sourceFile: string): PythonASTNode;
29
- /**
30
- * 創建 PythonAST
31
- */
32
- export declare function createPythonAST(tree: TreeSitterTree, sourceFile: string, parseTime: number): PythonAST;
33
- /**
34
- * 遍歷 AST 節點
35
- */
36
- export declare function traverseAST(node: PythonASTNode, callback: (node: PythonASTNode) => boolean | void): void;
37
- /**
38
- * 查找特定類型的節點
39
- */
40
- export declare function findNodesByKind(root: PythonASTNode, kind: PythonNodeKind): PythonASTNode[];
41
- /**
42
- * 查找包含指定位置的節點
43
- */
44
- export declare function findNodeAtPosition(root: PythonASTNode, line: number, column: number): PythonASTNode | null;
45
- /**
46
- * 獲取節點的文字內容
47
- */
48
- export declare function getNodeText(node: PythonASTNode): string;
49
- /**
50
- * 獲取節點的指定欄位
51
- */
52
- export declare function getFieldNode(node: PythonASTNode, fieldName: string): PythonASTNode | null;
53
- /**
54
- * 釋放 Parser 資源
55
- */
56
- export declare function disposeParser(): Promise<void>;
57
- //# sourceMappingURL=tree-sitter-bridge.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tree-sitter-bridge.d.ts","sourceRoot":"","sources":["../../../src/plugins/python/tree-sitter-bridge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAkC,KAAK,IAAI,IAAI,cAAc,EAAE,KAAK,IAAI,IAAI,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAIvJ,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,cAAc,EAGf,MAAM,YAAY,CAAC;AAcpB;;;GAGG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAyBlE;AAwBD;;;GAGG;AACH,wBAAgB,SAAS,IAAI,gBAAgB,CAK5C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAOrE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,aAAa,CA+DnF;AAwBD;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAkBtG;AAaD;;GAEG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,GAAG,IAAI,GAChD,IAAI,CASN;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,GAAG,aAAa,EAAE,CAU1F;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAgB1G;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAEvD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAgBzF;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAQnD"}