(openFiles: File[])
| 55 | } |
| 56 | |
| 57 | function formatFileList(openFiles: File[]): string { |
| 58 | const basenameCounts = new Map<string, number>(); |
| 59 | for (const file of openFiles) { |
| 60 | const basename = path.basename(file.path); |
| 61 | basenameCounts.set(basename, (basenameCounts.get(basename) || 0) + 1); |
| 62 | } |
| 63 | |
| 64 | const fileList = openFiles |
| 65 | .map((file: File) => { |
| 66 | const basename = path.basename(file.path); |
| 67 | const isDuplicate = (basenameCounts.get(basename) || 0) > 1; |
| 68 | const parentDir = path.basename(path.dirname(file.path)); |
| 69 | const displayName = isDuplicate |
| 70 | ? `${basename} (/${parentDir})` |
| 71 | : basename; |
| 72 | |
| 73 | return ` - ${displayName}${file.isActive ? ' (active)' : ''}`; |
| 74 | }) |
| 75 | .join('\n'); |
| 76 | |
| 77 | const infoMessage = ` |
| 78 | (Note: The file list is limited to a number of recently accessed files within your workspace and only includes local files on disk)`; |
| 79 | |
| 80 | return `\n\nOpen files:\n${fileList}\n${infoMessage}`; |
| 81 | } |
| 82 | |
| 83 | async function getIdeStatusMessageWithFiles(ideClient: IdeClient): Promise<{ |
| 84 | messageType: 'info' | 'error'; |
no test coverage detected