agent-ide 0.8.2 → 0.9.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 (177) hide show
  1. package/dist/core/change-signature/call-site-updater.d.ts +108 -0
  2. package/dist/core/change-signature/call-site-updater.d.ts.map +1 -0
  3. package/dist/core/change-signature/call-site-updater.js +347 -0
  4. package/dist/core/change-signature/call-site-updater.js.map +1 -0
  5. package/dist/core/change-signature/change-signature-service.d.ts +4 -55
  6. package/dist/core/change-signature/change-signature-service.d.ts.map +1 -1
  7. package/dist/core/change-signature/change-signature-service.js +17 -483
  8. package/dist/core/change-signature/change-signature-service.js.map +1 -1
  9. package/dist/core/change-signature/index.d.ts +4 -0
  10. package/dist/core/change-signature/index.d.ts.map +1 -1
  11. package/dist/core/change-signature/index.js +5 -0
  12. package/dist/core/change-signature/index.js.map +1 -1
  13. package/dist/core/change-signature/signature-transformer.d.ts +20 -0
  14. package/dist/core/change-signature/signature-transformer.d.ts.map +1 -0
  15. package/dist/core/change-signature/signature-transformer.js +91 -0
  16. package/dist/core/change-signature/signature-transformer.js.map +1 -0
  17. package/dist/core/change-signature/signature-validator.d.ts +30 -0
  18. package/dist/core/change-signature/signature-validator.d.ts.map +1 -0
  19. package/dist/core/change-signature/signature-validator.js +152 -0
  20. package/dist/core/change-signature/signature-validator.js.map +1 -0
  21. package/dist/core/change-signature/utils.d.ts +19 -0
  22. package/dist/core/change-signature/utils.d.ts.map +1 -0
  23. package/dist/core/change-signature/utils.js +23 -0
  24. package/dist/core/change-signature/utils.js.map +1 -0
  25. package/dist/core/cycles/cycle-detector.d.ts.map +1 -1
  26. package/dist/core/cycles/cycle-detector.js +16 -8
  27. package/dist/core/cycles/cycle-detector.js.map +1 -1
  28. package/dist/core/cycles/index.d.ts +1 -1
  29. package/dist/core/cycles/index.d.ts.map +1 -1
  30. package/dist/core/cycles/index.js +1 -1
  31. package/dist/core/cycles/index.js.map +1 -1
  32. package/dist/core/cycles/types.d.ts +20 -4
  33. package/dist/core/cycles/types.d.ts.map +1 -1
  34. package/dist/core/cycles/types.js +22 -4
  35. package/dist/core/cycles/types.js.map +1 -1
  36. package/dist/core/deadcode/dead-code-remover.js +4 -4
  37. package/dist/core/deadcode/dead-code-remover.js.map +1 -1
  38. package/dist/core/impact/dependency-extractor.d.ts +25 -0
  39. package/dist/core/impact/dependency-extractor.d.ts.map +1 -0
  40. package/dist/core/impact/dependency-extractor.js +65 -0
  41. package/dist/core/impact/dependency-extractor.js.map +1 -0
  42. package/dist/core/impact/file-scanner.d.ts +52 -0
  43. package/dist/core/impact/file-scanner.d.ts.map +1 -0
  44. package/dist/core/impact/file-scanner.js +131 -0
  45. package/dist/core/impact/file-scanner.js.map +1 -0
  46. package/dist/core/impact/impact-analyzer.d.ts +3 -64
  47. package/dist/core/impact/impact-analyzer.d.ts.map +1 -1
  48. package/dist/core/impact/impact-analyzer.js +13 -312
  49. package/dist/core/impact/impact-analyzer.js.map +1 -1
  50. package/dist/core/impact/index.d.ts +3 -0
  51. package/dist/core/impact/index.d.ts.map +1 -1
  52. package/dist/core/impact/index.js +3 -0
  53. package/dist/core/impact/index.js.map +1 -1
  54. package/dist/core/impact/path-resolver.d.ts +35 -0
  55. package/dist/core/impact/path-resolver.d.ts.map +1 -0
  56. package/dist/core/impact/path-resolver.js +166 -0
  57. package/dist/core/impact/path-resolver.js.map +1 -0
  58. package/dist/core/move/file-scanner.d.ts +48 -0
  59. package/dist/core/move/file-scanner.d.ts.map +1 -0
  60. package/dist/core/move/file-scanner.js +137 -0
  61. package/dist/core/move/file-scanner.js.map +1 -0
  62. package/dist/core/move/import-resolver.d.ts +5 -0
  63. package/dist/core/move/import-resolver.d.ts.map +1 -1
  64. package/dist/core/move/import-resolver.js +24 -6
  65. package/dist/core/move/import-resolver.js.map +1 -1
  66. package/dist/core/move/index.d.ts +7 -3
  67. package/dist/core/move/index.d.ts.map +1 -1
  68. package/dist/core/move/index.js +7 -2
  69. package/dist/core/move/index.js.map +1 -1
  70. package/dist/core/move/move-service.d.ts +11 -60
  71. package/dist/core/move/move-service.d.ts.map +1 -1
  72. package/dist/core/move/move-service.js +16 -352
  73. package/dist/core/move/move-service.js.map +1 -1
  74. package/dist/core/move/path-calculator.d.ts +49 -0
  75. package/dist/core/move/path-calculator.d.ts.map +1 -0
  76. package/dist/core/move/path-calculator.js +158 -0
  77. package/dist/core/move/path-calculator.js.map +1 -0
  78. package/dist/core/move/path-parser.d.ts +33 -0
  79. package/dist/core/move/path-parser.d.ts.map +1 -0
  80. package/dist/core/move/path-parser.js +53 -0
  81. package/dist/core/move/path-parser.js.map +1 -0
  82. package/dist/core/move/path-utils.d.ts +70 -0
  83. package/dist/core/move/path-utils.d.ts.map +1 -0
  84. package/dist/core/move/path-utils.js +201 -0
  85. package/dist/core/move/path-utils.js.map +1 -0
  86. package/dist/core/move/types.d.ts +81 -18
  87. package/dist/core/move/types.d.ts.map +1 -1
  88. package/dist/core/move/types.js +73 -5
  89. package/dist/core/move/types.js.map +1 -1
  90. package/dist/core/move-member/change-applier.d.ts +23 -0
  91. package/dist/core/move-member/change-applier.d.ts.map +1 -0
  92. package/dist/core/move-member/change-applier.js +51 -0
  93. package/dist/core/move-member/change-applier.js.map +1 -0
  94. package/dist/core/move-member/file-change-preparer.d.ts +49 -0
  95. package/dist/core/move-member/file-change-preparer.d.ts.map +1 -0
  96. package/dist/core/move-member/file-change-preparer.js +340 -0
  97. package/dist/core/move-member/file-change-preparer.js.map +1 -0
  98. package/dist/core/move-member/index.d.ts +4 -1
  99. package/dist/core/move-member/index.d.ts.map +1 -1
  100. package/dist/core/move-member/index.js +3 -0
  101. package/dist/core/move-member/index.js.map +1 -1
  102. package/dist/core/move-member/member-extractor.d.ts +11 -0
  103. package/dist/core/move-member/member-extractor.d.ts.map +1 -1
  104. package/dist/core/move-member/member-extractor.js +114 -22
  105. package/dist/core/move-member/member-extractor.js.map +1 -1
  106. package/dist/core/move-member/move-member-service.d.ts +3 -78
  107. package/dist/core/move-member/move-member-service.d.ts.map +1 -1
  108. package/dist/core/move-member/move-member-service.js +35 -419
  109. package/dist/core/move-member/move-member-service.js.map +1 -1
  110. package/dist/core/move-member/reference-updater.d.ts +73 -0
  111. package/dist/core/move-member/reference-updater.d.ts.map +1 -0
  112. package/dist/core/move-member/reference-updater.js +286 -0
  113. package/dist/core/move-member/reference-updater.js.map +1 -0
  114. package/dist/core/move-member/types.d.ts +17 -2
  115. package/dist/core/move-member/types.d.ts.map +1 -1
  116. package/dist/core/move-member/types.js.map +1 -1
  117. package/dist/core/rename/reference-updater.d.ts.map +1 -1
  118. package/dist/core/rename/reference-updater.js +4 -1
  119. package/dist/core/rename/reference-updater.js.map +1 -1
  120. package/dist/core/rename/rename-engine.d.ts +5 -3
  121. package/dist/core/rename/rename-engine.d.ts.map +1 -1
  122. package/dist/core/rename/rename-engine.js +29 -8
  123. package/dist/core/rename/rename-engine.js.map +1 -1
  124. package/dist/core/shared/symbol-finder/symbol-finder.d.ts.map +1 -1
  125. package/dist/core/shared/symbol-finder/symbol-finder.js +9 -1
  126. package/dist/core/shared/symbol-finder/symbol-finder.js.map +1 -1
  127. package/dist/infrastructure/changeset/change-applicator.d.ts +1 -1
  128. package/dist/infrastructure/changeset/change-applicator.d.ts.map +1 -1
  129. package/dist/infrastructure/changeset/change-applicator.js +22 -21
  130. package/dist/infrastructure/changeset/change-applicator.js.map +1 -1
  131. package/dist/infrastructure/changeset/changeset-builder.d.ts +2 -2
  132. package/dist/infrastructure/changeset/changeset-builder.d.ts.map +1 -1
  133. package/dist/infrastructure/changeset/changeset-builder.js +11 -6
  134. package/dist/infrastructure/changeset/changeset-builder.js.map +1 -1
  135. package/dist/infrastructure/changeset/changeset-converter.d.ts +1 -1
  136. package/dist/infrastructure/changeset/changeset-converter.d.ts.map +1 -1
  137. package/dist/infrastructure/changeset/changeset-converter.js +9 -8
  138. package/dist/infrastructure/changeset/changeset-converter.js.map +1 -1
  139. package/dist/infrastructure/changeset/index.d.ts +1 -0
  140. package/dist/infrastructure/changeset/index.d.ts.map +1 -1
  141. package/dist/infrastructure/changeset/index.js +2 -0
  142. package/dist/infrastructure/changeset/index.js.map +1 -1
  143. package/dist/infrastructure/changeset/types.d.ts +41 -4
  144. package/dist/infrastructure/changeset/types.d.ts.map +1 -1
  145. package/dist/infrastructure/changeset/types.js +41 -1
  146. package/dist/infrastructure/changeset/types.js.map +1 -1
  147. package/dist/interfaces/cli/cli.d.ts.map +1 -1
  148. package/dist/interfaces/cli/cli.js +1 -2
  149. package/dist/interfaces/cli/cli.js.map +1 -1
  150. package/dist/interfaces/cli/commands/index.d.ts +0 -1
  151. package/dist/interfaces/cli/commands/index.d.ts.map +1 -1
  152. package/dist/interfaces/cli/commands/index.js +0 -1
  153. package/dist/interfaces/cli/commands/index.js.map +1 -1
  154. package/dist/interfaces/cli/commands/move.command.d.ts +1 -0
  155. package/dist/interfaces/cli/commands/move.command.d.ts.map +1 -1
  156. package/dist/interfaces/cli/commands/move.command.js +127 -11
  157. package/dist/interfaces/cli/commands/move.command.js.map +1 -1
  158. package/dist/interfaces/cli/commands/rename.command.d.ts.map +1 -1
  159. package/dist/interfaces/cli/commands/rename.command.js +114 -6
  160. package/dist/interfaces/cli/commands/rename.command.js.map +1 -1
  161. package/dist/plugins/javascript/declaration-analyzer.d.ts.map +1 -1
  162. package/dist/plugins/javascript/declaration-analyzer.js +9 -0
  163. package/dist/plugins/javascript/declaration-analyzer.js.map +1 -1
  164. package/dist/plugins/typescript/declaration-analyzer.d.ts.map +1 -1
  165. package/dist/plugins/typescript/declaration-analyzer.js +4 -0
  166. package/dist/plugins/typescript/declaration-analyzer.js.map +1 -1
  167. package/dist/plugins/typescript/reference-finder.d.ts.map +1 -1
  168. package/dist/plugins/typescript/reference-finder.js +11 -2
  169. package/dist/plugins/typescript/reference-finder.js.map +1 -1
  170. package/dist/plugins/typescript/symbol-extractor.d.ts.map +1 -1
  171. package/dist/plugins/typescript/symbol-extractor.js +6 -2
  172. package/dist/plugins/typescript/symbol-extractor.js.map +1 -1
  173. package/package.json +1 -1
  174. package/dist/interfaces/cli/commands/move-member.command.d.ts +0 -11
  175. package/dist/interfaces/cli/commands/move-member.command.d.ts.map +0 -1
  176. package/dist/interfaces/cli/commands/move-member.command.js +0 -140
  177. package/dist/interfaces/cli/commands/move-member.command.js.map +0 -1
