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