debug: introduce breakpoints extension point

fixes #9037
This commit is contained in:
isidor
2016-07-20 11:48:14 +02:00
parent 2bc3457789
commit 082cfeee65
2 changed files with 30 additions and 1 deletions

View File

@@ -237,6 +237,10 @@ export interface IRawAdapter extends IRawEnvAdapter {
linux?: IRawEnvAdapter;
}
export interface IRawBreakpointContribution {
language: string;
}
export interface IRawDebugSession {
configuration: { type: string, isAttach: boolean, capabilities: DebugProtocol.Capabilites };

View File

@@ -31,8 +31,8 @@ import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/edi
import { IQuickOpenService } from 'vs/workbench/services/quickopen/common/quickOpenService';
import { ConfigVariables } from 'vs/workbench/parts/lib/node/configVariables';
import { ISystemVariables } from 'vs/base/common/parsers';
// debuggers extension point
// debuggers extension point
export const debuggersExtPoint = extensionsRegistry.ExtensionsRegistry.registerExtensionPoint<debug.IRawAdapter[]>('debuggers', {
description: nls.localize('vscode.extension.contributes.debuggers', 'Contributes debug adapters.'),
type: 'array',
@@ -124,6 +124,23 @@ export const debuggersExtPoint = extensionsRegistry.ExtensionsRegistry.registerE
}
});
// breakpoints extension point #9037
export const breakpointsExtPoint = extensionsRegistry.ExtensionsRegistry.registerExtensionPoint<debug.IRawBreakpointContribution[]>('breakpoints', {
description: nls.localize('vscode.extension.contributes.breakpoints', 'Contributes breakpoints.'),
type: 'array',
defaultSnippets: [{ body: [{ language: '' }] }],
items: {
type: 'object',
defaultSnippets: [{ body: { language: '' } }],
properties: {
language: {
description: nls.localize('vscode.extension.contributes.breakpoints.language', "Allow breakpoints for this language."),
type: 'string'
},
}
}
});
// debug general schema
export const schemaId = 'vscode://schemas/launch';
@@ -222,6 +239,14 @@ export class ConfigurationManager implements debug.IConfigurationManager {
}
});
});
breakpointsExtPoint.setHandler(extensions => {
extensions.forEach(ext => {
ext.value.forEach(breakpoints => {
this.allModeIdsForBreakpoints[breakpoints.language] = true;
});
});
});
}
public get onDidConfigurationChange(): Event<string> {