@@ -3,9 +3,12 @@
3
3
  * 參數重構核心服務
4
4
  */
5
5
  import * as path from 'path';
6
- import { createChangesetBuilder } from '../../infrastructure/changeset/index.js';
6
+ import { createChangesetBuilder, ChangesetCommand, TextEditOperationType } from '../../infrastructure/changeset/index.js';
7
7
  import { SignatureParser } from './signature-parser.js';
8
- import { ChangeSignatureErrorCode, isAddParameterChange, isRemoveParameterChange, isReorderParametersChange, isChangeParameterTypeChange, isRenameParameterChange, isChangeDefaultValueChange, isToggleOptionalChange } from './types.js';
8
+ import { SignatureValidator } from './signature-validator.js';
9
+ import { SignatureTransformer } from './signature-transformer.js';
10
+ import { CallSiteUpdater } from './call-site-updater.js';
11
+ import { ChangeSignatureErrorCode } from './types.js';
9
12
  import { SymbolFinder } from '../shared/symbol-finder/index.js';
10
13
  /**
11
14
  * Change Signature Service
@@ -15,11 +18,17 @@ export class ChangeSignatureService {
15
18
  fileSystem;
16
19
  signatureParser;
17
20
  symbolFinder;
21
+ validator;
22
+ transformer;
23
+ callSiteUpdater;
18
24
  constructor(parserRegistry, fileSystem) {
19
25
  this.parserRegistry = parserRegistry;
20
26
  this.fileSystem = fileSystem;
21
27
  this.signatureParser = new SignatureParser(parserRegistry, fileSystem);
22
28
  this.symbolFinder = new SymbolFinder(parserRegistry, fileSystem);
29
+ this.validator = new SignatureValidator();
30
+ this.transformer = new SignatureTransformer();
31
+ this.callSiteUpdater = new CallSiteUpdater(fileSystem);
23
32
  }
24
33
  /**
25
34
  * 執行 Change Signature
@@ -31,19 +40,19 @@ export class ChangeSignatureService {
31
40
  return this.createErrorResult(ChangeSignatureErrorCode.FunctionNotFound, `找不到函式: ${options.functionName}`);
32
41
  }
33
42
  // 2. 驗證變更
34
- const validationErrors = this.validateChanges(originalSignature, options.changes);
43
+ const validationErrors = this.validator.validateChanges(originalSignature, options.changes);
35
44
  if (validationErrors.length > 0) {
36
45
  return this.createErrorResult(validationErrors[0].code, validationErrors[0].message);
37
46
  }
38
47
  // 3. 計算新簽名
39
- const newSignature = this.applyChangesToSignature(originalSignature, options.changes);
48
+ const newSignature = this.transformer.applyChangesToSignature(originalSignature, options.changes);
40
49
  // 4. 取得所有呼叫點
41
50
  const projectFiles = options.targetFiles ?? await this.getProjectFiles(options.projectRoot);
42
51
  const callSites = await this.symbolFinder.findCallSites(options.functionName, projectFiles);
43
52
  // 5. 生成定義更新
44
53
  const definitionUpdate = await this.generateDefinitionUpdate(options.filePath, originalSignature, newSignature);
45
54
  // 6. 生成呼叫點更新
46
- const callSiteUpdates = await this.generateCallSiteUpdates(callSites, originalSignature, newSignature, options.changes);
55
+ const callSiteUpdates = await this.callSiteUpdater.generateCallSiteUpdates(callSites, originalSignature, newSignature, options.changes);
47
56
  // 7. 執行或預覽
48
57
  if (!options.preview) {
49
58
  await this.applyChanges(definitionUpdate, callSiteUpdates);
@@ -75,7 +84,7 @@ export class ChangeSignatureService {
75
84
  * @returns Changeset 物件
76
85
  */
