Use URI for IDocumentsAndEditorsDelta.removedDocuments

This commit is contained in:
Alex Dima
2018-02-07 16:19:48 +01:00
parent 535fc34ba4
commit 5b1d34e435
5 changed files with 16 additions and 13 deletions

View File

@@ -156,14 +156,14 @@ export class MainThreadDocuments implements MainThreadDocumentsShape {
this._proxy.$acceptModelModeChanged(model.uri.toString(), oldModeId, model.getLanguageIdentifier().language);
}
private _onModelRemoved(modelUrl: string): void {
if (!this._modelIsSynced[modelUrl]) {
private _onModelRemoved(modelUrl: URI): void {
let strModelUrl = modelUrl.toString();
if (!this._modelIsSynced[strModelUrl]) {
return;
}
delete this._modelIsSynced[modelUrl];
this._modelToDisposeMap[modelUrl].dispose();
delete this._modelToDisposeMap[modelUrl];
delete this._modelIsSynced[strModelUrl];
this._modelToDisposeMap[strModelUrl].dispose();
delete this._modelToDisposeMap[strModelUrl];
}
// --- from extension host process

View File

@@ -23,6 +23,7 @@ import { ITextModelService } from 'vs/editor/common/services/resolverService';
import { IUntitledEditorService } from 'vs/workbench/services/untitled/common/untitledEditorService';
import { IEditorGroupService } from 'vs/workbench/services/group/common/groupService';
import { isCodeEditor, isDiffEditor, ICodeEditor } from 'vs/editor/browser/editorBrowser';
import URI from 'vs/base/common/uri';
namespace mapset {
@@ -289,12 +290,12 @@ export class MainThreadDocumentsAndEditors {
private _onTextEditorAdd = new Emitter<MainThreadTextEditor[]>();
private _onTextEditorRemove = new Emitter<string[]>();
private _onDocumentAdd = new Emitter<ITextModel[]>();
private _onDocumentRemove = new Emitter<string[]>();
private _onDocumentRemove = new Emitter<URI[]>();
readonly onTextEditorAdd: Event<MainThreadTextEditor[]> = this._onTextEditorAdd.event;
readonly onTextEditorRemove: Event<string[]> = this._onTextEditorRemove.event;
readonly onDocumentAdd: Event<ITextModel[]> = this._onDocumentAdd.event;
readonly onDocumentRemove: Event<string[]> = this._onDocumentRemove.event;
readonly onDocumentRemove: Event<URI[]> = this._onDocumentRemove.event;
constructor(
extHostContext: IExtHostContext,
@@ -336,12 +337,12 @@ export class MainThreadDocumentsAndEditors {
private _onDelta(delta: DocumentAndEditorStateDelta): void {
let removedDocuments: string[];
let removedDocuments: URI[];
let removedEditors: string[] = [];
let addedEditors: MainThreadTextEditor[] = [];
// removed models
removedDocuments = delta.removedDocuments.map(m => m.uri.toString());
removedDocuments = delta.removedDocuments.map(m => m.uri);
// added editors
for (const apiEditor of delta.addedEditors) {

View File

@@ -506,7 +506,7 @@ export interface ExtHostEditorsShape {
}
export interface IDocumentsAndEditorsDelta {
removedDocuments?: string[];
removedDocuments?: UriComponents[];
addedDocuments?: IModelAddedData[];
removedEditors?: string[];
addedEditors?: ITextEditorAddData[];

View File

@@ -41,7 +41,9 @@ export class ExtHostDocumentsAndEditors implements ExtHostDocumentsAndEditorsSha
const removedEditors: ExtHostTextEditor[] = [];
if (delta.removedDocuments) {
for (const id of delta.removedDocuments) {
for (const uriComponent of delta.removedDocuments) {
const uri = URI.revive(uriComponent);
const id = uri.toString();
const data = this._documents.get(id);
this._documents.delete(id);
removedDocuments.push(data);