Package com.intellij.lang

Examples of com.intellij.lang.ASTNode


/**
* @author vnikolaenko
*/
public class CfmlAnnotator implements Annotator {
  public void annotate(@NotNull PsiElement element, @NotNull AnnotationHolder holder) {
    final ASTNode elementNode = element.getNode();
    if (elementNode != null) {
      if (elementNode.getElementType() == CfscriptTokenTypes.IDENTIFIER &&
          element.getParent() instanceof CfmlAttributeImpl) {
        holder.createWeakWarningAnnotation(element, null).setTextAttributes(CfmlHighlighter.CfmlFileHighlighter.CFML_ATTRIBUTE);
      }
      if (elementNode.getElementType() == CfscriptTokenTypes.ACTION_NAME) {
        holder.createInfoAnnotation(elementNode, null).setTextAttributes(DefaultLanguageHighlighterColors.KEYWORD);
      }
    }
  }
View Full Code Here


          consumer.consumeToken(element, new TextSplitter() {
            @Override
            public void split(@Nullable String text, @NotNull TextRange range, Consumer<TextRange> consumer) {
              int elementOffset = element.getTextRange().getStartOffset();
              for (PsiElement e = element.getFirstChild(); e != null; e = e.getNextSibling()) {
                ASTNode astNode = e.getNode();
                if (astNode == null) continue;
                IElementType type = astNode.getElementType();
                // cut out all sharped expressions and CIDs
                if (type == CfmlTokenTypes.STRING_TEXT) {
                  doSplit(text, astNode.getTextRange().shiftRight(-elementOffset), consumer);
                }
              }
            }
          });
        }