77
86
  async generateChangeset(options) {
78
- const builder = createChangesetBuilder().forCommand('change-signature');
87
+ const builder = createChangesetBuilder().forCommand(ChangesetCommand.ChangeSignature);
79
88
  // 使用現有邏輯(preview 模式)收集變更
80
89
  const result = await this.changeSignature({
81
90
  ...options,
@@ -100,7 +109,7 @@ export class ChangeSignatureService {
100
109
  },
101
110
  newText: newCode,
102
111
  description: `Update definition: ${originalCode.trim()} -> ${newCode.trim()}`
103
- }], 'modify');
112
+ }], TextEditOperationType.Modify);
104
113
  // 轉換 callSiteUpdates
105
114
  // 按檔案分組,合併同一檔案的多個變更
106
115
  const updatesByFile = new Map();
@@ -130,7 +139,7 @@ export class ChangeSignatureService {
130
139
  description: `Update call: ${update.originalCode.trim()} -> ${update.newCode.trim()}`
131
140
  };
132
141
  });
133
- builder.addTextChange(updateFilePath, edits, 'modify');
142
+ builder.addTextChange(updateFilePath, edits, TextEditOperationType.Modify);
134
143
  }
135
144
  // 設定描述
136
145
  const originalParams = result.originalSignature.parameters.map(p => p.name).join(', ');
