Package com.intellij.lang

Examples of com.intellij.lang.ASTNode


  public PsiReference[] getReferencesByElement(@NotNull PsiElement element, @NotNull ProcessingContext context) {
    if (element instanceof GherkinStepImpl) {

      TokenSet textAndParamSet = TokenSet.create(GherkinTokenTypes.TEXT, GherkinTokenTypes.STEP_PARAMETER_TEXT,
                                                 GherkinTokenTypes.STEP_PARAMETER_BRACE, GherkinElementTypes.STEP_PARAMETER);
      ASTNode textNode = element.getNode().findChildByType(textAndParamSet);
      textAndParamSet = TokenSet.orSet(textAndParamSet, TokenSet.create(TokenType.WHITE_SPACE));
      if (textNode != null) {
        int start = textNode.getTextRange().getStartOffset();
        int end = textNode.getTextRange().getEndOffset();
        int endBeforeSpace = end;
        textNode = textNode.getTreeNext();
        while (textNode != null && textAndParamSet.contains(textNode.getElementType())) {
          if (textNode.getElementType() == TokenType.WHITE_SPACE) {
            endBeforeSpace = end;
          } else {
            endBeforeSpace = textNode.getTextRange().getEndOffset();
          }
          end = textNode.getTextRange().getEndOffset();
          textNode = textNode.getTreeNext();
        }
        TextRange tr = new TextRange(start, endBeforeSpace);
        CucumberStepReference reference =  new CucumberStepReference(element, tr.shiftRight(-element.getTextOffset()));
        return new PsiReference[] {reference};
      }
View Full Code Here


    }

    public boolean accepts(@NotNull PsiElement psiElement, ProcessingContext context) {
      boolean result = false;
      PsiElement parent = psiElement.getParent();
      ASTNode prevNode = FormatterUtil.getPreviousNonWhitespaceSibling(parent.getNode());
      if (prevNode != null) {
        result = prevNode.getElementType() == CfscriptTokenTypes.L_CURLYBRACKET;
        if (!result && prevNode.getElementType() == CfscriptTokenTypes.SEMICOLON) {
          ASTNode superPrevNode = FormatterUtil.getPreviousNonWhitespaceSibling(prevNode);
          result = superPrevNode != null && superPrevNode.getElementType() == CfmlElementTypes.PROPERTY;
        }
      }

      return result;
    }
View Full Code Here

    gherkinElementVisitor.visitTable(this);
  }

  @Nullable
  public GherkinTableRow getHeaderRow() {
    final ASTNode node = getNode();

    final ASTNode tableNode = node.findChildByType(HEADER_ROW_TOKEN_SET);
    return tableNode == null ? null : (GherkinTableRow)tableNode.getPsi();
  }
View Full Code Here

   * and uses no name (i.e. the "{^}" icon is the representative) in the simple
   * inverse case
   */
  @Override
  public String getName() {
    ASTNode elseNode = getElseNode();
    if (elseNode != null) {
      return elseNode.getText();
    }
    return ""; // no name for "{{^}}" expressions
  }
View Full Code Here

    gherkinElementVisitor.visitExamplesBlock(this);
  }

  @Nullable
  public GherkinTable getTable() {
    final ASTNode node = getNode();

    final ASTNode tableNode = node.findChildByType(TABLE_FILTER);
    return tableNode == null ? null : (GherkinTable)tableNode.getPsi();
  }
View Full Code Here

  public String toString() {
    return "GherkinFeature:" + getFeatureName();
  }

  public String getFeatureName() {
    ASTNode node = getNode();
    final ASTNode firstText = node.findChildByType(GherkinTokenTypes.TEXT);
    if (firstText != null) {
      return firstText.getText();
    }
    final GherkinFeatureHeaderImpl header = PsiTreeUtil.getChildOfType(this, GherkinFeatureHeaderImpl.class);
    if (header != null) {
      return header.getElementText();
    }
View Full Code Here

    return result;
  }

  public String getLocaleLanguage() {
    final ASTNode node = getNode();
    assert node != null;

    ASTNode child = node.getFirstChildNode();
    while (child != null) {
      if (child.getElementType() == GherkinTokenTypes.COMMENT) {
        final String text = child.getText().substring(1).trim();

        final String lang = GherkinLexer.fetchLocationLanguage(text);
        if (lang != null) {
          return lang;
        }
      } else {
        if (child.getElementType() != TokenType.WHITE_SPACE) {
          break;
        }
      }
      child = child.getTreeNext();
    }
    return getDefaultLocale();
  }
View Full Code Here

    super(node);
  }

  @Override
  public final String getScenarioName() {
    ASTNode node = getNode().getFirstChildNode();
    while (node != null && node.getElementType() != GherkinTokenTypes.TEXT) {
      node = node.getTreeNext();
    }

    return node != null ? node.getText() : "";
  }
View Full Code Here

  @NotNull
  public static PsiElement createIdentifier(final String text, final Project project) {
    final CfmlReferenceExpression reference = createReferenceExpression(text, project);
    final PsiElement identifier = reference.getFirstChild();
    assert identifier != null;
    final ASTNode identifierNode = identifier.getNode();
    assert identifierNode != null;
    assert identifierNode.getElementType() == CfscriptTokenTypes.IDENTIFIER;
    return identifier;
  }
View Full Code Here

  @NotNull
  public static PsiReference[] getComponentReferencesFromAttributes(PsiElement element) {
    final PsiElement rEx = getAttributeValueElement(element, "extends");
    final PsiElement rImpl = getAttributeValueElement(element, "implements");

    ASTNode rExNode = rEx != null ? rEx.getNode() : null;
    ASTNode rImplNode = rImpl != null ? rImpl.getNode() : null;
    if (rExNode != null) {
      return rImplNode == null ? new PsiReference[]{new CfmlComponentReference(rExNode, element)} :
             new PsiReference[]{new CfmlComponentReference(rExNode, element), new CfmlComponentReference(rImplNode, element)};
    }
    if (rImplNode != null) {
      String implList = rImplNode.getText();
      if (!implList.contains(",")) {
        return new PsiReference[]{new CfmlComponentReference(rImplNode, element)};
      }/* else {
       // TODO: to parse list of components
      }*/
 
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.