/** * */ public static String getRegionText(IStructuredDocumentRegion flatNode, ITextRegionList regions) { StringBuffer buf = new StringBuffer(); if (regions != null) { for (Iterator i = regions.iterator(); i.hasNext();) { ITextRegion region = (ITextRegion) i.next(); if (region == null) { continue; } buf.append(flatNode.getText(region)); } } return buf.toString(); }
/** * */ public static void stripSurroundingSpace(ITextRegionList regions) { if (regions == null) { return; } while (!regions.isEmpty()) { ITextRegion region = regions.get(0); String type = region.getType(); if (type == CSSRegionContexts.CSS_S || type == CSSRegionContexts.CSS_COMMENT) { regions.remove(0); } else { break; } } while (!regions.isEmpty()) { ITextRegion region = regions.get(regions.size() - 1); String type = region.getType(); if (type == CSSRegionContexts.CSS_S || type == CSSRegionContexts.CSS_COMMENT) { regions.remove(region); } else { break; } } } }
private boolean isEndTagCorrupted(ElementInfo info) { ITextRegionList regions = info.endTag.getRegions(); if (regions == null || regions.isEmpty()) return false; Iterator iter = regions.iterator(); while (iter.hasNext()) { ITextRegion rgn = (ITextRegion) iter.next(); if (!isValidRegion(rgn)) return true; // found invalid region type. } return false; // all regions are valid. }
fEmbeddedContainer.getRegions().add(newToken); fEmbeddedContainer.setLength(fEmbeddedContainer.getLength() + yylength()); fEmbeddedContainer.setTextLength(fEmbeddedContainer.getTextLength() + yylength()); } else { ITextRegionList embeddedRegions = fEmbeddedContainer.getRegions(); if (embeddedRegions.size() > 2 && (embeddedRegions.get(embeddedRegions.size()-1)).getType() == XML_TAG_CLOSE && (embeddedRegions.get(embeddedRegions.size() - 3)).getType() == XML_TAG_OPEN && internalTagName != null) { if (containsTagName(internalTagName)) { longscan = true; fEmbeddedContainer.getRegions().add(newToken); fEmbeddedContainer.setLength(fEmbeddedContainer.getLength() + yylength()); fEmbeddedContainer.setTextLength(fEmbeddedContainer.getTextLength() + yylength()); notFinished = notFinished && ((!isEndingType) && !isEOF() && (endTagName != null || internalContext != UNDEFINED) && !(internalContext == PROXY_CONTEXT && (embeddedList.get(embeddedList.size()-1)).getType() == UNDEFINED)); fEmbeddedContainer.getRegions().add(newToken);
/** * Find the region of the attribute name for the given attribute value * region * */ protected ITextRegion getAttrNameRegion(IDOMNode node, ITextRegion region) { // Find the attribute name for which this position should have a value IStructuredDocumentRegion open = node.getFirstStructuredDocumentRegion(); ITextRegionList openRegions = open.getRegions(); int i = openRegions.indexOf(region); if (i < 0) { return null; } ITextRegion nameRegion = null; while (i >= 0) { nameRegion = openRegions.get(i--); if (nameRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) { break; } } return nameRegion; }
/** * */ public static boolean hasColonSeparator(IStructuredDocumentRegion flatNode) { if (flatNode == null) { return false; } ITextRegionList regions = flatNode.getRegions(); if (regions == null || regions.size() == 0) { return false; } for (Iterator i = regions.iterator(); i.hasNext();) { ITextRegion region = (ITextRegion) i.next(); if (region == null) { continue; } if (region.getType() == CSSRegionContexts.CSS_DECLARATION_SEPARATOR) { return true; } } return false; }
public ITextRegion getFirstRegion() { return getRegions().get(0); }
/** * */ public boolean hasNext() { if (documentRegion == null) return false; if (current < 0) return false; if (current < documentRegion.getRegions().size()) return true; return false; }
while (!nodeRegions.isEmpty()) { value = null; ITextRegion region = nodeRegions.remove(0); if (region == null) { continue; case S_NORMAL : if (type == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) { regionBuf.add(region); status = S_FUNCTION; case S_FUNCTION : if (type == CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE) { regionBuf.add(region); value = createPrimitiveValue(regionBuf); regionBuf.clear(); status = S_NORMAL; regionBuf.add(region); if (type == CSSRegionContexts.CSS_DECLARATION_VALUE_OPERATOR && fParentRegion.getText(region).equals(",")) { //$NON-NLS-1$ value = createPrimitiveValue(regionBuf); regionBuf.clear(); if (value != null) { if (fUpdateContext == null || !fUpdateContext.isActive()) { regionBuf.add(region); if (!regionBuf.isEmpty()) {
/** * */ private String getPropertyName(ITextRegionList nodeRegions) { ITextRegionList nameRegions = new TextRegionListImpl(); String name = null; while (!nodeRegions.isEmpty()) { ITextRegion region = nodeRegions.remove(0); if (region == null) { continue; } String type = region.getType(); if (type == CSSRegionContexts.CSS_DECLARATION_SEPARATOR) { CSSUtil.stripSurroundingSpace(nameRegions); name = makeString(nameRegions); break; } else { nameRegions.add(region); } } return name; }
container.getRegions().add(region);
/** * */ public void reset(IStructuredDocumentRegion flatNode, ITextRegion region) { if (region != null && flatNode != null) { this.documentRegion = flatNode; curDocumentRegion = flatNode; current = flatNode.getRegions().indexOf(region); } } }
/** * Tells you if the flatnode is the <jsp:scriptlet>, <jsp:expression>, or * <jsp:declaration>tag * * ISSUE: this is a bit of hidden JSP knowledge that was implemented this * way for expedency. Should be evolved in future to depend on * "nestedContext". */ public static boolean isXMLJSPDelimiter(IStructuredDocumentRegion fn) { boolean isDelimiter = false; if ((fn != null) && (fn instanceof ITextRegionContainer)) { Object[] regions = ((ITextRegionContainer) fn).getRegions().toArray(); ITextRegion temp = null; String regionText = ""; //$NON-NLS-1$ for (int i = 0; i < regions.length; i++) { temp = (ITextRegion) regions[i]; if (temp.getType() == DOMRegionContext.XML_TAG_NAME) { regionText = fn.getText(temp); if (regionText.equalsIgnoreCase("jsp:scriptlet") || regionText.equalsIgnoreCase("jsp:expression") || regionText.equalsIgnoreCase("jsp:declaration")) { isDelimiter = true; } } } } return isDelimiter; }
/** * @param item * org.eclipse.wst.css.core.model.interfaces.ICSSStyleDeclItem * @param nodeRegions * java.util.Vector */ private void setupImportantAttribute(ICSSStyleDeclItem item, ITextRegionList nodeRegions) { if (item == null || nodeRegions == null || nodeRegions.isEmpty()) { return; } ITextRegion region = nodeRegions.get(nodeRegions.size() - 1); if (region != null && region.getType() == CSSRegionContexts.CSS_DECLARATION_VALUE_IMPORTANT) { item.setPriority(getText(region)); CSSAttrImpl attr = ((CSSStyleDeclItemImpl) item).getAttributeNode(ICSSStyleDeclItem.IMPORTANT); attr.setRangeRegion(fParentRegion, region, region); nodeRegions.remove(region); } }
newToken = fRegionFactory.createToken(internalContext, yychar - containerStart, yylength(), yylength()); fEmbeddedContainer.getRegions().add(newToken); fEmbeddedContainer.setLength(fEmbeddedContainer.getLength() + newToken.getLength() ); fEmbeddedContainer.setTextLength(fEmbeddedContainer.getTextLength() + newToken.getLength()); } else { ITextRegionList embeddedRegions = fEmbeddedContainer.getRegions(); if (embeddedRegions.size() > 2 && (embeddedRegions.get(embeddedRegions.size()-1)).getType() == XML_TAG_CLOSE && (embeddedRegions.get(embeddedRegions.size() - 3)).getType() == XML_TAG_OPEN && internalTagName != null) { if (containsTagName(internalTagName)) { longscan = true; fEmbeddedContainer.getRegions().add(newToken); fEmbeddedContainer.setLength(fEmbeddedContainer.getLength() + newToken.getLength()); fEmbeddedContainer.setTextLength(fEmbeddedContainer.getTextLength() + newToken.getLength()); notFinished = notFinished && ((!isEndingType) && !isEOF() && (endTagName != null || internalContext != UNDEFINED) && !(internalContext == PROXY_CONTEXT && (embeddedList.get(embeddedList.size()-1)).getType() == UNDEFINED)); fEmbeddedContainer.getRegions().add(newToken);