mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-25 11:08:51 +01:00
delay event forwarding and hope for updated textfile service, fixes #11339
This commit is contained in:
@@ -137,18 +137,23 @@ export class MainThreadDocuments extends MainThreadDocumentsShape {
|
||||
}
|
||||
|
||||
private _onModelEvents(modelUrl: URI, events: EmitterEvent[]): void {
|
||||
let changedEvents: editorCommon.IModelContentChangedEvent2[] = [];
|
||||
for (let i = 0, len = events.length; i < len; i++) {
|
||||
let e = events[i];
|
||||
switch (e.getType()) {
|
||||
case editorCommon.EventType.ModelContentChanged2:
|
||||
changedEvents.push(<editorCommon.IModelContentChangedEvent2>e.getData());
|
||||
break;
|
||||
// delay event-forwarding to the next tick and hope
|
||||
// that isDirty-returns up-to-date information then.
|
||||
// https://github.com/Microsoft/vscode/issues/11339
|
||||
setImmediate(() => {
|
||||
let changedEvents: editorCommon.IModelContentChangedEvent2[] = [];
|
||||
for (let i = 0, len = events.length; i < len; i++) {
|
||||
let e = events[i];
|
||||
switch (e.getType()) {
|
||||
case editorCommon.EventType.ModelContentChanged2:
|
||||
changedEvents.push(<editorCommon.IModelContentChangedEvent2>e.getData());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (changedEvents.length > 0) {
|
||||
this._proxy.$acceptModelChanged(modelUrl.toString(), changedEvents, this._textFileService.isDirty(modelUrl));
|
||||
}
|
||||
if (changedEvents.length > 0) {
|
||||
this._proxy.$acceptModelChanged(modelUrl.toString(), changedEvents, this._textFileService.isDirty(modelUrl));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// --- from extension host process
|
||||
|
||||
Reference in New Issue
Block a user