@@ -138,165 +147,6 @@ export class ChangeSignatureService {
138
147
  builder.withDescription(`Changed signature of ${result.originalSignature.name}: (${originalParams}) -> (${newParams})`);
139
148
  return builder.build();
140
149
  }
141
- /**
142
- * 驗證變更
143
- */
144
- validateChanges(signature, changes) {
145
- const errors = [];
146
- const parameterNames = new Set(signature.parameters.map(p => p.name));
147
- const newParameterNames = new Set(parameterNames);
148
- for (const change of changes) {
149
- if (isAddParameterChange(change)) {
150
- if (newParameterNames.has(change.name)) {
151
- errors.push({
152
- code: ChangeSignatureErrorCode.DuplicateParameterName,
153
- message: `參數名稱重複: ${change.name}`,
154
- parameterName: change.name
155
- });
156
- }
157
- else {
158
- newParameterNames.add(change.name);
159
- }
160
- // 驗證新增參數必須有預設值
161
- if (!change.callSiteValue && !change.defaultValue) {
162
- errors.push({
163
- code: ChangeSignatureErrorCode.MissingDefaultValue,
164
- message: `參數 ${change.name} 缺少預設值,請使用 --default-value 或 --call-site-value 指定`,
165
- parameterName: change.name
166
- });
167
- }
168
- }
169
- if (isRemoveParameterChange(change)) {
170
- const targetName = this.resolveParameterName(signature, change.parameterNameOrIndex);
171
- if (!targetName || !parameterNames.has(targetName)) {
172
- errors.push({
173
- code: ChangeSignatureErrorCode.ParameterNotFound,
174
- message: `找不到參數: ${change.parameterNameOrIndex}`,
175
- parameterName: String(change.parameterNameOrIndex)
176
- });
177
- }
178
- else {
179
- newParameterNames.delete(targetName);
180
- }
181
- }
182
- if (isReorderParametersChange(change)) {
183
- for (const nameOrIndex of change.newOrder) {
184
- const targetName = this.resolveParameterName(signature, nameOrIndex);
185
- if (!targetName || !parameterNames.has(targetName)) {
186
- errors.push({
187
- code: ChangeSignatureErrorCode.ParameterNotFound,
188
- message: `找不到參數: ${nameOrIndex}`,
189
- parameterName: String(nameOrIndex)
190
- });
191
- }
192
- }
193
- if (change.newOrder.length !== signature.parameters.length) {
194
- errors.push({
195
- code: ChangeSignatureErrorCode.InvalidParameterOrder,
196
- message: '重新排序必須包含所有參數'
197
- });
198
- }
199
- // 驗證可選參數順序:可選參數必須在必選參數之後
200
- const optionalOrderError = this.validateOptionalParameterOrder(signature, change.newOrder);
201
- if (optionalOrderError) {
202
- errors.push(optionalOrderError);
203
- }
204
- }
205
- if (isChangeParameterTypeChange(change) || isRenameParameterChange(change) ||
206
- isChangeDefaultValueChange(change) || isToggleOptionalChange(change)) {
207
- const targetName = this.resolveParameterName(signature, change.parameterNameOrIndex);
208
- if (!targetName || !parameterNames.has(targetName)) {
209
- errors.push({
210
- code: ChangeSignatureErrorCode.ParameterNotFound,
211
- message: `找不到參數: ${change.parameterNameOrIndex}`,
212
- parameterName: String(change.parameterNameOrIndex)
213
- });
214
- }
215
- }
216
- if (isRenameParameterChange(change)) {
217
- if (newParameterNames.has(change.newName) && change.newName !== this.resolveParameterName(signature, change.parameterNameOrIndex)) {
218
- errors.push({
219
- code: ChangeSignatureErrorCode.DuplicateParameterName,
220
- message: `參數名稱重複: ${change.newName}`,
221
- parameterName: change.newName
222
- });
223
- }
224
- }
225
- }
226
- return errors;
227
- }
228
- /**
229
- * 套用變更到簽名
230
- */
231
- applyChangesToSignature(signature, changes) {
232
- let parameters = [...signature.parameters];
233
- for (const change of changes) {
234
- if (isAddParameterChange(change)) {
235
- const newParam = {
236
- name: change.name,
237
- type: change.parameterType,
238
- defaultValue: change.defaultValue,
239
- optional: change.optional,
240
- rest: false,
241
- range: { start: { line: 0, column: 0, offset: 0 }, end: { line: 0, column: 0, offset: 0 } }
242
- };
243
- if (change.position < 0 || change.position >= parameters.length) {
244
- parameters.push(newParam);
245
- }
246
- else {
247
- parameters.splice(change.position, 0, newParam);
248
- }
249
- }
250
- if (isRemoveParameterChange(change)) {
251
- const index = this.resolveParameterIndex(parameters, change.parameterNameOrIndex);
252
- if (index >= 0) {
253
- parameters.splice(index, 1);
254
- }
255
- }
256
- if (isReorderParametersChange(change)) {
257
- const newParams = [];
258
- for (const nameOrIndex of change.newOrder) {
259
- const index = this.resolveParameterIndex(parameters, nameOrIndex);
260
- if (index >= 0) {
261
- newParams.push(parameters[index]);
262
- }
263
- }
264
- parameters = newParams;
265
- }
266
- if (isChangeParameterTypeChange(change)) {
267
- const index = this.resolveParameterIndex(parameters, change.parameterNameOrIndex);
268
- if (index >= 0) {
269
- parameters[index] = { ...parameters[index], type: change.newType };
270
- }
271
- }
272
- if (isRenameParameterChange(change)) {
273
- const index = this.resolveParameterIndex(parameters, change.parameterNameOrIndex);
274
- if (index >= 0) {
275
- parameters[index] = { ...parameters[index], name: change.newName };
276
- }
277
- }
278
- if (isChangeDefaultValueChange(change)) {
279
- const index = this.resolveParameterIndex(parameters, change.parameterNameOrIndex);
280
- if (index >= 0) {
281
- parameters[index] = {
282
- ...parameters[index],
283
- defaultValue: change.newDefaultValue,
284
- optional: change.newDefaultValue !== undefined || parameters[index].optional
285
- };
286
- }
287
- }
288
- if (isToggleOptionalChange(change)) {
289
- const index = this.resolveParameterIndex(parameters, change.parameterNameOrIndex);
290
- if (index >= 0) {
291
- parameters[index] = { ...parameters[index], optional: change.optional };
292
- }
293
- }
294
- }
295
- return {
296
- ...signature,
297
- parameters
298
- };
299
- }
300
150
  /**
301
151
  * 生成定義更新
302
152
  */
