/********************************************************************************
* Copyright (C) 2018 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 { ProtocolToMonacoConverter, MonacoToProtocolConverter } from 'monaco-languageclient';
import { FileSystem } from '@devpodio/filesystem/lib/common';
import { FileSystemWatcher } from '@devpodio/filesystem/lib/browser';
import { WorkspaceService } from '@devpodio/workspace/lib/browser';
import { EditorManager, EditorOpenerOptions } from '@devpodio/editor/lib/browser';
import * as lang from '@devpodio/languages/lib/browser';
import { TextDocumentWillSaveEvent } from '@devpodio/languages/lib/browser';
import { MonacoTextModelService } from './monaco-text-model-service';
import { WillSaveMonacoModelEvent, MonacoEditorModel, MonacoModelContentChangedEvent } from './monaco-editor-model';
import { MonacoEditor } from './monaco-editor';
import { MonacoConfigurations } from './monaco-configurations';
import { ProblemManager } from '@devpodio/markers/lib/browser';
export interface MonacoDidChangeTextDocumentParams extends lang.DidChangeTextDocumentParams {
readonly textDocument: MonacoEditorModel;
}
export interface MonacoTextDocumentWillSaveEvent extends TextDocumentWillSaveEvent {
readonly textDocument: MonacoEditorModel;
}
interface EditsByEditor {
uri: string;
version: number | undefined;
editor?: MonacoEditor | undefined;
textEdits: monaco.languages.TextEdit[];
}
export declare class MonacoWorkspace implements lang.Workspace {
readonly capabilities: {
applyEdit: boolean;
workspaceEdit: {
documentChanges: boolean;
};
};
protected resolveReady: () => void;
readonly ready: Promise;
protected readonly onDidOpenTextDocumentEmitter: lang.Emitter;
readonly onDidOpenTextDocument: lang.Event;
protected readonly onDidCloseTextDocumentEmitter: lang.Emitter;
readonly onDidCloseTextDocument: lang.Event;
protected readonly onDidChangeTextDocumentEmitter: lang.Emitter;
readonly onDidChangeTextDocument: lang.Event;
protected readonly onWillSaveTextDocumentEmitter: lang.Emitter;
readonly onWillSaveTextDocument: lang.Event;
protected readonly onDidSaveTextDocumentEmitter: lang.Emitter;
readonly onDidSaveTextDocument: lang.Event;
protected readonly fileSystem: FileSystem;
protected readonly workspaceService: WorkspaceService;
protected readonly fileSystemWatcher: FileSystemWatcher;
protected readonly textModelService: MonacoTextModelService;
protected readonly m2p: MonacoToProtocolConverter;
protected readonly p2m: ProtocolToMonacoConverter;
protected readonly editorManager: EditorManager;
readonly configurations: MonacoConfigurations;
protected readonly problems: ProblemManager;
protected init(): void;
protected _rootUri: string | null;
readonly rootUri: string | null;
readonly rootPath: string | null;
readonly textDocuments: MonacoEditorModel[];
getTextDocument(uri: string): MonacoEditorModel | undefined;
protected fireDidOpen(model: MonacoEditorModel): void;
protected doFireDidOpen(model: MonacoEditorModel): void;
protected fireDidClose(model: MonacoEditorModel): void;
protected fireDidChangeContent(event: MonacoModelContentChangedEvent): void;
protected fireWillSave(event: WillSaveMonacoModelEvent): void;
protected fireDidSave(model: MonacoEditorModel): void;
protected openEditorIfDirty(model: MonacoEditorModel): void;
createFileSystemWatcher(globPattern: string, ignoreCreateEvents?: boolean, ignoreChangeEvents?: boolean, ignoreDeleteEvents?: boolean): lang.FileSystemWatcher;
applyEdit(changes: lang.WorkspaceEdit, options?: EditorOpenerOptions): Promise;
applyBulkEdit(workspaceEdit: monaco.languages.WorkspaceEdit, options?: EditorOpenerOptions): monaco.Promise;
protected openEditors(editorEdits: EditsByEditor[], options?: EditorOpenerOptions): Promise;
protected checkVersions(editorEdits: EditsByEditor[]): void;
protected getAriaSummary(totalEdits: number, totalFiles: number): string;
protected groupEdits(workspaceEdit: monaco.languages.WorkspaceEdit): EditsByEditor[];
}
export {};
//# sourceMappingURL=monaco-workspace.d.ts.map