/********************************************************************************
* Copyright (C) 2017 TypeFox 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 WITH Classpath-exception-2.0
********************************************************************************/
///
import { MessageType } from '@devpodio/core/lib/common/message-service-protocol';
import { QuickOpenService, QuickOpenModel, QuickOpenOptions, QuickOpenItem, QuickOpenGroupItem, KeySequence, QuickOpenActionProvider, QuickOpenAction, ResolvedKeybinding, KeyCode, Key, KeybindingRegistry } from '@devpodio/core/lib/browser';
import { ContextKey } from '@devpodio/core/lib/browser/context-key-service';
import { MonacoContextKeyService } from './monaco-context-key-service';
export interface MonacoQuickOpenControllerOpts extends monaco.quickOpen.IQuickOpenControllerOpts {
readonly prefix?: string;
readonly password?: boolean;
readonly ignoreFocusOut?: boolean;
onType?(lookFor: string, acceptor: (model: monaco.quickOpen.QuickOpenModel) => void): void;
onClose?(canceled: boolean): void;
}
export declare class MonacoQuickOpenService extends QuickOpenService {
protected readonly container: HTMLElement;
protected _widget: monaco.quickOpen.QuickOpenWidget | undefined;
protected opts: MonacoQuickOpenControllerOpts | undefined;
protected previousActiveElement: Element | undefined;
protected readonly contextKeyService: MonacoContextKeyService;
protected readonly keybindingRegistry: KeybindingRegistry;
protected inQuickOpenKey: ContextKey;
constructor();
protected init(): void;
open(model: QuickOpenModel, options?: QuickOpenOptions): void;
showDecoration(type: MessageType): void;
hideDecoration(): void;
internalOpen(opts: MonacoQuickOpenControllerOpts): void;
setPlaceHolder(placeHolder: string): void;
setPassword(isPassword: boolean): void;
showInputDecoration(decoration: monaco.MarkerSeverity): void;
clearInputDecoration(): void;
protected readonly widget: monaco.quickOpen.QuickOpenWidget;
protected attachQuickOpenStyler(): void;
protected onClose(cancelled: boolean): void;
protected onType(lookFor: string): Promise;
}
export declare class MonacoQuickOpenControllerOptsImpl implements MonacoQuickOpenControllerOpts {
protected readonly model: QuickOpenModel;
protected readonly keybindingService: TheiaKeybindingService;
protected readonly options: QuickOpenOptions.Resolved;
readonly password?: boolean;
constructor(model: QuickOpenModel, keybindingService: TheiaKeybindingService, options?: QuickOpenOptions);
readonly prefix: string;
readonly ignoreFocusOut: boolean;
readonly inputAriaLabel: string;
onClose(cancelled: boolean): void;
private toOpenModel;
getModel(lookFor: string): monaco.quickOpen.QuickOpenModel;
onType(lookFor: string, acceptor: (model: monaco.quickOpen.QuickOpenModel) => void): void;
protected createEntry(item: QuickOpenItem, lookFor: string): monaco.quickOpen.QuickOpenEntry | undefined;
protected matchesFuzzy(lookFor: string, value: string | undefined, options?: QuickOpenOptions.FuzzyMatchOptions | boolean): monaco.quickOpen.IHighlight[] | undefined;
getAutoFocus(lookFor: string): monaco.quickOpen.IAutoFocus;
}
export declare class QuickOpenEntry extends monaco.quickOpen.QuickOpenEntry {
readonly item: QuickOpenItem;
protected readonly keybindingService: TheiaKeybindingService;
constructor(item: QuickOpenItem, keybindingService: TheiaKeybindingService);
getLabel(): string | undefined;
getAriaLabel(): string | undefined;
getDetail(): string | undefined;
getDescription(): string | undefined;
isHidden(): boolean;
getResource(): monaco.Uri | undefined;
getIcon(): string | undefined;
getKeybinding(): monaco.keybindings.ResolvedKeybinding | undefined;
run(mode: monaco.quickOpen.Mode): boolean;
}
export declare class QuickOpenEntryGroup extends monaco.quickOpen.QuickOpenEntryGroup {
readonly item: QuickOpenGroupItem;
protected readonly keybindingService: TheiaKeybindingService;
constructor(item: QuickOpenGroupItem, keybindingService: TheiaKeybindingService);
getGroupLabel(): string;
showBorder(): boolean;
}
export declare class MonacoQuickOpenAction implements monaco.quickOpen.IAction {
readonly action: QuickOpenAction;
constructor(action: QuickOpenAction);
readonly id: string;
readonly label: string;
readonly tooltip: string;
readonly class: string | undefined;
readonly enabled: boolean;
readonly checked: boolean;
readonly radio: boolean;
run(entry: QuickOpenEntry | QuickOpenEntryGroup): PromiseLike;
dispose(): void;
}
export declare class MonacoQuickOpenActionProvider implements monaco.quickOpen.IActionProvider {
readonly provider: QuickOpenActionProvider;
constructor(provider: QuickOpenActionProvider);
hasActions(element: any, entry: QuickOpenEntry | QuickOpenEntryGroup): boolean;
getActions(element: any, entry: QuickOpenEntry | QuickOpenEntryGroup): monaco.Promise;
hasSecondaryActions(): boolean;
getSecondaryActions(): monaco.Promise;
getActionItem(): undefined;
}
interface TheiaKeybindingService {
resolveKeybinding(binding: ResolvedKeybinding): KeyCode[];
acceleratorForKey(key: Key): string;
acceleratorForKeyCode(keyCode: KeyCode, separator?: string): string;
acceleratorForSequence(keySequence: KeySequence, separator?: string): string[];
}
export {};
//# sourceMappingURL=monaco-quick-open-service.d.ts.map