Skip to content

Commit 0ad5da5

Browse files
author
Benjamin Pasero
committed
working copies - have an action to log working copies
1 parent dc25752 commit 0ad5da5

1 file changed

Lines changed: 30 additions & 0 deletions

File tree

src/vs/workbench/browser/actions/developerActions.ts

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ import { IStorageService } from 'vs/platform/storage/common/storage';
2525
import { clamp } from 'vs/base/common/numbers';
2626
import { KeyCode } from 'vs/base/common/keyCodes';
2727
import { IConfigurationRegistry, Extensions as ConfigurationExtensions } from 'vs/platform/configuration/common/configurationRegistry';
28+
import { ILogService } from 'vs/platform/log/common/log';
29+
import { IWorkingCopyService } from 'vs/workbench/services/workingCopy/common/workingCopyService';
2830

2931
class InspectContextKeysAction extends Action {
3032

@@ -210,13 +212,41 @@ class LogStorageAction extends Action {
210212
}
211213
}
212214

215+
class LogWorkingCopiesAction extends Action {
216+
217+
static readonly ID = 'workbench.action.logWorkingCopies';
218+
static readonly LABEL = nls.localize({ key: 'logWorkingCopies', comment: ['A developer only action to log the working copies that exist.'] }, "Log Working Copies");
219+
220+
constructor(
221+
id: string,
222+
label: string,
223+
@ILogService private logService: ILogService,
224+
@IWorkingCopyService private workingCopyService: IWorkingCopyService
225+
) {
226+
super(id, label);
227+
}
228+
229+
async run(): Promise<void> {
230+
const msg = [
231+
`Dirty Working Copies:`,
232+
...this.workingCopyService.dirtyWorkingCopies.map(workingCopy => workingCopy.resource.toString(true)),
233+
``,
234+
`All Working Copies:`,
235+
...this.workingCopyService.workingCopies.map(workingCopy => workingCopy.resource.toString(true)),
236+
];
237+
238+
this.logService.info(msg.join('\n'));
239+
}
240+
}
241+
213242
// --- Actions Registration
214243

215244
const developerCategory = nls.localize('developer', "Developer");
216245
const registry = Registry.as<IWorkbenchActionRegistry>(Extensions.WorkbenchActions);
217246
registry.registerWorkbenchAction(SyncActionDescriptor.create(InspectContextKeysAction, InspectContextKeysAction.ID, InspectContextKeysAction.LABEL), 'Developer: Inspect Context Keys', developerCategory);
218247
registry.registerWorkbenchAction(SyncActionDescriptor.create(ToggleScreencastModeAction, ToggleScreencastModeAction.ID, ToggleScreencastModeAction.LABEL), 'Developer: Toggle Screencast Mode', developerCategory);
219248
registry.registerWorkbenchAction(SyncActionDescriptor.create(LogStorageAction, LogStorageAction.ID, LogStorageAction.LABEL), 'Developer: Log Storage Database Contents', developerCategory);
249+
registry.registerWorkbenchAction(SyncActionDescriptor.create(LogWorkingCopiesAction, LogWorkingCopiesAction.ID, LogWorkingCopiesAction.LABEL), 'Developer: Log Working Copies', developerCategory);
220250

221251
// Screencast Mode
222252
const configurationRegistry = Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration);

0 commit comments

Comments
 (0)