From 37c6f69f015c3da3c709e2bae0786aa55a10a045 Mon Sep 17 00:00:00 2001 From: steveluc Date: Mon, 9 Mar 2015 11:57:50 -0700 Subject: [PATCH] Hold at most 4 snapshots per file in the server. This is about 1K per file. --- src/server/editorServices.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/server/editorServices.ts b/src/server/editorServices.ts index dd5f74cfff2..7c9ccfa7854 100644 --- a/src/server/editorServices.ts +++ b/src/server/editorServices.ts @@ -1073,6 +1073,7 @@ module ts.server { static changeNumberThreshold = 8; static changeLengthThreshold = 256; + static maxVersions = 8; // REVIEW: can optimize by coalescing simple edits edit(pos: number, deleteLen: number, insertedText?: string) { @@ -1133,6 +1134,13 @@ module ts.server { this.currentVersion = snap.version; this.versions[snap.version] = snap; this.changes = []; + if ((this.currentVersion - this.minVersion) >= ScriptVersionCache.maxVersions) { + var oldMin = this.minVersion; + this.minVersion = (this.currentVersion - ScriptVersionCache.maxVersions) + 1; + for (var j = oldMin; j < this.minVersion; j++) { + this.versions[j] = undefined; + } + } } return snap; }