com.intellij.psi.impl.source.SourceTreeToPsiMap#treeElementToPsi ( )源码实例Demo

下面列出了com.intellij.psi.impl.source.SourceTreeToPsiMap#treeElementToPsi ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: BashSupport   文件: BashSpacingProcessor.java
private void init(final ASTNode child) {
    if (child == null) {
        return;
    }
    ASTNode treePrev = child.getTreePrev();
    while (treePrev != null && SpacingUtil.isWhiteSpace(treePrev)) {
        treePrev = treePrev.getTreePrev();
    }

    if (treePrev == null) {
        init(child.getTreeParent());
    } else {
        myChild2 = child;
        myChild1 = treePrev;
        final CompositeElement parent = (CompositeElement) treePrev.getTreeParent();
        myParent = SourceTreeToPsiMap.treeElementToPsi(parent);
    }
}
 
源代码2 项目: consulo   文件: FormatterUtil.java
@Nullable
private static ASTNode findPreviousWhiteSpace(final ASTNode leafElement, final IElementType whiteSpaceTokenType) {
  final int offset = leafElement.getTextRange().getStartOffset() - 1;
  if (offset < 0) return null;
  final PsiElement psiElement = SourceTreeToPsiMap.treeElementToPsi(leafElement);
  if (psiElement == null) {
    return null;
  }
  final PsiElement found = psiElement.getContainingFile().findElementAt(offset);
  if (found == null) return null;
  final ASTNode treeElement = found.getNode();
  if (treeElement != null && treeElement.getElementType() == whiteSpaceTokenType) return treeElement;
  return null;
}
 
@Override
public GraphQLIdentifierImpl handleContentChange(@NotNull GraphQLIdentifierImpl element, @NotNull TextRange range, String newContent) throws IncorrectOperationException {
    // replace the NAME leaf element inside the identifier
    final LeafElement renamedLeaf = Factory.createSingleLeafElement(GraphQLElementTypes.NAME, newContent, null, element.getManager());
    final PsiElement renamedPsiElement = SourceTreeToPsiMap.treeElementToPsi(renamedLeaf);
    if (renamedPsiElement != null) {
        element.getFirstChild().replace(renamedPsiElement);
    }
    return element;

}
 
源代码4 项目: consulo   文件: OwnBufferLeafPsiElement.java
@Override
public PsiElement replace(@Nonnull PsiElement newElement) throws IncorrectOperationException {
  LOG.assertTrue(getTreeParent() != null);
  CheckUtil.checkWritable(this);
  TreeElement elementCopy = ChangeUtil.copyToElement(newElement);
  getTreeParent().replaceChildInternal(this, elementCopy);
  elementCopy = ChangeUtil.decodeInformation(elementCopy);
  final PsiElement result = SourceTreeToPsiMap.treeElementToPsi(elementCopy);

  this.invalidate();
  return result;
}
 
@SuppressWarnings("SimplifiableIfStatement")
@Override
protected boolean isRegionCollapsedByDefault(@NotNull ASTNode node) {
    final PsiElement element = SourceTreeToPsiMap.treeElementToPsi(node);
    if (element == null) return false;

    ANTLRv4FoldingSettings settings = ANTLRv4FoldingSettings.getInstance();

    if (RULE_BLOCKS.contains(node.getElementType())) return settings.isCollapseRuleBlocks();
    if (node.getElementType() == TOKENSSPEC) return settings.isCollapseTokens();

    if (element instanceof AtAction) return settings.isCollapseActions();

    if (element instanceof ANTLRv4FileRoot) {
        return settings.isCollapseFileHeader();
    }
    if (node.getElementType() == DOC_COMMENT_TOKEN) {

        PsiElement parent = element.getParent();

        if (parent instanceof ANTLRv4FileRoot) {
            PsiElement firstChild = parent.getFirstChild();
            if (firstChild instanceof PsiWhiteSpace) {
                firstChild = firstChild.getNextSibling();
            }
            if (element.equals(firstChild)) {
                return settings.isCollapseFileHeader();
            }
        }
        return settings.isCollapseDocComments();
    }
    if (isComment(element)) {
        return settings.isCollapseComments();
    }
    return false;

}
 
源代码6 项目: consulo   文件: StubBasedPsiElementBase.java
/**
 * @return the parent of this element. Uses stub hierarchy if possible, but might cause an expensive switch to AST
 * if the parent stub doesn't correspond to the parent AST node.
 */
@Override
public PsiElement getParent() {
  T stub = getGreenStub();
  if (stub != null && !((ObjectStubBase<?>)stub).isDangling()) {
    return stub.getParentStub().getPsi();
  }

  return SourceTreeToPsiMap.treeElementToPsi(getNode().getTreeParent());
}
 
源代码7 项目: consulo   文件: ASTDelegatePsiElement.java
@Override
public PsiElement replace(@Nonnull final PsiElement newElement) throws IncorrectOperationException {
  CheckUtil.checkWritable(this);
  TreeElement elementCopy = ChangeUtil.copyToElement(newElement);
  if (getParent() instanceof ASTDelegatePsiElement) {
    final ASTDelegatePsiElement parentElement = (ASTDelegatePsiElement)getParent();
    parentElement.replaceChildInternal(this, elementCopy);
  }
  else {
    CodeEditUtil.replaceChild(getParent().getNode(), getNode(), elementCopy);
  }
  elementCopy = ChangeUtil.decodeInformation(elementCopy);
  return SourceTreeToPsiMap.treeElementToPsi(elementCopy);
}
 
