From f400e5955af718a1ebb50745d629dcf1500ac7f3 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Wed, 10 Dec 2014 13:19:01 -0800 Subject: [PATCH] Don't call into the incremental parser for now. Return a tree if the textChangeRange is empty. --- src/compiler/parser.ts | 6 +++++- src/services/services.ts | 7 ++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index c8149a6cc95..7f6918c54fc 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -1180,12 +1180,16 @@ module ts { } function update(newText: string, textChangeRange: TextChangeRange) { + if (textChangeRange.isUnchanged()) { + // if the text didn't change, then we can just return our current source file as-is. + return sourceFile; + } + // Don't pass along the text change range for now. We'll pass it along once incremental // parsing is enabled. return parseSourceFile(newText, /*textChangeRange:*/ undefined, /*setNodeParents*/ true); } - function setContextFlag(val: Boolean, flag: ParserContextFlags) { if (val) { contextFlags |= flag; diff --git a/src/services/services.ts b/src/services/services.ts index 856e4cb2c9a..93545fdaf8d 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -1711,9 +1711,10 @@ module ts { // incrementally parse this file. if (textChangeRange) { if (version !== sourceFile.version || isOpen != sourceFile.isOpen) { - var newSourceFile = sourceFile.update(scriptSnapshot.getText(0, scriptSnapshot.getLength()), textChangeRange); - setSourceFileFields(newSourceFile, scriptSnapshot, version, isOpen); - return newSourceFile; + // Once incremental parsing is ready, then just call into this function. + // var newSourceFile = sourceFile.update(scriptSnapshot.getText(0, scriptSnapshot.getLength()), textChangeRange); + // setSourceFileFields(newSourceFile, scriptSnapshot, version, isOpen); + // return newSourceFile; } }