MCPcopy Index your code
hub / github.com/microsoft/vscode-cpptools / initialize

Function initialize

Extension/src/Debugger/extension.ts:34–128  ·  view source on GitHub ↗
(context: vscode.ExtensionContext)

Source from the content-addressed store, hash-verified

32let sshConfigWatcher: chokidar.FSWatcher | undefined;
33
34export async function initialize(context: vscode.ExtensionContext): Promise<void> {
35 // Activate Process Picker Commands
36 const attachItemsProvider: AttachItemsProvider = NativeAttachItemsProviderFactory.Get();
37 const attacher: AttachPicker = new AttachPicker(attachItemsProvider);
38 disposables.push(vscode.commands.registerCommand('extension.pickNativeProcess', () => attacher.ShowAttachEntries()));
39 const remoteAttacher: RemoteAttachPicker = new RemoteAttachPicker();
40 disposables.push(vscode.commands.registerCommand('extension.pickRemoteNativeProcess', (any) => remoteAttacher.ShowAttachEntries(any)));
41
42 // Activate ConfigurationProvider
43 const assetProvider: IConfigurationAssetProvider = ConfigurationAssetProviderFactory.getConfigurationProvider();
44
45 // Register DebugConfigurationProviders for "Run and Debug" in Debug Panel.
46 // On Windows platforms, the cppvsdbg debugger will also be registered for initial configurations.
47 let cppVsDebugProvider: DebugConfigurationProvider | null = null;
48 if (os.platform() === 'win32') {
49 cppVsDebugProvider = new DebugConfigurationProvider(assetProvider, DebuggerType.cppvsdbg);
50 disposables.push(vscode.debug.registerDebugConfigurationProvider(DebuggerType.cppvsdbg, instrument(cppVsDebugProvider), vscode.DebugConfigurationProviderTriggerKind.Dynamic));
51 }
52 const cppDebugProvider: DebugConfigurationProvider = new DebugConfigurationProvider(assetProvider, DebuggerType.cppdbg);
53 disposables.push(vscode.debug.registerDebugConfigurationProvider(DebuggerType.cppdbg, instrument(cppDebugProvider), vscode.DebugConfigurationProviderTriggerKind.Dynamic));
54
55 // Register DebugConfigurationProviders for "Run and Debug" play button.
56 const debugProvider: DebugConfigurationProvider = new DebugConfigurationProvider(assetProvider, DebuggerType.all);
57 // eslint-disable-next-line @typescript-eslint/no-misused-promises
58 disposables.push(vscode.commands.registerTextEditorCommand("C_Cpp.BuildAndDebugFile", async (textEditor: vscode.TextEditor, _edit: vscode.TextEditorEdit, ..._args: any[]) => { await debugProvider.buildAndDebug(textEditor); }));
59 // eslint-disable-next-line @typescript-eslint/no-misused-promises
60 disposables.push(vscode.commands.registerTextEditorCommand("C_Cpp.BuildAndRunFile", async (textEditor: vscode.TextEditor, _edit: vscode.TextEditorEdit, ..._args: any[]) => { await debugProvider.buildAndRun(textEditor); }));
61 // eslint-disable-next-line @typescript-eslint/no-misused-promises
62 disposables.push(vscode.commands.registerTextEditorCommand("C_Cpp.AddDebugConfiguration", async (textEditor: vscode.TextEditor, _edit: vscode.TextEditorEdit, ..._args: any[]) => {
63 const folder: vscode.WorkspaceFolder | undefined = vscode.workspace.getWorkspaceFolder(textEditor.document.uri);
64 if (!folder) {
65 void vscode.window.showWarningMessage(localize("add.debug.configuration.not.available.for.single.file", "Add debug configuration is not available for single file."));
66 }
67 await debugProvider.addDebugConfiguration(textEditor);
68 }));
69
70 assetProvider.getConfigurationSnippets();
71
72 const launchJsonDocumentSelector: vscode.DocumentSelector = [{
73 scheme: 'file',
74 language: 'jsonc',
75 pattern: '**/launch.json'
76 }];
77
78 // ConfigurationSnippetProvider needs to be initiallized after configurationProvider calls getConfigurationSnippets.
79 disposables.push(vscode.languages.registerCompletionItemProvider(launchJsonDocumentSelector, instrument(new ConfigurationSnippetProvider(assetProvider))));
80
81 // Register Debug Adapters
82 disposables.push(vscode.debug.registerDebugAdapterDescriptorFactory(DebuggerType.cppvsdbg, new CppvsdbgDebugAdapterDescriptorFactory(context)));
83 disposables.push(vscode.debug.registerDebugAdapterDescriptorFactory(DebuggerType.cppdbg, new CppdbgDebugAdapterDescriptorFactory(context)));
84
85 // SSH Targets View
86 await initializeSshTargets();
87 const sshTargetsProvider: SshTargetsProvider = new SshTargetsProvider();
88 disposables.push(vscode.window.registerTreeDataProvider('CppSshTargetsView', instrument(sshTargetsProvider)));
89 disposables.push(vscode.commands.registerCommand(addSshTargetCmd, () => enableSshTargetsViewAndRun(addSshTargetImpl)));
90 disposables.push(vscode.commands.registerCommand('C_Cpp.removeSshTarget', (node?: BaseNode) => enableSshTargetsViewAndRun(removeSshTargetImpl, node)));
91 disposables.push(vscode.commands.registerCommand(refreshCppSshTargetsViewCmd, (node?: BaseNode) => enableSshTargetsViewAndRun((node?: BaseNode) => sshTargetsProvider.refresh(node), node)));

Callers

nothing calls this directly

Calls 15

ShowAttachEntriesMethod · 0.95
ShowAttachEntriesMethod · 0.95
buildAndDebugMethod · 0.95
buildAndRunMethod · 0.95
addDebugConfigurationMethod · 0.95
refreshMethod · 0.95
instrumentFunction · 0.90
initializeSshTargetsFunction · 0.90
setActiveSshTargetFunction · 0.90
selectSshTargetFunction · 0.90
getActiveSshTargetFunction · 0.90

Tested by

no test coverage detected