From f318b5e6a3e5c5ab9d026bc52ccea2e8625c3417 Mon Sep 17 00:00:00 2001 From: akosyakov Date: Tue, 14 Apr 2015 15:47:46 +0200 Subject: [PATCH] [idea][performance] Only relink a model on the modification counter change, reparsing should be triggered by changing a corresponding xtext file Change-Id: I716eefbbe1166569179564c50335d4e2d61808e3 Signed-off-by: akosyakov --- .../org/eclipse/xtext/resource/XtextResource.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/plugins/org.eclipse.xtext/src/org/eclipse/xtext/resource/XtextResource.java b/plugins/org.eclipse.xtext/src/org/eclipse/xtext/resource/XtextResource.java index a75f9cbbb..f3d50185b 100644 --- a/plugins/org.eclipse.xtext/src/org/eclipse/xtext/resource/XtextResource.java +++ b/plugins/org.eclipse.xtext/src/org/eclipse/xtext/resource/XtextResource.java @@ -226,6 +226,21 @@ public class XtextResource extends ResourceImpl { super.doUnload(); parseResult = null; } + + /** + * @since 2.9 + */ + public void relink() { + if (!isLoaded()) { + throw new IllegalStateException("You can't update an unloaded resource."); + } + try { + isUpdating = true; + updateInternalState(parseResult, parseResult); + } finally { + isUpdating = false; + } + } public void update(int offset, int replacedTextLength, String newText) { if (!isLoaded()) {