agent-ide 0.1.7 → 0.1.8
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/dist/core/analysis/complexity-analyzer.d.ts.map +1 -1
- package/dist/core/analysis/complexity-analyzer.js +3 -2
- package/dist/core/analysis/complexity-analyzer.js.map +1 -1
- package/dist/core/analysis/dead-code-detector.d.ts +34 -10
- package/dist/core/analysis/dead-code-detector.d.ts.map +1 -1
- package/dist/core/analysis/dead-code-detector.js +121 -82
- package/dist/core/analysis/dead-code-detector.js.map +1 -1
- package/dist/core/analysis/index.d.ts +1 -1
- package/dist/core/analysis/index.d.ts.map +1 -1
- package/dist/core/dependency/dependency-analyzer.d.ts.map +1 -1
- package/dist/core/dependency/dependency-analyzer.js +11 -4
- package/dist/core/dependency/dependency-analyzer.js.map +1 -1
- package/dist/core/indexing/index-engine.d.ts +9 -0
- package/dist/core/indexing/index-engine.d.ts.map +1 -1
- package/dist/core/indexing/index-engine.js +60 -1
- package/dist/core/indexing/index-engine.js.map +1 -1
- package/dist/core/refactor/extract-function.d.ts +26 -4
- package/dist/core/refactor/extract-function.d.ts.map +1 -1
- package/dist/core/refactor/extract-function.js +300 -48
- package/dist/core/refactor/extract-function.js.map +1 -1
- package/dist/infrastructure/parser/base.d.ts +10 -0
- package/dist/infrastructure/parser/base.d.ts.map +1 -1
- package/dist/infrastructure/parser/base.js +39 -0
- package/dist/infrastructure/parser/base.js.map +1 -1
- package/dist/infrastructure/parser/interface.d.ts +12 -0
- package/dist/infrastructure/parser/interface.d.ts.map +1 -1
- package/dist/infrastructure/parser/interface.js +2 -0
- package/dist/infrastructure/parser/interface.js.map +1 -1
- package/dist/interfaces/cli/cli.d.ts +13 -1
- package/dist/interfaces/cli/cli.d.ts.map +1 -1
- package/dist/interfaces/cli/cli.js +155 -15
- package/dist/interfaces/cli/cli.js.map +1 -1
- package/dist/interfaces/cli/output-formatter.d.ts +55 -0
- package/dist/interfaces/cli/output-formatter.d.ts.map +1 -0
- package/dist/interfaces/cli/output-formatter.js +195 -0
- package/dist/interfaces/cli/output-formatter.js.map +1 -0
- package/dist/plugins/javascript/parser.d.ts +10 -0
- package/dist/plugins/javascript/parser.d.ts.map +1 -1
- package/dist/plugins/javascript/parser.js +62 -0
- package/dist/plugins/javascript/parser.js.map +1 -1
- package/dist/plugins/typescript/parser.d.ts +10 -0
- package/dist/plugins/typescript/parser.d.ts.map +1 -1
- package/dist/plugins/typescript/parser.js +59 -0
- package/dist/plugins/typescript/parser.js.map +1 -1
- package/package.json +8 -14
- package/dist/core/performance/analyzer.d.ts +0 -62
- package/dist/core/performance/analyzer.d.ts.map +0 -1
- package/dist/core/performance/analyzer.js +0 -378
- package/dist/core/performance/analyzer.js.map +0 -1
- package/dist/core/performance/cache-manager.d.ts +0 -161
- package/dist/core/performance/cache-manager.d.ts.map +0 -1
- package/dist/core/performance/cache-manager.js +0 -375
- package/dist/core/performance/cache-manager.js.map +0 -1
- package/dist/core/performance/index.d.ts +0 -14
- package/dist/core/performance/index.d.ts.map +0 -1
- package/dist/core/performance/index.js +0 -17
- package/dist/core/performance/index.js.map +0 -1
- package/dist/core/performance/interfaces.d.ts +0 -188
- package/dist/core/performance/interfaces.d.ts.map +0 -1
- package/dist/core/performance/interfaces.js +0 -17
- package/dist/core/performance/interfaces.js.map +0 -1
- package/dist/core/performance/memory-manager.d.ts +0 -176
- package/dist/core/performance/memory-manager.d.ts.map +0 -1
- package/dist/core/performance/memory-manager.js +0 -364
- package/dist/core/performance/memory-manager.js.map +0 -1
- package/dist/core/performance/monitor.d.ts +0 -92
- package/dist/core/performance/monitor.d.ts.map +0 -1
- package/dist/core/performance/monitor.js +0 -228
- package/dist/core/performance/monitor.js.map +0 -1
- package/dist/plugins/swift/index.d.ts +0 -11
- package/dist/plugins/swift/index.d.ts.map +0 -1
- package/dist/plugins/swift/index.js +0 -15
- package/dist/plugins/swift/index.js.map +0 -1
- package/dist/plugins/swift/parser.d.ts +0 -98
- package/dist/plugins/swift/parser.d.ts.map +0 -1
- package/dist/plugins/swift/parser.js +0 -612
- package/dist/plugins/swift/parser.js.map +0 -1
- package/dist/plugins/swift/types.d.ts +0 -196
- package/dist/plugins/swift/types.d.ts.map +0 -1
- package/dist/plugins/swift/types.js +0 -268
- package/dist/plugins/swift/types.js.map +0 -1
|
@@ -1,228 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Performance Monitor 實作
|
|
3
|
-
* 提供效能監控和指標收集功能
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* 預設效能監控器實作
|
|
7
|
-
*/
|
|
8
|
-
export class DefaultPerformanceMonitor {
|
|
9
|
-
startTime = 0;
|
|
10
|
-
startMemory = null;
|
|
11
|
-
isMonitoring = false;
|
|
12
|
-
memorySnapshots = [];
|
|
13
|
-
/**
|
|
14
|
-
* 開始監控
|
|
15
|
-
*/
|
|
16
|
-
start() {
|
|
17
|
-
this.startTime = Date.now();
|
|
18
|
-
this.startMemory = process.memoryUsage();
|
|
19
|
-
this.isMonitoring = true;
|
|
20
|
-
this.memorySnapshots = [];
|
|
21
|
-
// 記錄初始記憶體快照
|
|
22
|
-
this.recordMemorySnapshot();
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* 停止監控
|
|
26
|
-
*/
|
|
27
|
-
stop() {
|
|
28
|
-
if (!this.isMonitoring) {
|
|
29
|
-
throw new Error('監控尚未開始');
|
|
30
|
-
}
|
|
31
|
-
const endTime = Date.now();
|
|
32
|
-
const endMemory = process.memoryUsage();
|
|
33
|
-
this.isMonitoring = false;
|
|
34
|
-
// 記錄最終記憶體快照
|
|
35
|
-
this.recordMemorySnapshot();
|
|
36
|
-
const duration = endTime - this.startTime;
|
|
37
|
-
const memoryUsage = this.startMemory ?
|
|
38
|
-
endMemory.heapUsed - this.startMemory.heapUsed :
|
|
39
|
-
endMemory.heapUsed;
|
|
40
|
-
// 計算 CPU 使用率(簡化版本)
|
|
41
|
-
const cpuUsage = this.estimateCpuUsage();
|
|
42
|
-
return {
|
|
43
|
-
duration,
|
|
44
|
-
memoryUsage,
|
|
45
|
-
cpuUsage,
|
|
46
|
-
throughput: duration > 0 ? 1000 / duration : 0, // 每秒操作數
|
|
47
|
-
latency: duration
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* 記錄記憶體快照
|
|
52
|
-
*/
|
|
53
|
-
recordMemorySnapshot() {
|
|
54
|
-
const memory = process.memoryUsage();
|
|
55
|
-
const snapshot = {
|
|
56
|
-
timestamp: new Date(),
|
|
57
|
-
heapUsed: memory.heapUsed,
|
|
58
|
-
heapTotal: memory.heapTotal,
|
|
59
|
-
rss: memory.rss,
|
|
60
|
-
external: memory.external,
|
|
61
|
-
arrayBuffers: memory.arrayBuffers
|
|
62
|
-
};
|
|
63
|
-
this.memorySnapshots.push(snapshot);
|
|
64
|
-
return snapshot;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* 獲取當前指標
|
|
68
|
-
*/
|
|
69
|
-
getCurrentMetrics() {
|
|
70
|
-
if (!this.isMonitoring) {
|
|
71
|
-
throw new Error('監控尚未開始');
|
|
72
|
-
}
|
|
73
|
-
const currentTime = Date.now();
|
|
74
|
-
const currentMemory = process.memoryUsage();
|
|
75
|
-
const duration = currentTime - this.startTime;
|
|
76
|
-
const memoryUsage = this.startMemory ?
|
|
77
|
-
currentMemory.heapUsed - this.startMemory.heapUsed :
|
|
78
|
-
currentMemory.heapUsed;
|
|
79
|
-
return {
|
|
80
|
-
duration,
|
|
81
|
-
memoryUsage,
|
|
82
|
-
cpuUsage: this.estimateCpuUsage(),
|
|
83
|
-
throughput: duration > 0 ? 1000 / duration : 0,
|
|
84
|
-
latency: duration
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* 獲取記憶體快照歷史
|
|
89
|
-
*/
|
|
90
|
-
getMemorySnapshots() {
|
|
91
|
-
return [...this.memorySnapshots];
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* 清理快照
|
|
95
|
-
*/
|
|
96
|
-
clearSnapshots() {
|
|
97
|
-
this.memorySnapshots = [];
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* 估算 CPU 使用率(簡化版本)
|
|
101
|
-
*/
|
|
102
|
-
estimateCpuUsage() {
|
|
103
|
-
if (this.memorySnapshots.length < 2) {
|
|
104
|
-
return 0;
|
|
105
|
-
}
|
|
106
|
-
// 基於記憶體增長率和時間間隔的簡化 CPU 估算
|
|
107
|
-
const recent = this.memorySnapshots.slice(-2);
|
|
108
|
-
const timeDiff = recent[1].timestamp.getTime() - recent[0].timestamp.getTime();
|
|
109
|
-
const memoryDiff = recent[1].heapUsed - recent[0].heapUsed;
|
|
110
|
-
if (timeDiff <= 0)
|
|
111
|
-
return 0;
|
|
112
|
-
// 簡化的 CPU 使用率計算(基於記憶體分配速度)
|
|
113
|
-
const allocationRate = memoryDiff / timeDiff; // 每毫秒的記憶體分配
|
|
114
|
-
return Math.min(100, Math.max(0, allocationRate * 10000)); // 轉換為百分比
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* 批量效能監控器
|
|
119
|
-
* 用於監控多個並行操作
|
|
120
|
-
*/
|
|
121
|
-
export class BatchPerformanceMonitor {
|
|
122
|
-
monitors = new Map();
|
|
123
|
-
/**
|
|
124
|
-
* 開始監控特定操作
|
|
125
|
-
*/
|
|
126
|
-
startOperation(operationId) {
|
|
127
|
-
const monitor = new DefaultPerformanceMonitor();
|
|
128
|
-
monitor.start();
|
|
129
|
-
this.monitors.set(operationId, monitor);
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* 停止監控特定操作
|
|
133
|
-
*/
|
|
134
|
-
stopOperation(operationId) {
|
|
135
|
-
const monitor = this.monitors.get(operationId);
|
|
136
|
-
if (!monitor) {
|
|
137
|
-
return null;
|
|
138
|
-
}
|
|
139
|
-
const metrics = monitor.stop();
|
|
140
|
-
this.monitors.delete(operationId);
|
|
141
|
-
return metrics;
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* 獲取所有正在監控的操作
|
|
145
|
-
*/
|
|
146
|
-
getActiveOperations() {
|
|
147
|
-
return Array.from(this.monitors.keys());
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* 獲取操作的當前指標
|
|
151
|
-
*/
|
|
152
|
-
getOperationMetrics(operationId) {
|
|
153
|
-
const monitor = this.monitors.get(operationId);
|
|
154
|
-
return monitor ? monitor.getCurrentMetrics() : null;
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* 停止所有監控
|
|
158
|
-
*/
|
|
159
|
-
stopAll() {
|
|
160
|
-
const results = new Map();
|
|
161
|
-
for (const [operationId, monitor] of this.monitors) {
|
|
162
|
-
try {
|
|
163
|
-
results.set(operationId, monitor.stop());
|
|
164
|
-
}
|
|
165
|
-
catch (error) {
|
|
166
|
-
// 忽略已停止的監控器
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
this.monitors.clear();
|
|
170
|
-
return results;
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* 清理資源
|
|
174
|
-
*/
|
|
175
|
-
dispose() {
|
|
176
|
-
this.monitors.clear();
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* 全域效能監控器實例
|
|
181
|
-
*/
|
|
182
|
-
export const globalPerformanceMonitor = new DefaultPerformanceMonitor();
|
|
183
|
-
/**
|
|
184
|
-
* 工具函式:測量函式執行時間
|
|
185
|
-
*/
|
|
186
|
-
export async function measureAsync(operation, operationName) {
|
|
187
|
-
const monitor = new DefaultPerformanceMonitor();
|
|
188
|
-
monitor.start();
|
|
189
|
-
try {
|
|
190
|
-
const result = await operation();
|
|
191
|
-
const metrics = monitor.stop();
|
|
192
|
-
if (operationName) {
|
|
193
|
-
console.debug(`${operationName} 執行完成:`, {
|
|
194
|
-
duration: `${metrics.duration}ms`,
|
|
195
|
-
memory: `${(metrics.memoryUsage / 1024 / 1024).toFixed(2)}MB`,
|
|
196
|
-
throughput: `${metrics.throughput?.toFixed(2)}/s`
|
|
197
|
-
});
|
|
198
|
-
}
|
|
199
|
-
return { result, metrics };
|
|
200
|
-
}
|
|
201
|
-
catch (error) {
|
|
202
|
-
monitor.stop(); // 確保清理
|
|
203
|
-
throw error;
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
/**
|
|
207
|
-
* 工具函式:測量同步函式執行時間
|
|
208
|
-
*/
|
|
209
|
-
export function measureSync(operation, operationName) {
|
|
210
|
-
const monitor = new DefaultPerformanceMonitor();
|
|
211
|
-
monitor.start();
|
|
212
|
-
try {
|
|
213
|
-
const result = operation();
|
|
214
|
-
const metrics = monitor.stop();
|
|
215
|
-
if (operationName) {
|
|
216
|
-
console.debug(`${operationName} 執行完成:`, {
|
|
217
|
-
duration: `${metrics.duration}ms`,
|
|
218
|
-
memory: `${(metrics.memoryUsage / 1024 / 1024).toFixed(2)}MB`
|
|
219
|
-
});
|
|
220
|
-
}
|
|
221
|
-
return { result, metrics };
|
|
222
|
-
}
|
|
223
|
-
catch (error) {
|
|
224
|
-
monitor.stop(); // 確保清理
|
|
225
|
-
throw error;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
//# sourceMappingURL=monitor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../../src/core/performance/monitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Swift Parser 插件匯出
|
|
3
|
-
* 提供 Swift Parser 的統一匯出介面
|
|
4
|
-
*/
|
|
5
|
-
export { SwiftParser } from './parser.js';
|
|
6
|
-
export type { SwiftAST, SwiftASTNode, SwiftSymbol, SwiftParseError as SwiftParseErrorType, SwiftCompilerOptions } from './types.js';
|
|
7
|
-
export { SwiftNodeType, SwiftSymbolType, SwiftVisibility, SwiftParseError, DEFAULT_SWIFT_COMPILER_OPTIONS, createSwiftASTNode, createSwiftSymbol, createSwiftParseError, mapSwiftSymbolTypeToSymbolType, isDeclarationNode, isTypeDeclarationNode, isValidSwiftIdentifier, isSwiftKeyword, createSwiftRange, positionToRange } from './types.js';
|
|
8
|
-
import { SwiftParser } from './parser.js';
|
|
9
|
-
export declare function createSwiftParser(): SwiftParser;
|
|
10
|
-
export default SwiftParser;
|
|
11
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/swift/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,YAAY,EACV,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,eAAe,IAAI,mBAAmB,EACtC,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EACf,eAAe,EACf,8BAA8B,EAC9B,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,8BAA8B,EAC9B,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,gBAAgB,EAChB,eAAe,EAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,wBAAgB,iBAAiB,IAAI,WAAW,CAE/C;AAGD,eAAe,WAAW,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Swift Parser 插件匯出
|
|
3
|
-
* 提供 Swift Parser 的統一匯出介面
|
|
4
|
-
*/
|
|
5
|
-
// 主要類別和介面
|
|
6
|
-
export { SwiftParser } from './parser.js';
|
|
7
|
-
export { SwiftNodeType, SwiftSymbolType, SwiftVisibility, SwiftParseError, DEFAULT_SWIFT_COMPILER_OPTIONS, createSwiftASTNode, createSwiftSymbol, createSwiftParseError, mapSwiftSymbolTypeToSymbolType, isDeclarationNode, isTypeDeclarationNode, isValidSwiftIdentifier, isSwiftKeyword, createSwiftRange, positionToRange } from './types.js';
|
|
8
|
-
// 工廠函式
|
|
9
|
-
import { SwiftParser } from './parser.js';
|
|
10
|
-
export function createSwiftParser() {
|
|
11
|
-
return new SwiftParser();
|
|
12
|
-
}
|
|
13
|
-
// 預設匯出
|
|
14
|
-
export default SwiftParser;
|
|
15
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/swift/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,UAAU;AACV,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAW1C,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EACf,eAAe,EACf,8BAA8B,EAC9B,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,8BAA8B,EAC9B,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,gBAAgB,EAChB,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,OAAO;AACP,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,UAAU,iBAAiB;IAC/B,OAAO,IAAI,WAAW,EAAE,CAAC;AAC3B,CAAC;AAED,OAAO;AACP,eAAe,WAAW,CAAC"}
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Swift Parser 主要實作
|
|
3
|
-
* 實作 ParserPlugin 介面,使用 web-tree-sitter 解析 Swift 程式碼
|
|
4
|
-
*/
|
|
5
|
-
import { ParserPlugin, CodeEdit, Definition, Usage, ValidationResult } from '../../infrastructure/parser/index.js';
|
|
6
|
-
import type { AST, Symbol, Reference, Dependency, Position, Range } from '../../shared/types/index.js';
|
|
7
|
-
/**
|
|
8
|
-
* Swift Parser 實作
|
|
9
|
-
* 基於 web-tree-sitter 的 Swift 程式碼解析器
|
|
10
|
-
*/
|
|
11
|
-
export declare class SwiftParser implements ParserPlugin {
|
|
12
|
-
readonly name = "swift";
|
|
13
|
-
readonly version = "1.0.0";
|
|
14
|
-
readonly supportedExtensions: readonly [".swift"];
|
|
15
|
-
readonly supportedLanguages: readonly ["swift"];
|
|
16
|
-
private initialized;
|
|
17
|
-
private parser;
|
|
18
|
-
private language;
|
|
19
|
-
constructor();
|
|
20
|
-
/**
|
|
21
|
-
* 解析 Swift 程式碼
|
|
22
|
-
*/
|
|
23
|
-
parse(code: string, filePath: string): Promise<AST>;
|
|
24
|
-
/**
|
|
25
|
-
* 基本的程式碼解析(暫時實作)
|
|
26
|
-
*/
|
|
27
|
-
private parseCodeBasic;
|
|
28
|
-
/**
|
|
29
|
-
* 提取符號
|
|
30
|
-
*/
|
|
31
|
-
extractSymbols(ast: AST): Promise<Symbol[]>;
|
|
32
|
-
/**
|
|
33
|
-
* 從節點提取符號
|
|
34
|
-
*/
|
|
35
|
-
private extractSymbolsFromNode;
|
|
36
|
-
/**
|
|
37
|
-
* 從節點建立符號
|
|
38
|
-
*/
|
|
39
|
-
private createSymbolFromNode;
|
|
40
|
-
/**
|
|
41
|
-
* 從節點提取名稱
|
|
42
|
-
*/
|
|
43
|
-
private extractNameFromNode;
|
|
44
|
-
/**
|
|
45
|
-
* 將節點型別轉換為符號型別
|
|
46
|
-
*/
|
|
47
|
-
private nodeTypeToSymbolType;
|
|
48
|
-
/**
|
|
49
|
-
* 查找符號引用
|
|
50
|
-
*/
|
|
51
|
-
findReferences(ast: AST, symbol: Symbol): Promise<Reference[]>;
|
|
52
|
-
/**
|
|
53
|
-
* 提取依賴關係
|
|
54
|
-
*/
|
|
55
|
-
extractDependencies(ast: AST): Promise<Dependency[]>;
|
|
56
|
-
/**
|
|
57
|
-
* 從節點提取依賴關係
|
|
58
|
-
*/
|
|
59
|
-
private extractDependenciesFromNode;
|
|
60
|
-
/**
|
|
61
|
-
* 提取 import 名稱
|
|
62
|
-
*/
|
|
63
|
-
private extractImportName;
|
|
64
|
-
/**
|
|
65
|
-
* 重新命名符號
|
|
66
|
-
*/
|
|
67
|
-
rename(ast: AST, position: Position, newName: string): Promise<CodeEdit[]>;
|
|
68
|
-
/**
|
|
69
|
-
* 提取函式重構
|
|
70
|
-
*/
|
|
71
|
-
extractFunction(ast: AST, selection: Range): Promise<CodeEdit[]>;
|
|
72
|
-
/**
|
|
73
|
-
* 查找定義
|
|
74
|
-
*/
|
|
75
|
-
findDefinition(ast: AST, position: Position): Promise<Definition | null>;
|
|
76
|
-
/**
|
|
77
|
-
* 查找使用位置
|
|
78
|
-
*/
|
|
79
|
-
findUsages(ast: AST, symbol: Symbol): Promise<Usage[]>;
|
|
80
|
-
/**
|
|
81
|
-
* 驗證插件狀態
|
|
82
|
-
*/
|
|
83
|
-
validate(): Promise<ValidationResult>;
|
|
84
|
-
/**
|
|
85
|
-
* 清理資源
|
|
86
|
-
*/
|
|
87
|
-
dispose(): Promise<void>;
|
|
88
|
-
private validateInput;
|
|
89
|
-
private validateRenameInput;
|
|
90
|
-
private findSymbolAtPosition;
|
|
91
|
-
private isPositionInRange;
|
|
92
|
-
/**
|
|
93
|
-
* 從位置提取標識符名稱
|
|
94
|
-
*/
|
|
95
|
-
private extractIdentifierAtPosition;
|
|
96
|
-
private swiftSymbolTypeToDefinitionKind;
|
|
97
|
-
}
|
|
98
|
-
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/plugins/swift/parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,KAAK,EACL,gBAAgB,EAOjB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EACV,GAAG,EACH,MAAM,EACN,SAAS,EACT,UAAU,EACV,QAAQ,EACR,KAAK,EACN,MAAM,6BAA6B,CAAC;AA+BrC;;;GAGG;AACH,qBAAa,WAAY,YAAW,YAAY;IAC9C,SAAgB,IAAI,WAAW;IAC/B,SAAgB,OAAO,WAAW;IAClC,SAAgB,mBAAmB,sBAAuB;IAC1D,SAAgB,kBAAkB,qBAAsB;IAExD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,QAAQ,CAAa;;IAM7B;;OAEG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA+BzD;;OAEG;IACH,OAAO,CAAC,cAAc;IAsHtB;;OAEG;IACG,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAUjD;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAc9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAW5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAoD3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAyB5B;;OAEG;IACG,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAkEpE;;OAEG;IACG,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAU1D;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAoBnC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoBzB;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAwBhF;;OAEG;IACG,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAKtE;;OAEG;IACG,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAqC9E;;OAEG;IACG,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAQ5D;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAoB3C;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ9B,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,mBAAmB;YAUb,oBAAoB;IAqDlC,OAAO,CAAC,iBAAiB;IAgBzB;;OAEG;IACH,OAAO,CAAC,2BAA2B;IA6CnC,OAAO,CAAC,+BAA+B;CAkCxC"}
|