mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-21 09:08:53 +01:00
Implement and adopt edit session identifier API proposal (#157733)
* Add canonical workspace identifier proposed API * Use canonical id to store and resume edit sessions * Add git extension workspace identity provider * Fix warning incorrectly showing up * Make auto resume behavior opt in * * Create a separate service * Accept WorkspaceFolder instead of URI * Return string instead of object * Make edit session restores resilient to provider registration races * Introduce an activation event * Activate contributing extension before using provider * `CanonicalWorkspaceIdentity` -> `EditSessionIdentity` * Show progress while resuming edit session * Store edit session even if extension will take care of opening target workspace * Address most of PR feedback * `IEditSessionsWorkbenchService` -> `IEditSessionsStorageService` * Unregister provider in renderer * Split out proposal into new `editSessionIdentityProvider.d.ts` * Fix bad merge * Always show progress in window * Convert URI schemes
This commit is contained in:
@@ -18,6 +18,7 @@ import { IExtHostInitDataService } from 'vs/workbench/api/common/extHostInitData
|
||||
import { IExtHostFileSystemInfo } from 'vs/workbench/api/common/extHostFileSystemInfo';
|
||||
import { FileSystemProviderCapabilities } from 'vs/platform/files/common/files';
|
||||
import { isLinux } from 'vs/base/common/platform';
|
||||
import { IURITransformerService } from 'vs/workbench/api/common/extHostUriTransformerService';
|
||||
|
||||
suite('ExtHostConfiguration', function () {
|
||||
|
||||
@@ -30,7 +31,7 @@ suite('ExtHostConfiguration', function () {
|
||||
}
|
||||
|
||||
function createExtHostWorkspace(): ExtHostWorkspace {
|
||||
return new ExtHostWorkspace(new TestRPCProtocol(), new class extends mock<IExtHostInitDataService>() { }, new class extends mock<IExtHostFileSystemInfo>() { override getCapabilities() { return isLinux ? FileSystemProviderCapabilities.PathCaseSensitive : undefined; } }, new NullLogService());
|
||||
return new ExtHostWorkspace(new TestRPCProtocol(), new class extends mock<IExtHostInitDataService>() { }, new class extends mock<IExtHostFileSystemInfo>() { override getCapabilities() { return isLinux ? FileSystemProviderCapabilities.PathCaseSensitive : undefined; } }, new NullLogService(), new class extends mock<IURITransformerService>() { });
|
||||
}
|
||||
|
||||
function createExtHostConfiguration(contents: any = Object.create(null), shape?: MainThreadConfigurationShape) {
|
||||
|
||||
@@ -24,6 +24,7 @@ import { isLinux, isWindows } from 'vs/base/common/platform';
|
||||
import { IExtHostFileSystemInfo } from 'vs/workbench/api/common/extHostFileSystemInfo';
|
||||
import { FileSystemProviderCapabilities } from 'vs/platform/files/common/files';
|
||||
import { nullExtensionDescription as extensionDescriptor } from 'vs/workbench/services/extensions/common/extensions';
|
||||
import { IURITransformerService } from 'vs/workbench/api/common/extHostUriTransformerService';
|
||||
|
||||
function createExtHostWorkspace(mainContext: IMainContext, data: IWorkspaceData, logService: ILogService): ExtHostWorkspace {
|
||||
const result = new ExtHostWorkspace(
|
||||
@@ -31,6 +32,7 @@ function createExtHostWorkspace(mainContext: IMainContext, data: IWorkspaceData,
|
||||
new class extends mock<IExtHostInitDataService>() { override workspace = data; },
|
||||
new class extends mock<IExtHostFileSystemInfo>() { override getCapabilities() { return isLinux ? FileSystemProviderCapabilities.PathCaseSensitive : undefined; } },
|
||||
logService,
|
||||
new class extends mock<IURITransformerService>() { }
|
||||
);
|
||||
result.$initializeWorkspace(data, true);
|
||||
return result;
|
||||
|
||||
Reference in New Issue
Block a user