本文整理汇总了TypeScript中vscode.debug.registerDebugConfigurationProvider方法的典型用法代码示例。如果您正苦于以下问题:TypeScript debug.registerDebugConfigurationProvider方法的具体用法?TypeScript debug.registerDebugConfigurationProvider怎么用?TypeScript debug.registerDebugConfigurationProvider使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类vscode.debug
的用法示例。
在下文中一共展示了debug.registerDebugConfigurationProvider方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: initialize
export function initialize(): void {
// Activate Process Picker Commands
let attachItemsProvider: AttachItemsProvider = NativeAttachItemsProviderFactory.Get();
let attacher: AttachPicker = new AttachPicker(attachItemsProvider);
disposables.push(vscode.commands.registerCommand('extension.pickNativeProcess', () => attacher.ShowAttachEntries()));
let remoteAttacher: RemoteAttachPicker = new RemoteAttachPicker();
disposables.push(vscode.commands.registerCommand('extension.pickRemoteNativeProcess', (any) => remoteAttacher.ShowAttachEntries(any)));
// Activate ConfigurationProvider
let configurationProvider: IConfigurationAssetProvider = ConfigurationAssetProviderFactory.getConfigurationProvider();
// On non-windows platforms, the cppvsdbg debugger will not be registered for initial configurations.
// This will cause it to not show up on the dropdown list.
if (os.platform() === 'win32') {
disposables.push(vscode.debug.registerDebugConfigurationProvider('cppvsdbg', new CppVsDbgConfigurationProvider(configurationProvider)));
}
disposables.push(vscode.debug.registerDebugConfigurationProvider('cppdbg', new CppDbgConfigurationProvider(configurationProvider)));
configurationProvider.getConfigurationSnippets();
const launchJsonDocumentSelector: vscode.DocumentSelector = [{
language: 'jsonc',
pattern: '**/launch.json'
}];
// ConfigurationSnippetProvider needs to be initiallized after configurationProvider calls getConfigurationSnippets.
disposables.push(vscode.languages.registerCompletionItemProvider(launchJsonDocumentSelector, new ConfigurationSnippetProvider(configurationProvider)));
// Activate Adapter Commands
registerAdapterExecutableCommands();
vscode.Disposable.from(...disposables);
}
示例2: activate
export function activate(context: vscode.ExtensionContext) {
const loadedScriptsProvider = new LoadedScriptsProvider();
const popupAutohideManager = new PopupAutohideManager(sendCustomRequest);
const debugConfigurationProvider = new DebugConfigurationProvider();
context.subscriptions.push(vscode.window.registerTreeDataProvider(
'extension.firefox.loadedScripts', loadedScriptsProvider
));
context.subscriptions.push(vscode.debug.registerDebugConfigurationProvider(
'firefox', debugConfigurationProvider
));
context.subscriptions.push(vscode.commands.registerCommand(
'extension.firefox.reloadAddon', () => sendCustomRequest('reloadAddon')
));
context.subscriptions.push(vscode.commands.registerCommand(
'extension.firefox.rebuildAndReloadAddon', () => sendCustomRequest('rebuildAndReloadAddon')
));
context.subscriptions.push(vscode.commands.registerCommand(
'extension.firefox.toggleSkippingFile', (url) => sendCustomRequest('toggleSkippingFile', url)
));
context.subscriptions.push(vscode.commands.registerCommand(
'extension.firefox.openScript', openScript
));
context.subscriptions.push(vscode.commands.registerCommand(
'extension.firefox.addPathMapping', addPathMapping
));
context.subscriptions.push(vscode.commands.registerCommand(
'extension.firefox.enablePopupAutohide', () => popupAutohideManager.setPopupAutohide(true)
));
context.subscriptions.push(vscode.commands.registerCommand(
'extension.firefox.disablePopupAutohide', () => popupAutohideManager.setPopupAutohide(false)
));
context.subscriptions.push(vscode.commands.registerCommand(
'extension.firefox.togglePopupAutohide', () => popupAutohideManager.togglePopupAutohide()
));
context.subscriptions.push(vscode.debug.onDidReceiveDebugSessionCustomEvent(
(event) => onCustomEvent(event, loadedScriptsProvider, popupAutohideManager)
));
context.subscriptions.push(vscode.debug.onDidStartDebugSession(
(session) => onDidStartSession(session, loadedScriptsProvider)
));
context.subscriptions.push(vscode.debug.onDidTerminateDebugSession(
(session) => onDidTerminateSession(session, loadedScriptsProvider, popupAutohideManager)
));
}
示例3: activate
export function activate(context: vscode.ExtensionContext) {
context.subscriptions.push(vscode.commands.registerCommand('extension.charlie-debug.getProgramName', config => {
return vscode.window.showInputBox(
{placeHolder: 'Please enter the name of a markdown file in the workspace folder', value: 'readme.md'});
}));
// register a configuration provider for 'charlie' debug type
const provider = new CharlieConfigurationProvider();
context.subscriptions.push(vscode.debug.registerDebugConfigurationProvider('charlie', provider));
context.subscriptions.push(provider);
}
示例4: registerConfigurationProvider
export function registerConfigurationProvider(): void {
vscode.debug.registerDebugConfigurationProvider('Ruby', new RubyConfigurationProvider());
}
示例5: activate
//.........这里部分代码省略.........
localDisposables.add(codeActionProvider);
localDisposables.add(vscode.languages.registerCodeActionsProvider(documentSelector, codeActionProvider));
localDisposables.add(reportDiagnostics(server, advisor));
localDisposables.add(forwardChanges(server));
localDisposables.add(trackVirtualDocuments(server, eventStream));
localDisposables.add(vscode.languages.registerFoldingRangeProvider(documentSelector, new StructureProvider(server)));
}));
disposables.add(server.onServerStop(() => {
// remove language feature providers on stop
if (localDisposables) {
localDisposables.dispose();
}
localDisposables = null;
}));
disposables.add(registerCommands(server, platformInfo, eventStream, optionProvider, omnisharpMonoResolver));
if (!context.workspaceState.get<boolean>('assetPromptDisabled')) {
disposables.add(server.onServerStart(() => {
// Update or add tasks.json and launch.json
addAssetsIfNecessary(server).then(result => {
if (result === AddAssetResult.Disable) {
context.workspaceState.update('assetPromptDisabled', true);
}
});
}));
}
// After server is started (and projects are loaded), check to see if there are
// any project.json projects if the suppress option is not set. If so, notify the user about migration.
let csharpConfig = vscode.workspace.getConfiguration('csharp');
if (!csharpConfig.get<boolean>('suppressProjectJsonWarning')) {
disposables.add(server.onServerStart(() => {
utils.requestWorkspaceInformation(server)
.then(workspaceInfo => {
if (workspaceInfo.DotNet && workspaceInfo.DotNet.Projects.length > 0) {
const shortMessage = 'project.json is no longer a supported project format for .NET Core applications.';
const moreDetailItem: vscode.MessageItem = { title: 'More Detail' };
vscode.window.showWarningMessage(shortMessage, moreDetailItem)
.then(item => {
eventStream.post(new ProjectJsonDeprecatedWarning());
});
}
});
}));
}
// Send telemetry about the sorts of projects the server was started on.
disposables.add(server.onServerStart(() => {
let measures: { [key: string]: number } = {};
utils.requestWorkspaceInformation(server)
.then(workspaceInfo => {
if (workspaceInfo.DotNet && workspaceInfo.DotNet.Projects.length > 0) {
measures['projectjson.projectcount'] = workspaceInfo.DotNet.Projects.length;
measures['projectjson.filecount'] = sum(workspaceInfo.DotNet.Projects, p => safeLength(p.SourceFiles));
}
if (workspaceInfo.MsBuild && workspaceInfo.MsBuild.Projects.length > 0) {
measures['msbuild.projectcount'] = workspaceInfo.MsBuild.Projects.length;
measures['msbuild.filecount'] = sum(workspaceInfo.MsBuild.Projects, p => safeLength(p.SourceFiles));
measures['msbuild.unityprojectcount'] = sum(workspaceInfo.MsBuild.Projects, p => p.IsUnityProject ? 1 : 0);
measures['msbuild.netcoreprojectcount'] = sum(workspaceInfo.MsBuild.Projects, p => utils.isNetCoreProject(p) ? 1 : 0);
}
// TODO: Add measurements for script.
eventStream.post(new OmnisharpStart('OmniSharp.Start', measures));
});
}));
disposables.add(server.onBeforeServerStart(path => {
if (options.razorDevMode) {
eventStream.post(new RazorDevModeActive());
}
// read and store last solution or folder path
context.workspaceState.update('lastSolutionPathOrFolder', path);
}));
if (options.autoStart) {
server.autoStart(context.workspaceState.get<string>('lastSolutionPathOrFolder'));
}
// stop server on deactivate
disposables.add(new Disposable(() => {
advisor.dispose();
server.stop();
}));
// Register ConfigurationProvider
disposables.add(vscode.debug.registerDebugConfigurationProvider('coreclr', new CSharpConfigurationProvider(server)));
context.subscriptions.push(disposables);
return new Promise<OmniSharpServer>(resolve =>
server.onServerStart(e =>
resolve(server)));
}
示例6: initialize
export function initialize(context: vscode.ExtensionContext): void {
// Activate Process Picker Commands
let attachItemsProvider: AttachItemsProvider = NativeAttachItemsProviderFactory.Get();
let attacher: AttachPicker = new AttachPicker(attachItemsProvider);
disposables.push(vscode.commands.registerCommand('extension.pickNativeProcess', () => attacher.ShowAttachEntries()));
let remoteAttacher: RemoteAttachPicker = new RemoteAttachPicker();
disposables.push(vscode.commands.registerCommand('extension.pickRemoteNativeProcess', (any) => remoteAttacher.ShowAttachEntries(any)));
// Activate ConfigurationProvider
let configurationProvider: IConfigurationAssetProvider = ConfigurationAssetProviderFactory.getConfigurationProvider();
// On non-windows platforms, the cppvsdbg debugger will not be registered for initial configurations.
// This will cause it to not show up on the dropdown list.
let vsdbgProvider: CppVsDbgConfigurationProvider = null;
if (os.platform() === 'win32') {
vsdbgProvider = new CppVsDbgConfigurationProvider(configurationProvider);
disposables.push(vscode.debug.registerDebugConfigurationProvider('cppvsdbg', new QuickPickConfigurationProvider(vsdbgProvider)));
}
const provider: CppDbgConfigurationProvider = new CppDbgConfigurationProvider(configurationProvider);
disposables.push(vscode.debug.registerDebugConfigurationProvider('cppdbg', new QuickPickConfigurationProvider(provider)));
disposables.push(vscode.commands.registerTextEditorCommand("C_Cpp.BuildAndDebugActiveFile", async (textEditor: vscode.TextEditor, edit: vscode.TextEditorEdit, ...args: any[]) => {
const folder: vscode.WorkspaceFolder = vscode.workspace.getWorkspaceFolder(textEditor.document.uri);
if (!folder) {
// Not enabled because we do not react to single-file mode correctly yet.
// We get an ENOENT when the user's c_cpp_properties.json is attempted to be parsed.
// The DefaultClient will also have its configuration accessed, but since it doesn't exist it errors out.
vscode.window.showErrorMessage('This command is not yet available for single-file mode.');
return Promise.resolve();
}
if (!util.fileIsCOrCppSource(textEditor.document.uri.fsPath)) {
vscode.window.showErrorMessage('Cannot build and debug because the active file is not a C or C++ source file.');
return Promise.resolve();
}
let configs: vscode.DebugConfiguration[] = (await provider.provideDebugConfigurations(folder)).filter(config => {
return config.name.indexOf(buildAndDebugActiveFileStr()) !== -1;
});
if (vsdbgProvider) {
let vsdbgConfigs: vscode.DebugConfiguration[] = (await vsdbgProvider.provideDebugConfigurations(folder)).filter(config => {
return config.name.indexOf(buildAndDebugActiveFileStr()) !== -1;
});
if (vsdbgConfigs) {
configs.push(...vsdbgConfigs);
}
}
interface MenuItem extends vscode.QuickPickItem {
configuration: vscode.DebugConfiguration;
}
const items: MenuItem[] = configs.map<MenuItem>(config => {
return {label: config.name, configuration: config};
});
vscode.window.showQuickPick(items, {placeHolder: (items.length === 0 ? "No compiler found" : "Select a compiler" )}).then(async selection => {
if (!selection) {
return; // User canceled it.
}
if (selection.label.startsWith("cl.exe")) {
if (!process.env.DevEnvDir || process.env.DevEnvDir.length === 0) {
vscode.window.showErrorMessage('cl.exe build and debug is only usable when VS Code is run from the Developer Command Prompt for VS.');
return;
}
}
if (selection.configuration.preLaunchTask) {
if (folder) {
try {
await util.ensureBuildTaskExists(selection.configuration.preLaunchTask);
Telemetry.logDebuggerEvent("buildAndDebug", { "success": "false" });
} catch (e) {
if (e && e.message === util.failedToParseTasksJson) {
vscode.window.showErrorMessage(util.failedToParseTasksJson);
}
return Promise.resolve();
}
} else {
return Promise.resolve();
// TODO uncomment this when single file mode works correctly.
// const buildTasks: vscode.Task[] = await getBuildTasks(true);
// const task: vscode.Task = buildTasks.find(task => task.name === selection.configuration.preLaunchTask);
// await vscode.tasks.executeTask(task);
// delete selection.configuration.preLaunchTask;
}
}
// Attempt to use the user's (possibly) modified configuration before using the generated one.
try {
await vscode.debug.startDebugging(folder, selection.configuration.name);
Telemetry.logDebuggerEvent("buildAndDebug", { "success": "true" });
} catch (e) {
try {
vscode.debug.startDebugging(folder, selection.configuration);
} catch (e) {
Telemetry.logDebuggerEvent("buildAndDebug", { "success": "false" });
}
}
});
}));
//.........这里部分代码省略.........
示例7: activate
//.........这里部分代码省略.........
// Set up diagnostics.
const diagnostics = vs.languages.createDiagnosticCollection("dart");
context.subscriptions.push(diagnostics);
const diagnosticsProvider = new DartDiagnosticProvider(analyzer, diagnostics);
// Set the roots, handling project changes that might affect SDKs.
context.subscriptions.push(vs.workspace.onDidChangeWorkspaceFolders((f) => recalculateAnalysisRoots()));
// TODO: Currently calculating analysis roots requires the version to check if
// we need the package workaround. In future if we stop supporting server < 1.20.1 we
// can unwrap this call so that it'll start sooner.
const serverConnected = analyzer.registerForServerConnected((sc) => {
serverConnected.dispose();
if (vs.workspace.workspaceFolders)
recalculateAnalysisRoots();
});
// Hook editor changes to send updated contents to analyzer.
context.subscriptions.push(new FileChangeHandler(analyzer));
// Fire up Flutter daemon if required.
if (workspaceContext.hasAnyFlutterMobileProjects) {
flutterDaemon = new FlutterDaemon(path.join(sdks.flutter, flutterPath), sdks.flutter);
context.subscriptions.push(flutterDaemon);
setUpDaemonMessageHandler(context, flutterDaemon);
}
util.logTime("All other stuff before debugger..");
const pubGlobal = new PubGlobal(extContext, sdks);
// Set up debug stuff.
const debugProvider = new DebugConfigProvider(sdks, analytics, pubGlobal, flutterDaemon && flutterDaemon.deviceManager, flutterCapabilities);
context.subscriptions.push(vs.debug.registerDebugConfigurationProvider("dart", debugProvider));
context.subscriptions.push(debugProvider);
// Setup that requires server version/capabilities.
const connectedSetup = analyzer.registerForServerConnected((sc) => {
connectedSetup.dispose();
if (analyzer.capabilities.supportsClosingLabels && config.closingLabels) {
context.subscriptions.push(new ClosingLabelsDecorations(analyzer));
}
if (analyzer.capabilities.supportsGetDeclerations) {
context.subscriptions.push(vs.languages.registerWorkspaceSymbolProvider(new DartWorkspaceSymbolProvider(analyzer)));
} else {
context.subscriptions.push(vs.languages.registerWorkspaceSymbolProvider(new LegacyDartWorkspaceSymbolProvider(analyzer)));
}
if (analyzer.capabilities.supportsCustomFolding && config.analysisServerFolding)
context.subscriptions.push(vs.languages.registerFoldingRangeProvider(DART_MODE, new DartFoldingProvider(analyzer)));
if (analyzer.capabilities.supportsGetSignature)
context.subscriptions.push(vs.languages.registerSignatureHelpProvider(
DART_MODE,
new DartSignatureHelpProvider(analyzer),
...(config.triggerSignatureHelpAutomatically ? ["(", ","] : []),
));
const documentSymbolProvider = new DartDocumentSymbolProvider(analyzer);
activeFileFilters.forEach((filter) => {
context.subscriptions.push(vs.languages.registerDocumentSymbolProvider(filter, documentSymbolProvider));
});
context.subscriptions.push(new OpenFileTracker(analyzer));
示例8: activate
//.........这里部分代码省略.........
localDisposables.push(vscode.languages.registerHoverProvider(documentSelector, new HoverProvider(server, reporter)));
localDisposables.push(vscode.languages.registerRenameProvider(documentSelector, new RenameProvider(server, reporter)));
if (options.useFormatting) {
localDisposables.push(vscode.languages.registerDocumentRangeFormattingEditProvider(documentSelector, new FormatProvider(server, reporter)));
localDisposables.push(vscode.languages.registerOnTypeFormattingEditProvider(documentSelector, new FormatProvider(server, reporter), '}', ';'));
}
localDisposables.push(vscode.languages.registerCompletionItemProvider(documentSelector, new CompletionItemProvider(server, reporter), '.', ' '));
localDisposables.push(vscode.languages.registerWorkspaceSymbolProvider(new WorkspaceSymbolProvider(server, reporter)));
localDisposables.push(vscode.languages.registerSignatureHelpProvider(documentSelector, new SignatureHelpProvider(server, reporter), '(', ','));
const codeActionProvider = new CodeActionProvider(server, reporter);
localDisposables.push(codeActionProvider);
localDisposables.push(vscode.languages.registerCodeActionsProvider(documentSelector, codeActionProvider));
localDisposables.push(reportDiagnostics(server, reporter, advisor));
localDisposables.push(forwardChanges(server));
}));
disposables.push(server.onServerStop(() => {
// remove language feature providers on stop
vscode.Disposable.from(...localDisposables).dispose();
}));
disposables.push(registerCommands(server, reporter, channel));
disposables.push(reportStatus(server));
if (!context.workspaceState.get<boolean>('assetPromptDisabled')) {
disposables.push(server.onServerStart(() => {
// Update or add tasks.json and launch.json
addAssetsIfNecessary(server).then(result => {
if (result === AddAssetResult.Disable) {
context.workspaceState.update('assetPromptDisabled', true);
}
});
}));
}
// After server is started (and projects are loaded), check to see if there are
// any project.json projects if the suppress option is not set. If so, notify the user about migration.
let csharpConfig = vscode.workspace.getConfiguration('csharp');
if (!csharpConfig.get<boolean>('suppressProjectJsonWarning')) {
disposables.push(server.onServerStart(() => {
utils.requestWorkspaceInformation(server)
.then(workspaceInfo => {
if (workspaceInfo.DotNet && workspaceInfo.DotNet.Projects.length > 0) {
const shortMessage = 'project.json is no longer a supported project format for .NET Core applications.';
const detailedMessage = "Warning: project.json is no longer a supported project format for .NET Core applications. Update to the latest version of .NET Core (https://aka.ms/netcoredownload) and use 'dotnet migrate' to upgrade your project (see https://aka.ms/netcoremigrate for details).";
const moreDetailItem: vscode.MessageItem = { title: 'More Detail' };
vscode.window.showWarningMessage(shortMessage, moreDetailItem)
.then(item => {
channel.appendLine(detailedMessage);
channel.show();
});
}
});
}));
}
// Send telemetry about the sorts of projects the server was started on.
disposables.push(server.onServerStart(() => {
let measures: { [key: string]: number } = {};
utils.requestWorkspaceInformation(server)
.then(workspaceInfo => {
if (workspaceInfo.DotNet && workspaceInfo.DotNet.Projects.length > 0) {
measures['projectjson.projectcount'] = workspaceInfo.DotNet.Projects.length;
measures['projectjson.filecount'] = sum(workspaceInfo.DotNet.Projects, p => safeLength(p.SourceFiles));
}
if (workspaceInfo.MsBuild && workspaceInfo.MsBuild.Projects.length > 0) {
measures['msbuild.projectcount'] = workspaceInfo.MsBuild.Projects.length;
measures['msbuild.filecount'] = sum(workspaceInfo.MsBuild.Projects, p => safeLength(p.SourceFiles));
measures['msbuild.unityprojectcount'] = sum(workspaceInfo.MsBuild.Projects, p => p.IsUnityProject ? 1 : 0);
measures['msbuild.netcoreprojectcount'] = sum(workspaceInfo.MsBuild.Projects, p => utils.isNetCoreProject(p) ? 1 : 0);
}
// TODO: Add measurements for script.
reporter.sendTelemetryEvent('OmniSharp.Start', null, measures);
});
}));
// read and store last solution or folder path
disposables.push(server.onBeforeServerStart(path => context.workspaceState.update('lastSolutionPathOrFolder', path)));
if (options.autoStart) {
server.autoStart(context.workspaceState.get<string>('lastSolutionPathOrFolder'));
}
// stop server on deactivate
disposables.push(new vscode.Disposable(() => {
advisor.dispose();
server.stop();
}));
// Register ConfigurationProvider
disposables.push(vscode.debug.registerDebugConfigurationProvider('coreclr', new CSharpConfigurationProvider(server)));
context.subscriptions.push(...disposables);
return new Promise<string>(resolve => server.onServerStart(e => resolve(e)));
}
示例9: activate
//.........这里部分代码省略.........
unitTestOutChannel = vscode.window.createOutputChannel(pythonSettings.unitTest.outputWindow);
unitTestOutChannel.clear();
}
sortImports.activate(context, formatOutChannel);
const interpreterManager = new InterpreterManager();
await interpreterManager.autoSetInterpreter();
context.subscriptions.push(interpreterManager);
context.subscriptions.push(new SetInterpreterProvider(interpreterManager));
context.subscriptions.push(...activateExecInTerminalProvider());
context.subscriptions.push(activateUpdateSparkLibraryProvider());
activateSimplePythonRefactorProvider(context, formatOutChannel);
context.subscriptions.push(activateFormatOnSaveProvider(PYTHON, settings.PythonSettings.getInstance(), formatOutChannel));
context.subscriptions.push(activateGoToObjectDefinitionProvider(context));
context.subscriptions.push(vscode.commands.registerCommand(Commands.Start_REPL, () => {
getPathFromPythonCommand(["-c", "import sys;print(sys.executable)"]).catch(() => {
return pythonSettings.pythonPath;
}).then(pythonExecutablePath => {
let term = vscode.window.createTerminal('Python', pythonExecutablePath);
term.show();
context.subscriptions.push(term);
});
}));
// Enable indentAction
vscode.languages.setLanguageConfiguration(PYTHON.language, {
onEnterRules: [
{
beforeText: /^\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async).*?:\s*$/,
action: { indentAction: vscode.IndentAction.Indent }
},
{
beforeText: /^ *#.*$/,
afterText: /.+$/,
action: { indentAction: vscode.IndentAction.None, appendText: '# ' },
},
{
beforeText: /^\s+(continue|break|return)\b.*$/,
action: { indentAction: vscode.IndentAction.Outdent },
}
]
});
context.subscriptions.push(vscode.languages.registerRenameProvider(PYTHON, new PythonRenameProvider(formatOutChannel)));
const definitionProvider = new PythonDefinitionProvider(context);
const jediProx = definitionProvider.JediProxy;
context.subscriptions.push(vscode.languages.registerDefinitionProvider(PYTHON, definitionProvider));
context.subscriptions.push(vscode.languages.registerHoverProvider(PYTHON, new PythonHoverProvider(context, jediProx)));
context.subscriptions.push(vscode.languages.registerReferenceProvider(PYTHON, new PythonReferenceProvider(context, jediProx)));
context.subscriptions.push(vscode.languages.registerCompletionItemProvider(PYTHON, new PythonCompletionItemProvider(context, jediProx), '.'));
context.subscriptions.push(vscode.languages.registerCodeLensProvider(PYTHON, new ShebangCodeLensProvider()))
const symbolProvider = new PythonSymbolProvider(context, jediProx);
context.subscriptions.push(vscode.languages.registerDocumentSymbolProvider(PYTHON, symbolProvider));
if (pythonSettings.devOptions.indexOf('DISABLE_SIGNATURE') === -1) {
context.subscriptions.push(vscode.languages.registerSignatureHelpProvider(PYTHON, new PythonSignatureProvider(context, jediProx), '(', ','));
}
if (pythonSettings.formatting.provider !== 'none') {
const formatProvider = new PythonFormattingEditProvider(context, formatOutChannel, pythonSettings);
context.subscriptions.push(vscode.languages.registerDocumentFormattingEditProvider(PYTHON, formatProvider));
context.subscriptions.push(vscode.languages.registerDocumentRangeFormattingEditProvider(PYTHON, formatProvider));
}
const jupyterExtInstalled = vscode.extensions.getExtension('donjayamanne.jupyter');
let linterProvider = new LintProvider(context, lintingOutChannel, (a, b) => Promise.resolve(false));
context.subscriptions.push();
if (jupyterExtInstalled) {
if (jupyterExtInstalled.isActive) {
jupyterExtInstalled.exports.registerLanguageProvider(PYTHON.language, new JupyterProvider());
linterProvider.documentHasJupyterCodeCells = jupyterExtInstalled.exports.hasCodeCells;
}
jupyterExtInstalled.activate().then(() => {
jupyterExtInstalled.exports.registerLanguageProvider(PYTHON.language, new JupyterProvider());
linterProvider.documentHasJupyterCodeCells = jupyterExtInstalled.exports.hasCodeCells;
});
}
else {
jupMain = new jup.Jupyter(lintingOutChannel);
const documentHasJupyterCodeCells = jupMain.hasCodeCells.bind(jupMain);
jupMain.activate();
context.subscriptions.push(jupMain);
linterProvider.documentHasJupyterCodeCells = documentHasJupyterCodeCells;
}
tests.activate(context, unitTestOutChannel, symbolProvider);
context.subscriptions.push(new WorkspaceSymbols(lintingOutChannel));
context.subscriptions.push(vscode.languages.registerOnTypeFormattingEditProvider(PYTHON, new BlockFormatProviders(), ':'));
// In case we have CR LF
const triggerCharacters: string[] = os.EOL.split('');
triggerCharacters.shift();
const hepProvider = new HelpProvider();
context.subscriptions.push(hepProvider);
context.subscriptions.push(vscode.debug.registerDebugConfigurationProvider('python', new SimpleConfigurationProvider()));
activationDeferred.resolve();
}