本文整理汇总了Java中com.intellij.lang.ASTFactory.leaf方法的典型用法代码示例。如果您正苦于以下问题:Java ASTFactory.leaf方法的具体用法?Java ASTFactory.leaf怎么用?Java ASTFactory.leaf使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.intellij.lang.ASTFactory
的用法示例。
在下文中一共展示了ASTFactory.leaf方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: createCharEntity
import com.intellij.lang.ASTFactory; //导入方法依赖的package包/类
@SuppressWarnings({"HardCodedStringLiteral"})
private static TreeElement createCharEntity(char ch, CharTable charTable) {
switch (ch) {
case '<':
return ASTFactory.leaf(XmlTokenType.XML_CHAR_ENTITY_REF, "<");
case '\'':
return ASTFactory.leaf(XmlTokenType.XML_CHAR_ENTITY_REF, "'");
case '"':
return ASTFactory.leaf(XmlTokenType.XML_CHAR_ENTITY_REF, """);
case '>':
return ASTFactory.leaf(XmlTokenType.XML_CHAR_ENTITY_REF, ">");
case '&':
return ASTFactory.leaf(XmlTokenType.XML_CHAR_ENTITY_REF, "&");
case '\u00a0':
return ASTFactory.leaf(XmlTokenType.XML_CHAR_ENTITY_REF, " ");
default:
final String charEncoding = "&#" + (int)ch + ";";
return ASTFactory.leaf(XmlTokenType.XML_CHAR_ENTITY_REF, charTable.intern(charEncoding));
}
}
示例2: createWhiteSpaceFromText
import com.intellij.lang.ASTFactory; //导入方法依赖的package包/类
@Override
@NotNull
public PsiElement createWhiteSpaceFromText(@NotNull @NonNls String text) throws IncorrectOperationException {
final FileElement holderElement = DummyHolderFactory.createHolder(myManager, null).getTreeElement();
final LeafElement newElement = ASTFactory.leaf(TokenType.WHITE_SPACE, holderElement.getCharTable().intern(text));
holderElement.rawAddChildren(newElement);
GeneratedMarkerVisitor.markGenerated(newElement.getPsi());
return newElement.getPsi();
}
示例3: createSingleLeafElement
import com.intellij.lang.ASTFactory; //导入方法依赖的package包/类
@NotNull
public static LeafElement createSingleLeafElement(@NotNull IElementType type, CharSequence buffer, int startOffset, int endOffset, CharTable table, PsiManager manager, PsiFile originalFile) {
DummyHolder dummyHolder = DummyHolderFactory.createHolder(manager, table, type.getLanguage());
dummyHolder.setOriginalFile(originalFile);
FileElement holderElement = dummyHolder.getTreeElement();
LeafElement newElement = ASTFactory.leaf(type, holderElement.getCharTable().intern(
buffer, startOffset, endOffset));
holderElement.rawAddChildren(newElement);
CodeEditUtil.setNodeGenerated(newElement, true);
return newElement;
}
示例4: rawReplaceWithText
import com.intellij.lang.ASTFactory; //导入方法依赖的package包/类
@NotNull
public LeafElement rawReplaceWithText(@NotNull String newText) {
LeafElement newLeaf = ASTFactory.leaf(getElementType(), newText);
copyUserDataTo(newLeaf);
rawReplaceWithList(newLeaf);
newLeaf.clearCaches();
return newLeaf;
}
示例5: copyLeafWithText
import com.intellij.lang.ASTFactory; //导入方法依赖的package包/类
@NotNull
public static LeafElement copyLeafWithText(@NotNull LeafElement original, @NotNull String text) {
LeafElement element = ASTFactory.leaf(original.getElementType(), text);
original.copyCopyableDataTo(element);
encodeInformation(element, original);
TreeUtil.clearCaches(element);
saveIndentationToCopy(original, element);
return element;
}
示例6: split
import com.intellij.lang.ASTFactory; //导入方法依赖的package包/类
@Override
public LeafElement split(LeafElement leaf, int offset, final CharTable table) {
final CharSequence chars = leaf.getChars();
final LeafElement leftPart = ASTFactory.leaf(leaf.getElementType(), table.intern(chars, 0, offset));
final LeafElement rightPart = ASTFactory.leaf(leaf.getElementType(), table.intern(chars, offset, chars.length()));
leaf.rawInsertAfterMe(leftPart);
leftPart.rawInsertAfterMe(rightPart);
leaf.rawRemove();
return leftPart;
}
示例7: createTokenElement
import com.intellij.lang.ASTFactory; //导入方法依赖的package包/类
@Nullable
public static TreeElement createTokenElement(Lexer lexer, CharTable table) {
IElementType tokenType = lexer.getTokenType();
if (tokenType == null) {
return null;
}
else if (tokenType instanceof ILazyParseableElementType) {
return ASTFactory.lazy((ILazyParseableElementType)tokenType, LexerUtil.internToken(lexer, table));
}
else {
return ASTFactory.leaf(tokenType, LexerUtil.internToken(lexer, table));
}
}
示例8: handleContentChange
import com.intellij.lang.ASTFactory; //导入方法依赖的package包/类
@Override
public XmlToken handleContentChange(@NotNull XmlToken xmlToken, @NotNull TextRange range, String newContent) throws IncorrectOperationException {
String oldText = xmlToken.getText();
String newText = oldText.substring(0, range.getStartOffset()) + newContent + oldText.substring(range.getEndOffset());
IElementType tokenType = xmlToken.getTokenType();
FileElement holder = DummyHolderFactory.createHolder(xmlToken.getManager(), null).getTreeElement();
LeafElement leaf = ASTFactory.leaf(tokenType, holder.getCharTable().intern(newText));
holder.rawAddChildren(leaf);
return (XmlToken)xmlToken.replace(leaf.getPsi());
}
示例9: createSingleLeafElement
import com.intellij.lang.ASTFactory; //导入方法依赖的package包/类
public static LeafElement createSingleLeafElement(IElementType type, CharSequence buffer, int startOffset, int endOffset, CharTable table, PsiManager manager, PsiFile originalFile) {
DummyHolder dummyHolder = DummyHolderFactory.createHolder(manager, table, type.getLanguage());
dummyHolder.setOriginalFile(originalFile);
FileElement holderElement = dummyHolder.getTreeElement();
LeafElement newElement = ASTFactory.leaf(type, holderElement.getCharTable().intern(
buffer, startOffset, endOffset));
holderElement.rawAddChildren(newElement);
CodeEditUtil.setNodeGenerated(newElement, true);
return newElement;
}
示例10: rawReplaceWithText
import com.intellij.lang.ASTFactory; //导入方法依赖的package包/类
public LeafElement rawReplaceWithText(String newText) {
LeafElement newLeaf = ASTFactory.leaf(getElementType(), newText);
copyUserDataTo(newLeaf);
rawReplaceWithList(newLeaf);
newLeaf.clearCaches();
return newLeaf;
}
示例11: copyLeafWithText
import com.intellij.lang.ASTFactory; //导入方法依赖的package包/类
public static LeafElement copyLeafWithText(LeafElement original, String text) {
LeafElement element = ASTFactory.leaf(original.getElementType(), text);
original.copyCopyableDataTo(element);
encodeInformation(element, original);
TreeUtil.clearCaches(element);
saveIndentationToCopy(original, element);
return element;
}
示例12: handleContentChange
import com.intellij.lang.ASTFactory; //导入方法依赖的package包/类
public XmlToken handleContentChange(XmlToken xmlToken, TextRange range, String newContent) throws IncorrectOperationException {
String oldText = xmlToken.getText();
String newText = oldText.substring(0, range.getStartOffset()) + newContent + oldText.substring(range.getEndOffset());
IElementType tokenType = xmlToken.getTokenType();
FileElement holder = DummyHolderFactory.createHolder(xmlToken.getManager(), null).getTreeElement();
LeafElement leaf = ASTFactory.leaf(tokenType, holder.getCharTable().intern(newText));
holder.rawAddChildren(leaf);
return (XmlToken)xmlToken.replace(leaf.getPsi());
}
示例13: createWhiteSpaceFromText
import com.intellij.lang.ASTFactory; //导入方法依赖的package包/类
@Override
@Nonnull
public PsiElement createWhiteSpaceFromText(@Nonnull @NonNls String text) throws IncorrectOperationException {
final FileElement holderElement = DummyHolderFactory.createHolder(myManager, null).getTreeElement();
final LeafElement newElement = ASTFactory.leaf(TokenType.WHITE_SPACE, holderElement.getCharTable().intern(text));
holderElement.rawAddChildren(newElement);
GeneratedMarkerVisitor.markGenerated(newElement.getPsi());
return newElement.getPsi();
}
示例14: createSingleLeafElement
import com.intellij.lang.ASTFactory; //导入方法依赖的package包/类
@Nonnull
public static LeafElement createSingleLeafElement(@Nonnull IElementType type, CharSequence buffer, int startOffset, int endOffset, CharTable table, PsiManager manager, PsiFile originalFile) {
DummyHolder dummyHolder = DummyHolderFactory.createHolder(manager, table, type.getLanguage());
dummyHolder.setOriginalFile(originalFile);
FileElement holderElement = dummyHolder.getTreeElement();
LeafElement newElement = ASTFactory.leaf(type, holderElement.getCharTable().intern(
buffer, startOffset, endOffset));
holderElement.rawAddChildren(newElement);
CodeEditUtil.setNodeGenerated(newElement, true);
return newElement;
}
示例15: addLeaf
import com.intellij.lang.ASTFactory; //导入方法依赖的package包/类
@Override
public void addLeaf(@Nonnull final IElementType leafType, final CharSequence leafText, final ASTNode anchorBefore) {
FileElement holder = new DummyHolder(getManager(), null).getTreeElement();
final LeafElement leaf = ASTFactory.leaf(leafType, holder.getCharTable().intern(leafText));
CodeEditUtil.setNodeGenerated(leaf, true);
holder.rawAddChildren(leaf);
addChild(leaf, anchorBefore);
}