|
|
|
|
@@ -35,17 +35,17 @@ import { IModeService } from 'vs/editor/common/services/modeService';
|
|
|
|
|
import { IHistoryService } from 'vs/workbench/services/history/common/history';
|
|
|
|
|
import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation';
|
|
|
|
|
import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService';
|
|
|
|
|
import { IWindowsService, IWindowService, INativeOpenDialogOptions, IEnterWorkspaceResult, IMessageBoxResult, MenuBarVisibility, IURIToOpen, IOpenSettings, IWindowConfiguration } from 'vs/platform/windows/common/windows';
|
|
|
|
|
import { IWindowsService, IWindowService, MenuBarVisibility, IURIToOpen, IOpenSettings, IWindowConfiguration } from 'vs/platform/windows/common/windows';
|
|
|
|
|
import { TestWorkspace } from 'vs/platform/workspace/test/common/testWorkspace';
|
|
|
|
|
import { createTextBufferFactoryFromStream } from 'vs/editor/common/model/textModel';
|
|
|
|
|
import { IEnvironmentService, ParsedArgs } from 'vs/platform/environment/common/environment';
|
|
|
|
|
import { IEnvironmentService } from 'vs/platform/environment/common/environment';
|
|
|
|
|
import { IThemeService } from 'vs/platform/theme/common/themeService';
|
|
|
|
|
import { TestThemeService } from 'vs/platform/theme/test/common/testThemeService';
|
|
|
|
|
import { IWorkspaceIdentifier, ISingleFolderWorkspaceIdentifier, isSingleFolderWorkspaceIdentifier } from 'vs/platform/workspaces/common/workspaces';
|
|
|
|
|
import { IRecentlyOpened, IRecent } from 'vs/platform/history/common/history';
|
|
|
|
|
import { ITextResourceConfigurationService, ITextResourcePropertiesService } from 'vs/editor/common/services/resourceConfiguration';
|
|
|
|
|
import { IPosition, Position as EditorPosition } from 'vs/editor/common/core/position';
|
|
|
|
|
import { IMenuService, MenuId, IMenu, ISerializableCommandAction } from 'vs/platform/actions/common/actions';
|
|
|
|
|
import { IMenuService, MenuId, IMenu } from 'vs/platform/actions/common/actions';
|
|
|
|
|
import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
|
|
|
|
|
import { MockContextKeyService, MockKeybindingService } from 'vs/platform/keybinding/test/common/mockKeybindingService';
|
|
|
|
|
import { ITextBufferFactory, DefaultEndOfLine, EndOfLinePreference, IModelDecorationOptions, ITextModel, ITextSnapshot } from 'vs/editor/common/model';
|
|
|
|
|
@@ -71,7 +71,7 @@ import { IViewletService } from 'vs/workbench/services/viewlet/browser/viewlet';
|
|
|
|
|
import { ViewletDescriptor, Viewlet } from 'vs/workbench/browser/viewlet';
|
|
|
|
|
import { IViewlet } from 'vs/workbench/common/viewlet';
|
|
|
|
|
import { IStorageService, InMemoryStorageService } from 'vs/platform/storage/common/storage';
|
|
|
|
|
import { isLinux, isMacintosh, IProcessEnvironment } from 'vs/base/common/platform';
|
|
|
|
|
import { isLinux, isMacintosh } from 'vs/base/common/platform';
|
|
|
|
|
import { LabelService } from 'vs/workbench/services/label/common/labelService';
|
|
|
|
|
import { IDimension } from 'vs/platform/layout/browser/layoutService';
|
|
|
|
|
import { Part } from 'vs/workbench/browser/part';
|
|
|
|
|
@@ -460,8 +460,8 @@ export class TestLayoutService implements IWorkbenchLayoutService {
|
|
|
|
|
onPanelPositionChange: Event<string> = Event.None;
|
|
|
|
|
onLayout = Event.None;
|
|
|
|
|
|
|
|
|
|
private _onTitleBarVisibilityChange = new Emitter<void>();
|
|
|
|
|
private _onMenubarVisibilityChange = new Emitter<Dimension>();
|
|
|
|
|
private readonly _onTitleBarVisibilityChange = new Emitter<void>();
|
|
|
|
|
private readonly _onMenubarVisibilityChange = new Emitter<Dimension>();
|
|
|
|
|
|
|
|
|
|
public get onTitleBarVisibilityChange(): Event<void> {
|
|
|
|
|
return this._onTitleBarVisibilityChange.event;
|
|
|
|
|
@@ -1167,14 +1167,14 @@ export class TestCodeEditorService implements ICodeEditorService {
|
|
|
|
|
addDiffEditor(_editor: IDiffEditor): void { }
|
|
|
|
|
removeDiffEditor(_editor: IDiffEditor): void { }
|
|
|
|
|
listDiffEditors(): IDiffEditor[] { return []; }
|
|
|
|
|
getFocusedCodeEditor(): ICodeEditor | null { return null; }
|
|
|
|
|
getFocusedCodeEditor(): ICodeEditor | undefined { return undefined; }
|
|
|
|
|
registerDecorationType(_key: string, _options: IDecorationRenderOptions, _parentTypeKey?: string): void { }
|
|
|
|
|
removeDecorationType(_key: string): void { }
|
|
|
|
|
resolveDecorationOptions(_typeKey: string, _writable: boolean): IModelDecorationOptions { return Object.create(null); }
|
|
|
|
|
setTransientModelProperty(_model: ITextModel, _key: string, _value: any): void { }
|
|
|
|
|
getTransientModelProperty(_model: ITextModel, _key: string) { }
|
|
|
|
|
getActiveCodeEditor(): ICodeEditor | null { return null; }
|
|
|
|
|
openCodeEditor(_input: IResourceInput, _source: ICodeEditor, _sideBySide?: boolean): Promise<ICodeEditor | null> { return Promise.resolve(null); }
|
|
|
|
|
getActiveCodeEditor(): ICodeEditor | undefined { return undefined; }
|
|
|
|
|
openCodeEditor(_input: IResourceInput, _source: ICodeEditor, _sideBySide?: boolean): Promise<ICodeEditor | undefined> { return Promise.resolve(undefined); }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export class TestWindowService implements IWindowService {
|
|
|
|
|
@@ -1192,54 +1192,6 @@ export class TestWindowService implements IWindowService {
|
|
|
|
|
return Promise.resolve(false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
isMaximized(): Promise<boolean> {
|
|
|
|
|
return Promise.resolve(false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pickFileFolderAndOpen(_options: INativeOpenDialogOptions): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pickFileAndOpen(_options: INativeOpenDialogOptions): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pickFolderAndOpen(_options: INativeOpenDialogOptions): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pickWorkspaceAndOpen(_options: INativeOpenDialogOptions): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
reloadWindow(): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
openDevTools(): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
toggleDevTools(): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
closeWorkspace(): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
enterWorkspace(_path: URI): Promise<IEnterWorkspaceResult | undefined> {
|
|
|
|
|
return Promise.resolve(undefined);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
toggleFullScreen(): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
setRepresentedFilename(_fileName: string): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getRecentlyOpened(): Promise<IRecentlyOpened> {
|
|
|
|
|
return Promise.resolve({
|
|
|
|
|
workspaces: [],
|
|
|
|
|
@@ -1259,53 +1211,9 @@ export class TestWindowService implements IWindowService {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
maximizeWindow(): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
unmaximizeWindow(): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
minimizeWindow(): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
openWindow(_uris: IURIToOpen[], _options?: IOpenSettings): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
closeWindow(): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
setDocumentEdited(_flag: boolean): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
onWindowTitleDoubleClick(): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
showMessageBox(_options: Electron.MessageBoxOptions): Promise<IMessageBoxResult> {
|
|
|
|
|
return Promise.resolve({ button: 0 });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
showSaveDialog(_options: Electron.SaveDialogOptions): Promise<string> {
|
|
|
|
|
throw new Error('not implemented');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
showOpenDialog(_options: Electron.OpenDialogOptions): Promise<string[]> {
|
|
|
|
|
throw new Error('not implemented');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
updateTouchBar(_items: ISerializableCommandAction[][]): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resolveProxy(url: string): Promise<string | undefined> {
|
|
|
|
|
return Promise.resolve(undefined);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export class TestLifecycleService implements ILifecycleService {
|
|
|
|
|
@@ -1315,9 +1223,9 @@ export class TestLifecycleService implements ILifecycleService {
|
|
|
|
|
public phase: LifecyclePhase;
|
|
|
|
|
public startupKind: StartupKind;
|
|
|
|
|
|
|
|
|
|
private _onBeforeShutdown = new Emitter<BeforeShutdownEvent>();
|
|
|
|
|
private _onWillShutdown = new Emitter<WillShutdownEvent>();
|
|
|
|
|
private _onShutdown = new Emitter<void>();
|
|
|
|
|
private readonly _onBeforeShutdown = new Emitter<BeforeShutdownEvent>();
|
|
|
|
|
private readonly _onWillShutdown = new Emitter<WillShutdownEvent>();
|
|
|
|
|
private readonly _onShutdown = new Emitter<void>();
|
|
|
|
|
|
|
|
|
|
when(): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
@@ -1362,50 +1270,6 @@ export class TestWindowsService implements IWindowsService {
|
|
|
|
|
return Promise.resolve(false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pickFileFolderAndOpen(_options: INativeOpenDialogOptions): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pickFileAndOpen(_options: INativeOpenDialogOptions): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pickFolderAndOpen(_options: INativeOpenDialogOptions): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pickWorkspaceAndOpen(_options: INativeOpenDialogOptions): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
reloadWindow(_windowId: number): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
openDevTools(_windowId: number): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
toggleDevTools(_windowId: number): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
closeWorkspace(_windowId: number): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
enterWorkspace(_windowId: number, _path: URI): Promise<IEnterWorkspaceResult | undefined> {
|
|
|
|
|
return Promise.resolve(undefined);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
toggleFullScreen(_windowId: number): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
setRepresentedFilename(_windowId: number, _fileName: string): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
addRecentlyOpened(_recents: IRecent[]): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
@@ -1429,125 +1293,18 @@ export class TestWindowsService implements IWindowsService {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
closeWindow(_windowId: number): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
isMaximized(_windowId: number): Promise<boolean> {
|
|
|
|
|
return Promise.resolve(false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
maximizeWindow(_windowId: number): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
minimizeWindow(_windowId: number): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
unmaximizeWindow(_windowId: number): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
onWindowTitleDoubleClick(_windowId: number): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
setDocumentEdited(_windowId: number, _flag: boolean): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
quit(): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
relaunch(_options: { addArgs?: string[], removeArgs?: string[] }): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
whenSharedProcessReady(): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
toggleSharedProcess(): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Global methods
|
|
|
|
|
openWindow(_windowId: number, _uris: IURIToOpen[], _options: IOpenSettings): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
openNewWindow(): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
openExtensionDevelopmentHostWindow(args: ParsedArgs, env: IProcessEnvironment): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getWindows(): Promise<{ id: number; workspace?: IWorkspaceIdentifier; folderUri?: ISingleFolderWorkspaceIdentifier; title: string; filename?: string; }[]> {
|
|
|
|
|
throw new Error('not implemented');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
newWindowTab(): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
showPreviousWindowTab(): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
showNextWindowTab(): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
moveWindowTabToNewWindow(): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
mergeAllWindowTabs(): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
toggleWindowTabsBar(): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
updateTouchBar(_windowId: number, _items: ISerializableCommandAction[][]): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getActiveWindowId(): Promise<number | undefined> {
|
|
|
|
|
return Promise.resolve(undefined);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// This needs to be handled from browser process to prevent
|
|
|
|
|
// foreground ordering issues on Windows
|
|
|
|
|
openExternal(_url: string): Promise<boolean> {
|
|
|
|
|
return Promise.resolve(true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// TODO: this is a bit backwards
|
|
|
|
|
startCrashReporter(_config: Electron.CrashReporterStartOptions): Promise<void> {
|
|
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
showMessageBox(_windowId: number, _options: Electron.MessageBoxOptions): Promise<IMessageBoxResult> {
|
|
|
|
|
throw new Error('not implemented');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
showSaveDialog(_windowId: number, _options: Electron.SaveDialogOptions): Promise<string> {
|
|
|
|
|
throw new Error('not implemented');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
showOpenDialog(_windowId: number, _options: Electron.OpenDialogOptions): Promise<string[]> {
|
|
|
|
|
throw new Error('not implemented');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resolveProxy(windowId: number, url: string): Promise<string | undefined> {
|
|
|
|
|
return Promise.resolve(undefined);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export class TestTextResourceConfigurationService implements ITextResourceConfigurationService {
|
|
|
|
|
@@ -1598,6 +1355,9 @@ export class TestSharedProcessService implements ISharedProcessService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
registerChannel(channelName: string, channel: any): void { }
|
|
|
|
|
|
|
|
|
|
async toggleSharedProcessWindow(): Promise<void> { }
|
|
|
|
|
async whenSharedProcessReady(): Promise<void> { }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export class RemoteFileSystemProvider implements IFileSystemProvider {
|
|
|
|
|
@@ -1636,4 +1396,12 @@ export class TestHostService implements IHostService {
|
|
|
|
|
_serviceBrand: undefined;
|
|
|
|
|
|
|
|
|
|
windowCount = Promise.resolve(1);
|
|
|
|
|
|
|
|
|
|
async restart(): Promise<void> { }
|
|
|
|
|
async reload(): Promise<void> { }
|
|
|
|
|
async closeWorkspace(): Promise<void> { }
|
|
|
|
|
|
|
|
|
|
async openEmptyWindow(options?: { reuse?: boolean, remoteAuthority?: string }): Promise<void> { }
|
|
|
|
|
|
|
|
|
|
async toggleFullScreen(): Promise<void> { }
|
|
|
|
|
}
|
|
|
|
|
|