@@ -324,267 +174,6 @@ export class ChangeSignatureService {
324
174
  location: originalSignature.location
325
175
  };
326
176
  }
327
- /**
328
- * 生成呼叫點更新
329
- * 效能優化:按檔案分組後批次讀取,避免重複讀取同一檔案
330
- * 檔案讀取次數從 O(N) 降到 O(M),N = callSites 數量,M = 不重複檔案數
331
- * 支援多行呼叫點:正確處理跨多行的函式呼叫
332
- */
333
- async generateCallSiteUpdates(callSites, originalSignature, newSignature, changes) {
334
- const updates = [];
335
- // 建立參數映射
336
- const parameterMapping = this.createParameterMapping(originalSignature, newSignature, changes);
337
- // 按檔案分組 callSites,避免重複讀取同一檔案
338
- const callSitesByFile = new Map();
339
- for (const callSite of callSites) {
340
- const filePath = callSite.location.filePath;
341
- const existing = callSitesByFile.get(filePath);
342
- if (existing) {
343
- existing.push(callSite);
344
- }
345
- else {
346
- callSitesByFile.set(filePath, [callSite]);
347
- }
348
- }
349
- // 批次讀取所有不重複的檔案並處理
350
- for (const [filePath, fileCallSites] of callSitesByFile) {
351
- const content = await this.readFile(filePath);
352
- if (!content) {
353
- continue;
354
- }
355
- const lines = content.split('\n');
356
- // 處理該檔案的所有 callSites
357
- for (const callSite of fileCallSites) {
358
- const startLineIndex = callSite.location.range.start.line - 1;
359
- const endLineIndex = callSite.location.range.end.line - 1;
360
- const isMultiline = startLineIndex !== endLineIndex;
361
- // 建立新的參數列表
362
- const newArgs = this.mapCallSiteArguments(callSite, parameterMapping, changes, originalSignature);
363
- // 找到呼叫的括號位置
364
- const startLine = lines[startLineIndex];
365
- const funcNameIndex = startLine.indexOf(callSite.functionName);
366
- if (funcNameIndex < 0) {
367
- continue;
368
- }
369
- const openParenIndex = startLine.indexOf('(', funcNameIndex);
370
- if (isMultiline) {
371
- // 多行呼叫點:提取完整的原始程式碼並替換
372
- const originalCode = this.extractMultilineCode(lines, startLineIndex, endLineIndex);
373
- // 檢測原始呼叫的格式風格
374
- const originalStyle = this.detectCallStyle(lines, startLineIndex, endLineIndex);
375
- // 生成新的參數字串(保留原始風格)
376
- const newArgsString = this.formatArgsWithStyle(newArgs, originalStyle);
377
- // 生成新的程式碼
378
- const newCode = startLine.substring(0, openParenIndex + 1)
379
- + newArgsString
380
- + ')' + this.getTrailingContent(lines, endLineIndex, callSite.location.range.end.column - 1);
381
- if (newCode !== originalCode) {
382
- updates.push({
383
- filePath: callSite.location.filePath,
384
- originalCode,
385
- newCode,
386
- location: callSite.location
387
- });
388
- }
389
- }
390
- else {
391
- // 單行呼叫點:保持原有邏輯
392
- const closeParenIndex = this.findMatchingParen(startLine, openParenIndex);
393
- const newArgsString = newArgs.join(', ');
394
- const newLine = startLine.substring(0, openParenIndex + 1)
395
- + newArgsString
396
- + startLine.substring(closeParenIndex);
397
- if (newLine !== startLine) {
398
- updates.push({
399
- filePath: callSite.location.filePath,
400
- originalCode: startLine,
401
- newCode: newLine,
402
- location: callSite.location
403
- });
404
- }
405
- }
406
- }
407
- }
408
- return updates;
409
- }
410
- /**
411
- * 提取多行程式碼
412
- */
413
- extractMultilineCode(lines, startLine, endLine) {
414
- if (startLine === endLine) {
415
- return lines[startLine];
416
- }
417
- const result = [];
418
- for (let i = startLine; i <= endLine; i++) {
419
- result.push(lines[i]);
420
- }
421
- return result.join('\n');
422
- }
423
- /**
424
- * 檢測呼叫風格
425
- */
426
- detectCallStyle(lines, startLine, endLine) {
427
- const isMultiline = startLine !== endLine;
428
- if (!isMultiline) {
429
- return { multiline: false, indent: '', trailingComma: false };
430
- }
431
- // 檢測縮排(從第二行取得)
432
- const secondLine = lines[startLine + 1] || '';
433
- const indentMatch = secondLine.match(/^(\s*)/);
434
- const indent = indentMatch ? indentMatch[1] : ' ';
435
- // 檢測是否有尾隨逗號
436
- const lastArgLine = lines[endLine - 1] || lines[endLine];
437
- const trailingComma = lastArgLine.trimEnd().endsWith(',');
438
- return { multiline: true, indent, trailingComma };
439
- }
440
- /**
441
- * 根據風格格式化參數
442
- */
443
- formatArgsWithStyle(args, style) {
444
- if (!style.multiline || args.length === 0) {
445
- return args.join(', ');
446
- }
447
- // 多行格式
448
- const formattedArgs = args.map(arg => `${style.indent}${arg}`);
449
- const separator = style.trailingComma ? ',\n' : ',\n';
450
- return '\n' + formattedArgs.join(separator) + (style.trailingComma ? ',' : '') + '\n';
451
- }
452
- /**
453
- * 取得結束行的尾隨內容(右括號之後的部分)
454
- */
455
- getTrailingContent(lines, endLine, closeParenColumn) {
456
- const line = lines[endLine];
457
- // 找到右括號後的內容
458
- return line.substring(closeParenColumn + 1);
459
- }
460
- /**
461
- * 建立參數映射
462
- */
463
- createParameterMapping(originalSignature, newSignature, changes) {
464
- const mapping = new Map();
465
- // 初始化:原始索引 -> 新索引
466
- let currentParams = originalSignature.parameters.map((p, i) => ({ name: p.name, originalIndex: i }));
467
- // 處理每個變更
468
- for (const change of changes) {
469
- if (isRemoveParameterChange(change)) {
470
- const index = this.resolveParameterIndex(currentParams.map(p => ({ name: p.name })), change.parameterNameOrIndex);
471
- if (index >= 0) {
472
- currentParams.splice(index, 1);
473
- }
474
- }
475
- if (isReorderParametersChange(change)) {
476
- const newOrder = [];
477
- for (const nameOrIndex of change.newOrder) {
478
- const index = this.resolveParameterIndex(currentParams.map(p => ({ name: p.name })), nameOrIndex);
479
- if (index >= 0) {
480
- newOrder.push(currentParams[index]);
481
- }
482
- }
483
- currentParams = newOrder;
484
- }
485
- if (isAddParameterChange(change)) {
486
- const newParam = { name: change.name, originalIndex: -1, value: change.callSiteValue || change.defaultValue };
487
- if (change.position < 0 || change.position >= currentParams.length) {
488
- currentParams.push(newParam);
489
- }
490
- else {
491
- currentParams.splice(change.position, 0, newParam);
492
- }
493
- }
494
- }
495
- // 建立最終映射
496
- for (let newIndex = 0; newIndex < currentParams.length; newIndex++) {
497
- const param = currentParams[newIndex];
498
- if (param.originalIndex >= 0) {
499
- mapping.set(param.originalIndex, { newIndex });
500
- }
501
- else if ('value' in param) {
502
- // 新增的參數,設定預設值
503
- mapping.set(-1 - newIndex, { newIndex, value: param.value });
504
- }
505
- }
506
- return mapping;
507
- }
508
- /**
509
- * 映射呼叫點參數
510
- * 處理省略的可選參數:當可選參數被省略時,重排後需要插入 undefined
511
- */
512
- mapCallSiteArguments(callSite, parameterMapping, changes, originalSignature) {
513
- const result = [];
514
- // 找出新參數的數量
515
- let maxNewIndex = -1;
516
- for (const { newIndex } of parameterMapping.values()) {
517
- maxNewIndex = Math.max(maxNewIndex, newIndex);
518
- }
519
- // 初始化結果陣列
520
- for (let i = 0; i <= maxNewIndex; i++) {
521
- result.push('');
522
- }
523
- // 映射原始參數
524
- for (const [originalIndex, { newIndex }] of parameterMapping.entries()) {
525
- if (originalIndex >= 0) {
526
- if (originalIndex < callSite.arguments.length) {
527
- // 呼叫點有提供此參數
528
- result[newIndex] = callSite.arguments[originalIndex].value;
529
- }
530
- else {
531
- // 呼叫點省略了此可選參數
532
- // 檢查這個位置是否需要填入 undefined(當後面有其他參數時)
533
- const param = originalSignature.parameters[originalIndex];
534
- if (param && (param.optional || param.defaultValue)) {
535
- // 標記為需要填入 undefined(如果後面有非空參數)
536
- result[newIndex] = '\0OMITTED\0';
537
- }
538
- }
539
- }
540
- }
541
- // 填入新增參數的值
542
- const addedPositions = new Set();
543
- for (const change of changes) {
544
- if (isAddParameterChange(change)) {
545
- // 使用 callSiteValue 或 defaultValue(驗證階段已確保至少有一個值)
546
- const value = change.callSiteValue || change.defaultValue;
547
- const position = change.position < 0 ? result.length - 1 : Math.min(change.position, result.length - 1);
548
- if (position >= 0 && position < result.length && !result[position]) {
549
- result[position] = value;
550
- addedPositions.add(position);
551
- }
552
- }
553
- }
554
- // 處理省略的可選參數:
555
- // 如果省略的參數後面有非空參數,則需要填入 undefined
556
- // 否則可以完全省略
557
- const processedResult = [];
558
- let lastNonEmptyIndex = -1;
559
- // 找到最後一個非空參數的索引
560
- for (let i = result.length - 1; i >= 0; i--) {
561
- if (result[i] !== '' && result[i] !== '\0OMITTED\0') {
562
- lastNonEmptyIndex = i;
563
- break;
564
- }
565
- }
566
- // 建立最終結果
567
- for (let i = 0; i <= lastNonEmptyIndex; i++) {
568
- if (result[i] === '\0OMITTED\0') {
569
- // 省略的可選參數,但後面有其他參數,需要填入 undefined
570
- processedResult.push('undefined');
571
- }
572
- else if (result[i] === '') {
573
- // 空值,檢查是否是新增的位置
574
- if (addedPositions.has(i)) {
575
- processedResult.push('undefined');
576
- }
577
- else {
578
- // 不應該出現的情況,填入 undefined 以避免語法錯誤
579
- processedResult.push('undefined');
580
- }
581
- }
582
- else {
583
- processedResult.push(result[i]);
584
- }
585
- }
586
- return processedResult;
587
- }
588
177
  /**
589
178
  * 執行變更
590
179
  */