源代码8 项目: consulo   文件: SharedImplUtil.java
public static PsiElement addRange(PsiElement thisElement,
                                  PsiElement first,
                                  PsiElement last,
                                  ASTNode anchor,
                                  Boolean before) throws IncorrectOperationException {
  CheckUtil.checkWritable(thisElement);
  final CharTable table = findCharTableByTree(SourceTreeToPsiMap.psiElementToTree(thisElement));

  TreeElement copyFirst = null;
  ASTNode copyLast = null;
  ASTNode next = SourceTreeToPsiMap.psiElementToTree(last).getTreeNext();
  ASTNode parent = null;
  for (ASTNode element = SourceTreeToPsiMap.psiElementToTree(first); element != next; element = element.getTreeNext()) {
    TreeElement elementCopy = ChangeUtil.copyElement((TreeElement)element, table);
    if (element == first.getNode()) {
      copyFirst = elementCopy;
    }
    if (element == last.getNode()) {
      copyLast = elementCopy;
    }
    if (parent == null) {
      parent = elementCopy.getTreeParent();
    }
    else {
      if(elementCopy.getElementType() == TokenType.WHITE_SPACE)
        CodeEditUtil.setNodeGenerated(elementCopy, true);
      parent.addChild(elementCopy, null);
    }
  }
  if (copyFirst == null) return null;
  copyFirst = ((CompositeElement)SourceTreeToPsiMap.psiElementToTree(thisElement)).addInternal(copyFirst, copyLast, anchor, before);
  for (TreeElement element = copyFirst; element != null; element = element.getTreeNext()) {
    element = ChangeUtil.decodeInformation(element);
    if (element.getTreePrev() == null) {
      copyFirst = element;
    }
  }
  return SourceTreeToPsiMap.treeElementToPsi(copyFirst);
}
 
源代码9 项目: consulo   文件: SharedImplUtil.java
public static PsiElement doReplace(PsiElement psiElement, TreeElement treeElement, PsiElement newElement) {
  CompositeElement treeParent = treeElement.getTreeParent();
  LOG.assertTrue(treeParent != null);
  CheckUtil.checkWritable(psiElement);
  TreeElement elementCopy = ChangeUtil.copyToElement(newElement);
  treeParent.replaceChildInternal(treeElement, elementCopy);
  elementCopy = ChangeUtil.decodeInformation(elementCopy);
  final PsiElement result = SourceTreeToPsiMap.treeElementToPsi(elementCopy);
  treeElement.invalidate();
  return result;
}
 
源代码10 项目: consulo   文件: LeafPsiElement.java
@Override
public PsiElement copy() {
  ASTNode elementCopy = copyElement();
  return SourceTreeToPsiMap.treeElementToPsi(elementCopy);
}
 
源代码11 项目: intellij-haxe   文件: AbstractHaxeNamedComponent.java
@Nullable
public final PsiElement findChildByRoleAsPsiElement(int role) {
  ASTNode element = findChildByRole(role);
  if (element == null) return null;
  return SourceTreeToPsiMap.treeElementToPsi(element);
}
 
源代码12 项目: consulo   文件: ASTDelegatePsiElement.java
@Override
@RequiredReadAction
public PsiElement findElementAt(int offset) {
  ASTNode treeElement = getNode().findLeafElementAt(offset);
  return SourceTreeToPsiMap.treeElementToPsi(treeElement);
}
 
源代码13 项目: consulo   文件: OwnBufferLeafPsiElement.java
@Override
public PsiElement copy() {
  ASTNode elementCopy = copyElement();
  return SourceTreeToPsiMap.treeElementToPsi(elementCopy);
}
 
源代码14 项目: consulo   文件: CompositeElement.java
@Nullable
public final PsiElement findChildByRoleAsPsiElement(int role) {
  ASTNode element = findChildByRole(role);
  if (element == null) return null;
  return SourceTreeToPsiMap.treeElementToPsi(element);
}
 
源代码15 项目: consulo   文件: SharedImplUtil.java
public static PsiElement getParent(ASTNode thisElement) {
  return SourceTreeToPsiMap.treeElementToPsi(thisElement.getTreeParent());
}
 
源代码16 项目: consulo   文件: LazyParseablePsiElement.java
@Override
public PsiElement copy() {
  ASTNode elementCopy = copyElement();
  return SourceTreeToPsiMap.treeElementToPsi(elementCopy);
}
 
源代码17 项目: consulo   文件: SharedImplUtil.java
@Nullable
public static PsiElement getLastChild(ASTNode element) {
  return SourceTreeToPsiMap.treeElementToPsi(element.getLastChildNode());
}
 
源代码18 项目: consulo   文件: SharedImplUtil.java
public static PsiElement getNextSibling(ASTNode thisElement) {
  return SourceTreeToPsiMap.treeElementToPsi(thisElement.getTreeNext());
}
 
源代码19 项目: consulo   文件: CompositePsiElement.java
@Override
public PsiElement copy() {
  ASTNode elementCopy = copyElement();
  return SourceTreeToPsiMap.treeElementToPsi(elementCopy);
}
 
源代码20 项目: consulo   文件: LazyParseablePsiElement.java
@Override
public PsiElement findElementAt(int offset) {
  ASTNode leaf = findLeafElementAt(offset);
  return SourceTreeToPsiMap.treeElementToPsi(leaf);
}