提交 0d1d3701 编写于 作者: J Johannes Rieken

Use canonical uri inside `ITextModelService#createModelReference`,...

Use canonical uri inside `ITextModelService#createModelReference`, https://github.com/microsoft/vscode/issues/93368

fyi @bpasero
上级 d6354443
......@@ -58,6 +58,8 @@ import { TestTextResourcePropertiesService, TestContextService, TestWorkingCopyS
import { IThemeService } from 'vs/platform/theme/common/themeService';
import { TestThemeService } from 'vs/platform/theme/test/common/testThemeService';
import { IPathService } from 'vs/workbench/services/path/common/pathService';
import { IUriIdentityService } from 'vs/workbench/services/uriIdentity/common/uriIdentity';
import { UriIdentityService } from 'vs/workbench/services/uriIdentity/common/uriIdentityService';
class TestEnvironmentService extends NativeWorkbenchEnvironmentService {
......@@ -117,6 +119,7 @@ suite('KeybindingsEditing', () => {
fileService.registerProvider(Schemas.file, diskFileSystemProvider);
fileService.registerProvider(Schemas.userData, new FileUserDataProvider(environmentService.appSettingsHome, environmentService.backupHome, diskFileSystemProvider, environmentService, new NullLogService()));
instantiationService.stub(IFileService, fileService);
instantiationService.stub(IUriIdentityService, new UriIdentityService(fileService));
instantiationService.stub(IWorkingCopyService, new TestWorkingCopyService());
instantiationService.stub(IWorkingCopyFileService, instantiationService.createInstance(WorkingCopyFileService));
instantiationService.stub(ITextFileService, instantiationService.createInstance(TestTextFileService));
......
......@@ -16,6 +16,7 @@ import { TextFileEditorModel } from 'vs/workbench/services/textfile/common/textF
import { IFileService } from 'vs/platform/files/common/files';
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
import { IUriIdentityService } from 'vs/workbench/services/uriIdentity/common/uriIdentity';
class ResourceModelCollection extends ReferenceCollection<Promise<ITextEditorModel>> {
......@@ -167,12 +168,16 @@ export class TextModelResolverService implements ITextModelService {
constructor(
@IInstantiationService private readonly instantiationService: IInstantiationService,
@IFileService private readonly fileService: IFileService
@IFileService private readonly fileService: IFileService,
@IUriIdentityService private readonly uriIdentService: IUriIdentityService,
) {
}
async createModelReference(resource: URI): Promise<IReference<IResolvedTextEditorModel>> {
const ref = this.resourceModelCollection.acquire(resource.toString());
const canonicalResource = this.uriIdentService.asCanonicalUri(resource);
const ref = this.resourceModelCollection.acquire(canonicalResource.toString());
try {
const model = await ref.object;
......
......@@ -5,7 +5,6 @@
import { IUriIdentityService } from 'vs/workbench/services/uriIdentity/common/uriIdentity';
import { URI } from 'vs/base/common/uri';
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
import { IFileService, FileSystemProviderCapabilities } from 'vs/platform/files/common/files';
import { binarySearch } from 'vs/base/common/arrays';
import { ExtUri, IExtUri, normalizePath } from 'vs/base/common/resources';
......@@ -67,5 +66,3 @@ export class UriIdentityService implements IUriIdentityService {
return uri;
}
}
registerSingleton(IUriIdentityService, UriIdentityService, true);
......@@ -107,6 +107,8 @@ import { TestWorkingCopyService, TestContextService, TestStorageService, TestTex
import { IViewsService, IView, ViewContainer, ViewContainerLocation } from 'vs/workbench/common/views';
import { IStorageKeysSyncRegistryService, StorageKeysSyncRegistryService } from 'vs/platform/userDataSync/common/storageKeys';
import { IPaneComposite } from 'vs/workbench/common/panecomposite';
import { UriIdentityService } from 'vs/workbench/services/uriIdentity/common/uriIdentityService';
import { IUriIdentityService } from 'vs/workbench/services/uriIdentity/common/uriIdentity';
export function createFileEditorInput(instantiationService: IInstantiationService, resource: URI): FileEditorInput {
return instantiationService.createInstance(FileEditorInput, resource, undefined, undefined);
......@@ -150,6 +152,7 @@ export function workbenchInstantiationService(overrides?: {
instantiationService.stub(IThemeService, themeService);
instantiationService.stub(IModelService, instantiationService.createInstance(ModelServiceImpl));
instantiationService.stub(IFileService, new TestFileService());
instantiationService.stub(IUriIdentityService, instantiationService.createInstance(UriIdentityService));
instantiationService.stub(IBackupFileService, new TestBackupFileService());
instantiationService.stub(ITelemetryService, NullTelemetryService);
instantiationService.stub(INotificationService, new TestNotificationService());
......
......@@ -53,7 +53,6 @@ import 'vs/workbench/browser/parts/views/viewsService';
//#region --- workbench services
import 'vs/platform/undoRedo/common/undoRedoService';
import 'vs/workbench/services/uriIdentity/common/uriIdentityService';
import 'vs/workbench/services/extensions/browser/extensionUrlHandler';
import 'vs/workbench/services/bulkEdit/browser/bulkEditService';
import 'vs/workbench/services/keybinding/common/keybindingEditing';
......@@ -112,6 +111,8 @@ import { OpenerService } from 'vs/editor/browser/services/openerService';
import { IOpenerService } from 'vs/platform/opener/common/opener';
import { IUserDataSyncEnablementService } from 'vs/platform/userDataSync/common/userDataSync';
import { UserDataSyncEnablementService } from 'vs/platform/userDataSync/common/userDataSyncEnablementService';
import { UriIdentityService } from 'vs/workbench/services/uriIdentity/common/uriIdentityService';
import { IUriIdentityService } from 'vs/workbench/services/uriIdentity/common/uriIdentity';
registerSingleton(IUserDataSyncEnablementService, UserDataSyncEnablementService);
registerSingleton(IGlobalExtensionEnablementService, GlobalExtensionEnablementService);
......@@ -127,6 +128,7 @@ registerSingleton(ITextResourceConfigurationService, TextResourceConfigurationSe
registerSingleton(IMenuService, MenuService, true);
registerSingleton(IDownloadService, DownloadService, true);
registerSingleton(IOpenerService, OpenerService, true);
registerSingleton(IUriIdentityService, UriIdentityService, true);
//#endregion
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册