本文整理汇总了Java中com.intellij.psi.impl.source.tree.ForeignLeafPsiElement类的典型用法代码示例。如果您正苦于以下问题:Java ForeignLeafPsiElement类的具体用法?Java ForeignLeafPsiElement怎么用?Java ForeignLeafPsiElement使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
ForeignLeafPsiElement类属于com.intellij.psi.impl.source.tree包,在下文中一共展示了ForeignLeafPsiElement类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getMatchingLength
import com.intellij.psi.impl.source.tree.ForeignLeafPsiElement; //导入依赖的package包/类
private static int getMatchingLength(@NotNull FileElement treeElement, @NotNull CharSequence text, boolean fromStart) {
int patternIndex = fromStart ? 0 : text.length() - 1;
int finalPatternIndex = fromStart ? text.length() - 1 : 0;
int direction = fromStart ? 1 : -1;
ASTNode leaf = fromStart ? TreeUtil.findFirstLeaf(treeElement, false) : TreeUtil.findLastLeaf(treeElement, false);
int result = 0;
while (leaf != null && (fromStart ? patternIndex <= finalPatternIndex : patternIndex >= finalPatternIndex)) {
if (!(leaf instanceof ForeignLeafPsiElement)) {
CharSequence chars = leaf.getChars();
if (chars.length() > 0) {
int matchingLength = getLeafMatchingLength(chars, text, patternIndex, finalPatternIndex, direction);
result += matchingLength;
if (matchingLength != chars.length()) {
break;
}
patternIndex += (fromStart ? matchingLength : -matchingLength);
}
}
leaf = fromStart ? TreeUtil.nextLeaf(leaf, false) : TreeUtil.prevLeaf(leaf, false);
}
return result;
}
示例2: visitLeaf
import com.intellij.psi.impl.source.tree.ForeignLeafPsiElement; //导入依赖的package包/类
@Override
public void visitLeaf(LeafElement leaf) {
String leafText = leaf instanceof ForeignLeafPsiElement ? "" : leaf.getText();
catLeafs.append(leafText);
final TextRange leafRange = leaf.getTextRange();
StringBuilder leafEncodedText = constructTextFromHostPSI(leafRange.getStartOffset(), leafRange.getEndOffset());
if (leaf.getElementType() == TokenType.WHITE_SPACE && prevElementTail != null) {
// optimization: put all garbage into whitespace
leafEncodedText.insert(0, prevElementTail);
newTexts.remove(prevElement);
storeUnescapedTextFor(prevElement, null);
}
if (!Comparing.equal(leafText, leafEncodedText)) {
newTexts.put(leaf, leafEncodedText.toString());
storeUnescapedTextFor(leaf, leafText);
}
prevElementTail = StringUtil.startsWith(leafEncodedText, leafText) && leafEncodedText.length() != leafText.length() ?
leafEncodedText.substring(leafText.length()) : null;
prevElement = leaf;
}
示例3: getMatchingLength
import com.intellij.psi.impl.source.tree.ForeignLeafPsiElement; //导入依赖的package包/类
private static int getMatchingLength(@Nonnull FileElement treeElement, @Nonnull CharSequence text, boolean fromStart) {
int patternIndex = fromStart ? 0 : text.length() - 1;
int finalPatternIndex = fromStart ? text.length() - 1 : 0;
int direction = fromStart ? 1 : -1;
ASTNode leaf = fromStart ? TreeUtil.findFirstLeaf(treeElement, false) : TreeUtil.findLastLeaf(treeElement, false);
int result = 0;
while (leaf != null && (fromStart ? patternIndex <= finalPatternIndex : patternIndex >= finalPatternIndex)) {
if (!(leaf instanceof ForeignLeafPsiElement)) {
CharSequence chars = leaf.getChars();
if (chars.length() > 0) {
int matchingLength = getLeafMatchingLength(chars, text, patternIndex, finalPatternIndex, direction);
result += matchingLength;
if (matchingLength != chars.length()) {
break;
}
patternIndex += fromStart ? matchingLength : -matchingLength;
}
}
leaf = fromStart ? TreeUtil.nextLeaf(leaf, false) : TreeUtil.prevLeaf(leaf, false);
}
return result;
}
示例4: visitElement
import com.intellij.psi.impl.source.tree.ForeignLeafPsiElement; //导入依赖的package包/类
@Override
public void visitElement(PsiElement element) {
if (!(element instanceof ForeignLeafPsiElement) && element.isPhysical()) {
super.visitElement(element);
}
}
示例5: createLeafNode
import com.intellij.psi.impl.source.tree.ForeignLeafPsiElement; //导入依赖的package包/类
@Override
@NotNull
public ASTNode createLeafNode(CharSequence leafText) {
return new ForeignLeafPsiElement(this, getValue());
}
示例6: createLeafNode
import com.intellij.psi.impl.source.tree.ForeignLeafPsiElement; //导入依赖的package包/类
@Override
@Nonnull
public ASTNode createLeafNode(CharSequence leafText) {
return new ForeignLeafPsiElement(this, getValue());
}