protected String applyDelta(String data, int offset, int len, String change) { StringBuilder builder = new StringBuilder(data); new ReplaceRegion(offset, len, change).applyTo(builder); String result = builder.toString(); return result; }
protected String insertChangeIntoReplaceRegion(ICompositeNode rootNode, ReplaceRegion region) { final StringBuilder builder = new StringBuilder(rootNode.getText()); region.shiftBy(0-rootNode.getTotalOffset()).applyTo(builder); return builder.toString(); }
public String insertChangeIntoReplaceRegion(ICompositeNode rootNode, ReplaceRegion region) { final StringBuilder builder = new StringBuilder(rootNode.getText()); region.shiftBy(0-rootNode.getTotalOffset()).applyTo(builder); return builder.toString(); }
public final IParseResult reparse(IParseResult previousResult, ReplaceRegion replaceRegion) { if (!isReparseSupported()) { final StringBuilder builder = new StringBuilder(previousResult.getRootNode().getText()); replaceRegion.applyTo(builder); return doParse(builder); } return doReparse(previousResult, replaceRegion); }
@Test public void testSkipNodesInBetweenWithoutResourceSet() throws Exception { for (String string : getSmokeTestModels()) { LazyLinkingResource resource = createResource(string); if (resource != null) { ICompositeNode rootNode = resource.getParseResult().getRootNode(); ReplaceRegion replaceRegion = null; for (INode node : rootNode.getAsTreeIterable()) { int offset = node.getTotalOffset(); int length = node.getTotalLength(); if (replaceRegion == null || replaceRegion.getOffset() != offset || replaceRegion.getLength() != length) { replaceRegion = new ReplaceRegion(offset, length, ""); StringBuilder builder = new StringBuilder(string); replaceRegion.applyTo(builder); processModelWithoutResourceSet(builder.toString()); } } } } }
@Test public void testSkipNodesInBetween() throws Exception { for (String string : getSmokeTestModels()) { LazyLinkingResource resource = createResource(string); if (resource != null) { ICompositeNode rootNode = resource.getParseResult().getRootNode(); ReplaceRegion replaceRegion = null; for (INode node : rootNode.getAsTreeIterable()) { int offset = node.getTotalOffset(); int length = node.getTotalLength(); if (replaceRegion == null || replaceRegion.getOffset() != offset || replaceRegion.getLength() != length) { replaceRegion = new ReplaceRegion(offset, length, ""); StringBuilder builder = new StringBuilder(string); replaceRegion.applyTo(builder); processModel(builder.toString()); } } } } }
@Test public void testSkipNodesInBetween() throws Exception { for (String string : getSmokeTestModels()) { LazyLinkingResource resource = createResource(string); if (resource != null) { ICompositeNode rootNode = resource.getParseResult().getRootNode(); ReplaceRegion replaceRegion = null; for (INode node : rootNode.getAsTreeIterable()) { int offset = node.getTotalOffset(); int length = node.getTotalLength(); if (replaceRegion == null || replaceRegion.getOffset() != offset || replaceRegion.getLength() != length) { replaceRegion = new ReplaceRegion(offset, length, ""); StringBuilder builder = new StringBuilder(string); replaceRegion.applyTo(builder); processModel(builder.toString()); } } } } }
@Test public void testSkipNodesInBetweenWithoutResourceSet() throws Exception { for (String string : getSmokeTestModels()) { LazyLinkingResource resource = createResource(string); if (resource != null) { ICompositeNode rootNode = resource.getParseResult().getRootNode(); ReplaceRegion replaceRegion = null; for (INode node : rootNode.getAsTreeIterable()) { int offset = node.getTotalOffset(); int length = node.getTotalLength(); if (replaceRegion == null || replaceRegion.getOffset() != offset || replaceRegion.getLength() != length) { replaceRegion = new ReplaceRegion(offset, length, ""); StringBuilder builder = new StringBuilder(string); replaceRegion.applyTo(builder); processModelWithoutResourceSet(builder.toString()); } } } } }
changedRegion.shiftBy(-leftNode.getTotalOffset()).applyTo(newTextBuilder); String newText = newTextBuilder.toString(); if (originalText.equals(newText)) { ((ParseResult) newParseResult).setRootNode(oldRootNode); StringBuilder builder = new StringBuilder(oldRootNode.getText()); changedRegion.applyTo(builder); nodeModelBuilder.setCompleteContent(oldRootNode, builder.toString()); return newParseResult;
((ParseResult) newParseResult).setRootNode(oldRootNode); StringBuilder builder = new StringBuilder(oldRootNode.getText()); replaceRegion.applyTo(builder); nodeModelBuilder.setCompleteContent(oldRootNode, builder.toString());