View Full Code Here

        if ((element.getNode().getElementType() == CfmlTokenTypes.STRING_TEXT)) {
          if ((tagParent == null ||
               (!((CfmlTag)tagParent).getTagName().equalsIgnoreCase("cfinclude") &&
                !((CfmlTag)tagParent).getTagName().equalsIgnoreCase("cfmodule")))) {
            PsiElement superParent = element.getParent() != null ? element.getParent().getParent() : null;
            ASTNode superParentNode = superParent != null ? superParent.getNode() : null;
            if ((superParentNode == null || superParentNode.getElementType() != CfmlElementTypes.INCLUDEEXPRESSION)) {
              return;
            }
          }
          final PsiReference[] refs = element.getParent().getReferences();
          for (int i = 0, refsLength = refs.length; i < refsLength; i++) {
View Full Code Here

  private static boolean isEmbraced(@Nullable PsiElement element, int offset) {
    if (element == null) {
      return false;
    }
    ASTNode node = element.getNode();
    if (node == null) {
      return false;
    }
    final ASTNode lbrace = node.findChildByType(CfscriptTokenTypes.L_BRACKET);
    final ASTNode rbrace = node.findChildByType(CfscriptTokenTypes.R_BRACKET);

    if (lbrace == null || rbrace == null) {
      return false;
    }
    return lbrace.getStartOffset() < offset && rbrace.getStartOffset() >= offset;
  }
View Full Code Here

    final int start = elementRange.getStartOffset();
    final int end = elementRange.getEndOffset();

    if (start + 1 < end) {
      TextRange range = null;
      ASTNode astNode = tag.getNode();
      if (tag instanceof CfmlTag) {
        //if (tag instanceof CfmlTagFunctionImpl || tag instanceof CfmlTagComponentImpl || tag instanceof CfmlTagScriptImpl) {
        range = buildRangeForBraces(range, astNode, CfmlTokenTypes.R_ANGLEBRACKET, CfmlTokenTypes.LSLASH_ANGLEBRACKET);
        //}
      }
      else if (tag instanceof CfmlFunction) {
        final ASTNode body = astNode.findChildByType(CfmlElementTypes.FUNCTIONBODY);
        if (body != null) {
          range = buildRange(range, body.getStartOffset(), body.getTextRange().getEndOffset());
        }
      }
      else if (tag instanceof PsiComment) {
        boolean isColdFusionComment = astNode.getElementType() == CfmlTokenTypes.COMMENT;
        int endIndex = astNode.getText().lastIndexOf(isColdFusionComment ? "--->" : "*/");
 
View Full Code Here

  private static TextRange buildRangeForBraces(TextRange range,
                                               @NotNull ASTNode astNode,
                                               IElementType lbraceType,
                                               IElementType rbraceType) {
    ASTNode lBrace = astNode.findChildByType(lbraceType);
    ASTNode rBrace = astNode.findChildByType(rbraceType);
    if (lBrace != null && rBrace != null) {
      range = buildRange(range, lBrace.getStartOffset() + 1, rBrace.getStartOffset());
    }
    return range;
  }
View Full Code Here

    CodeFoldingSettings settings = CodeFoldingSettings.getInstance();
    final PsiElement element = SourceTreeToPsiMap.treeElementToPsi(node);

    if (node.getPsi() instanceof PsiComment) {
      // find out if file header
      final ASTNode parent = node.getTreeParent();
      ASTNode treePrev = node.getTreePrev();

      if (parent.getElementType() == CfmlElementTypes.CFML_FILE && treePrev == null) {
        return CodeFoldingSettings.getInstance().COLLAPSE_FILE_HEADER;
      }
      else {
View Full Code Here

    return typeCalculator.calculateBinary(operand1, operand2);
  }

  @NotNull
  private CfmlOperatorTokenType getOperationSign() {
    final ASTNode operationNode = getNode().findChildByType(CfscriptTokenTypes.OPERATIONS);
    assert operationNode != null : getText();
    IElementType tokenType = operationNode.getElementType();
    assert tokenType instanceof CfmlOperatorTokenType : getText();
    return (CfmlOperatorTokenType)tokenType;
  }
View Full Code Here

        if (child.getChildren(null).length == 0) {
          continue;
        }
      }
      if (child.getElementType() == GherkinTokenTypes.COMMENT) {
        final ASTNode commentIndentElement = child.getTreePrev();
        final ASTNode parentIndentElement = myNode.getTreePrev();

        if (commentIndentElement != null && (commentIndentElement.getText().contains("\n") || commentIndentElement.getTreePrev() == null)) {
          final String whiteSpaceText = commentIndentElement.getText();
          final int lineBreakIndex = whiteSpaceText.lastIndexOf("\n");

          int parentIndent = 0;
          if (parentIndentElement != null && parentIndentElement.getText().contains("\n")) {
            String parentIndentText = parentIndentElement.getText();
            parentIndent = parentIndentText.length() - parentIndentText.lastIndexOf("\n") - 1;
          }
          indent = Indent.getSpaceIndent(whiteSpaceText.length() - lineBreakIndex - 1 - parentIndent);
        }
      }
View Full Code Here

        elementType2 == GherkinElementTypes.TABLE_CELL) {
      return Spacing.createSpacing(1, 1, 0, false, 0);
    }
    if ((elementType1 == GherkinElementTypes.TABLE_CELL || elementType1 == GherkinTokenTypes.PIPE) &&
        elementType2 == GherkinTokenTypes.PIPE) {
      final ASTNode tableNode = TreeUtil.findParent(block1.getNode(), GherkinElementTypes.TABLE);
      if (tableNode != null) {
        int columnIndex = getTableCellColumnIndex(block1.getNode());
        int maxWidth = ((GherkinTable) tableNode.getPsi()).getColumnWidth(columnIndex);
        int spacingWidth = (maxWidth - block1.getNode().getText().trim().length()) + 1;
        if (elementType1 == GherkinTokenTypes.PIPE) {
          spacingWidth += 2;
        }
        return Spacing.createSpacing(spacingWidth, spacingWidth, 0, false, 0);
View Full Code Here

TOP

Related Classes of com.intellij.lang.ASTNode

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.