public IStructuredTextReParser newInstance() { return new XMLStructuredDocumentReParser(); }
/** * extends super class behavior */ protected boolean isPartOfBlockRegion(IStructuredDocumentRegion flatNode) { boolean result = false; String type = flatNode.getType(); result = ((type == DOMJSPRegionContexts.JSP_CLOSE) || (type == DOMJSPRegionContexts.JSP_CONTENT) || super.isPartOfBlockRegion(flatNode)); return result; }
/** * Allow a reparser to check for extra syntactic cases that require * parsing beyond the flatNode boundary. * * This implementation adds JSP language markers (comments are handled * elsewhere). */ protected StructuredDocumentEvent checkForCrossStructuredDocumentRegionSyntax() { StructuredDocumentEvent result = super.checkForCrossStructuredDocumentRegionSyntax(); // None of the superclass' cases were valid, so check for JSP cases if (result == null) { result = checkForJSP(); } return result; }
protected StructuredDocumentEvent checkForComments() { StructuredDocumentEvent result = checkForCriticalKey("{#"); //$NON-NLS-1$ if (result == null) { result = checkForCriticalKey("#}"); //$NON-NLS-1$ } return result != null ? result : super.checkForComments(); }
public StructuredDocumentEvent reparse() { final StructuredDocumentEvent event = super.reparse(); return event; } }
public StructuredDocumentEvent quickCheck() { if (containsBreakingChange(new CoreNodeList(dirtyStart, dirtyEnd))) return null; return super.quickCheck(); }
protected StructuredDocumentEvent regionCheck(IStructuredDocumentRegion oldNode, IStructuredDocumentRegion newNode) { final StructuredDocumentEvent event = super.regionCheck(oldNode, newNode); if (event instanceof RegionChangedEvent) { RegionChangedEvent changedEvent = (RegionChangedEvent) event; if (changedEvent.getRegion().getType() == TwigRegionContext.TWIG_CONTENT || changedEvent.getRegion().getType() == TwigRegionContext.TWIG_COMMENT) { oldNode.setRegions(newNode.getRegions()); } } return event; }
protected IStructuredDocumentRegion findDirtyEnd(int end) { IStructuredDocumentRegion result = super.findDirtyEnd(end);
if (isLoneOpenFollowedByContent(result) && (result.getNext() != null)) { result = result.getNext();
/** * If a comment start or end tag is being added or deleted, we'll rescan * the whole document. The reason is that content that is revealed or * commented out can effect the interpretation of the rest of the * document. Note: for now this is very XML/JSP specific, can * refactor/improve later. */ protected StructuredDocumentEvent checkForComments() { StructuredDocumentEvent result = super.checkForComments(); if (result == null) result = checkForCriticalKey("<%--"); //$NON-NLS-1$ if (result == null) result = checkForCriticalKey("--%>"); //$NON-NLS-1$ // we'll also check for these degenerate cases if (result == null) result = checkForCriticalKey("<%---%>"); //$NON-NLS-1$ return result; }
protected IEncodedDocument newEncodedDocument() { IStructuredDocument structuredDocument = StructuredDocumentFactory.getNewStructuredDocumentInstance(getParser()); if (structuredDocument instanceof BasicStructuredDocument) { ((BasicStructuredDocument) structuredDocument).setReParser(new XMLStructuredDocumentReParser()); } return structuredDocument; }
protected void findDirtyStart(int start) { IStructuredDocumentRegion result = fStructuredDocument.getRegionAtCharacterOffset(start); // heuristic: if the postion is exactly equal to the start, then // go back one more, if it exists. This prevents problems with // insertions // of text that should be merged with the previous node instead of // simply hung // off of it as a separate node (ex.: XML content inserted right // before an open // bracket should become part of the previous content node) if (result != null) { IStructuredDocumentRegion previous = result.getPrevious(); if ((previous != null) && ((!(previous.isEnded())) || (start == result.getStart()))) { result = previous; } // If we are now at the end of a "tag dependent" content area (or // JSP area) // then we need to back up all the way to the beginning of that. IStructuredDocumentRegion potential = result; while (isPartOfBlockRegion(potential)) { potential = potential.getPrevious(); } if (potential != null) { result = potential; fStructuredDocument.setCachedDocumentRegion(result); } } dirtyStart = result; }
protected IEncodedDocument newEncodedDocument() { IStructuredDocument structuredDocument = StructuredDocumentFactory.getNewStructuredDocumentInstance(getParser()); ((BasicStructuredDocument) structuredDocument).setReParser(new XMLStructuredDocumentReParser()); return structuredDocument; }