/******************************************************************************** * Copyright (C) 2021 Ericsson and others. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v. 2.0 which is available at * http://www.eclipse.org/legal/epl-2.0. * * This Source Code may also be made available under the following Secondary * Licenses when the conditions for such availability set forth in the Eclipse * Public License v. 2.0 are satisfied: GNU General Public License, version 2 * with the GNU Classpath Exception which is available at * https://www.gnu.org/software/classpath/license.html. * * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0 ********************************************************************************/ import * as React from '@theia/core/shared/react'; import { DebugConfigurationManager } from '../debug-configuration-manager'; import { DebugSessionOptions } from '../debug-session-options'; import { SelectOption } from '@theia/core/lib/browser/widgets/select-component'; import { QuickInputService } from '@theia/core/lib/browser'; import { DebugSessionConfigurationLabelProvider } from '../debug-session-configuration-label-provider'; import { DynamicDebugConfigurationProvider } from '../../common/debug-service'; interface DynamicPickItem { label: string; configurationType: string; request: string; providerType: string; workspaceFolderUri?: string; } export interface DebugConfigurationSelectProps { manager: DebugConfigurationManager; quickInputService: QuickInputService; labelProvider: DebugSessionConfigurationLabelProvider; isMultiRoot: boolean; } export interface DebugProviderSelectState { providers: DynamicDebugConfigurationProvider[]; currentValue: string | undefined; } export declare class DebugConfigurationSelect extends React.Component { protected static readonly SEPARATOR = "\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"; protected static readonly PICK = "__PICK__"; protected static readonly NO_CONFIGURATION = "__NO_CONF__"; protected static readonly ADD_CONFIGURATION = "__ADD_CONF__"; protected static readonly CONFIG_MARKER = "__CONFIG__"; private readonly selectRef; private manager; private quickInputService; constructor(props: DebugConfigurationSelectProps); componentDidUpdate(): void; componentDidMount(): void; render(): React.ReactNode; protected get currentValue(): string; protected getCurrentOption(current: DebugSessionOptions | undefined): SelectOption | undefined; protected matchesOption(sessionOption: DebugSessionOptions, current: DebugSessionOptions): boolean; protected readonly setCurrentConfiguration: (option: SelectOption) => false | undefined; protected toPickValue(providerType: string): string; protected parsePickValue(value: string): string; /** * Fetches the actual debug configurations for a provider (which may have multiple types). * This is called lazily when the user selects a provider from the dropdown, * triggering extension activation and provideDebugConfigurations call only for the * specified types, rather than activating all extensions. */ protected resolveDynamicConfigurationPicks(provider: DynamicDebugConfigurationProvider): Promise; protected selectDynamicConfigFromQuickPick(provider: DynamicDebugConfigurationProvider): Promise; /** * Refreshes the list of dynamic configuration providers shown in the dropdown. * This is lightweight - it only gets the provider labels without invoking the * providers. */ protected refreshDebugConfigurations: () => void; protected renderOptions(): SelectOption[]; protected toName(options: DebugSessionOptions, multiRoot: boolean): string; protected toBaseName(uri: string | undefined): string; } export {}; //# sourceMappingURL=debug-configuration-select.d.ts.map