Merge from vscode 966b87dd4013be1a9c06e2b8334522ec61905cc2 (#4696)

This commit is contained in:
Anthony Dresser
2019-03-26 11:43:38 -07:00
committed by GitHub
parent b1393ae615
commit 0d8ef9583b
268 changed files with 5947 additions and 3422 deletions

View File

@@ -253,7 +253,7 @@ export abstract class BaseSwitchWindow extends Action {
});
}).then(pick => {
if (pick) {
this.windowsService.showWindow(pick.payload);
this.windowsService.focusWindow(pick.payload);
}
});
}

View File

@@ -25,9 +25,6 @@ import { SupportsWorkspacesContext, IsMacContext, HasMacNativeTabsContext, IsDev
import { NoEditorsVisibleContext, SingleEditorGroupsContext } from 'vs/workbench/common/editor';
import { IWindowService, IWindowsService } from 'vs/platform/windows/common/windows';
import { LogStorageAction } from 'vs/platform/storage/node/storageService';
import { IWorkbenchContributionsRegistry, Extensions as WorkbenchExtensions } from 'vs/workbench/common/contributions';
import { LifecyclePhase } from 'vs/platform/lifecycle/common/lifecycle';
import { DiskFileSystemSupport } from 'vs/workbench/services/files2/node/diskFileSystemSupport';
// {{SQL CARBON EDIT}}
import { InstallVSIXAction } from 'vs/workbench/contrib/extensions/electron-browser/extensionsActions';
@@ -706,10 +703,3 @@ import { InstallVSIXAction } from 'vs/workbench/contrib/extensions/electron-brow
}
});
})();
// Disk File System
(function registerFileSystem(): void {
const registry = Registry.as<IWorkbenchContributionsRegistry>(WorkbenchExtensions.Workbench);
registry.registerWorkbenchContribution(DiskFileSystemSupport, LifecyclePhase.Starting);
})();

View File

@@ -12,7 +12,7 @@ import { ElectronWindow } from 'vs/workbench/electron-browser/window';
import { setZoomLevel, setZoomFactor, setFullscreen } from 'vs/base/browser/browser';
import { domContentLoaded, addDisposableListener, EventType, scheduleAtNextAnimationFrame } from 'vs/base/browser/dom';
import { onUnexpectedError } from 'vs/base/common/errors';
import { isLinux, isMacintosh, isWindows } from 'vs/base/common/platform';
import { isLinux, isMacintosh, isWindows, OperatingSystem } from 'vs/base/common/platform';
import { URI as uri } from 'vs/base/common/uri';
import { WorkspaceService, DefaultConfigurationExportHelper } from 'vs/workbench/services/configuration/node/configurationService';
import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors';
@@ -43,6 +43,11 @@ import { RemoteAuthorityResolverService } from 'vs/platform/remote/electron-brow
import { IRemoteAuthorityResolverService } from 'vs/platform/remote/common/remoteAuthorityResolver';
import { RemoteAgentService } from 'vs/workbench/services/remote/electron-browser/remoteAgentServiceImpl';
import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService';
import { FileService2 } from 'vs/workbench/services/files2/common/fileService2';
import { IFileService } from 'vs/platform/files/common/files';
import { DiskFileSystemProvider } from 'vs/workbench/services/files2/electron-browser/diskFileSystemProvider';
import { IChannel } from 'vs/base/parts/ipc/common/ipc';
import { REMOTE_FILE_SYSTEM_CHANNEL_NAME, RemoteExtensionsFileSystemProvider } from 'vs/platform/remote/common/remoteAgentFileSystemChannel';
class CodeRendererMain extends Disposable {
@@ -172,14 +177,31 @@ class CodeRendererMain extends Disposable {
const logService = this._register(this.createLogService(mainProcessService, environmentService));
serviceCollection.set(ILogService, logService);
// Files
const fileService = new FileService2(logService);
serviceCollection.set(IFileService, fileService);
fileService.registerProvider(Schemas.file, new DiskFileSystemProvider());
// Remote
const remoteAuthorityResolverService = new RemoteAuthorityResolverService();
serviceCollection.set(IRemoteAuthorityResolverService, remoteAuthorityResolverService);
const remoteAgentService = new RemoteAgentService(this.configuration, environmentService, remoteAuthorityResolverService);
serviceCollection.set(IRemoteAgentService, remoteAgentService);
const connection = remoteAgentService.getConnection();
if (connection) {
const channel = connection.getChannel<IChannel>(REMOTE_FILE_SYSTEM_CHANNEL_NAME);
const fileSystemProvider = new RemoteExtensionsFileSystemProvider(channel);
fileService.registerProvider('vscode-remote', fileSystemProvider);
remoteAgentService.getEnvironment().then(remoteAgentEnvironment => {
const isCaseSensitive = !!(remoteAgentEnvironment && remoteAgentEnvironment.os === OperatingSystem.Linux);
fileSystemProvider.setCaseSensitive(isCaseSensitive);
});
}
return this.resolveWorkspaceInitializationPayload(environmentService).then(payload => Promise.all([
this.createWorkspaceService(payload, environmentService, logService).then(service => {
this.createWorkspaceService(payload, environmentService, remoteAgentService, logService).then(service => {
// Workspace
serviceCollection.set(IWorkspaceContextService, service);
@@ -270,8 +292,8 @@ class CodeRendererMain extends Disposable {
}, error => onUnexpectedError(error));
}
private createWorkspaceService(payload: IWorkspaceInitializationPayload, environmentService: IEnvironmentService, logService: ILogService): Promise<WorkspaceService> {
const workspaceService = new WorkspaceService(environmentService);
private createWorkspaceService(payload: IWorkspaceInitializationPayload, environmentService: IEnvironmentService, remoteAgentService: IRemoteAgentService, logService: ILogService): Promise<WorkspaceService> {
const workspaceService = new WorkspaceService(this.configuration, environmentService, remoteAgentService);
return workspaceService.initialize(payload).then(() => workspaceService, error => {
onUnexpectedError(error);