@@ -667,61 +256,6 @@ export class ChangeSignatureService {
667
256
  }
668
257
  return line.length;
669
258
  }
670
- /**
671
- * 解析參數名稱
672
- */
673
- resolveParameterName(signature, nameOrIndex) {
674
- if (typeof nameOrIndex === 'number') {
675
- return signature.parameters[nameOrIndex]?.name;
676
- }
677
- return signature.parameters.find(p => p.name === nameOrIndex)?.name;
678
- }
679
- /**
680
- * 解析參數索引
681
- */
682
- resolveParameterIndex(parameters, nameOrIndex) {
683
- if (typeof nameOrIndex === 'number') {
684
- return nameOrIndex >= 0 && nameOrIndex < parameters.length ? nameOrIndex : -1;
685
- }
686
- return parameters.findIndex(p => p.name === nameOrIndex);
687
- }
688
- /**
689
- * 驗證可選參數順序
690
- * TypeScript 規則:可選參數必須在所有必選參數之後
691
- * 例外:有預設值的參數視為可選,rest 參數必須在最後
692
- */
693
- validateOptionalParameterOrder(signature, newOrder) {
694
- // 根據新順序建立參數列表
695
- const reorderedParams = [];
696
- for (const nameOrIndex of newOrder) {
697
- const index = this.resolveParameterIndex(signature.parameters, nameOrIndex);
698
- if (index >= 0) {
699
- reorderedParams.push(signature.parameters[index]);
700
- }
701
- }
702
- // 檢查可選參數是否在必選參數之前
703
- let foundOptional = false;
704
- let firstOptionalParam = null;
705
- for (const param of reorderedParams) {
706
- const isOptional = param.optional || param.defaultValue !== undefined;
707
- const isRest = param.rest;
708
- if (isOptional && !isRest) {
709
- foundOptional = true;
710
- if (!firstOptionalParam) {
711
- firstOptionalParam = param;
712
- }
713
- }
714
- else if (!isOptional && !isRest && foundOptional) {
715
- // 找到必選參數在可選參數之後
716
- return {
717
- code: ChangeSignatureErrorCode.OptionalBeforeRequired,
718
- message: `可選參數 '${firstOptionalParam.name}' 不能位於必選參數 '${param.name}' 之前`,
719
- parameterName: param.name
720
- };
721
- }
722
- }
723
- return null;
724
- }
725
259
  /**
726
260
  * 取得專案檔案
727
261
  */
@@ -1 +1 @@
1
- {"version":3,"file":"change-signature-service.js","sourceRoot":"","sources":["../../../src/core/change-signature/change-signature-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"change-signature-service.js","sourceRoot":"","sources":["../../../src/core/change-signature/change-signature-service.ts"],"names":[],"mappings":"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"}