Use canonical uri inside ITextModelService#createModelReference
, https://github.com/microsoft/vscode/issues/93368
fyi @bpasero
This commit is contained in:
parent
d6354443f4
commit
0d1d37012a
5 changed files with 16 additions and 6 deletions
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in a new issue