本文整理汇总了Java中com.intellij.psi.impl.source.tree.SharedImplUtil.findCharTableByTree方法的典型用法代码示例。如果您正苦于以下问题:Java SharedImplUtil.findCharTableByTree方法的具体用法?Java SharedImplUtil.findCharTableByTree怎么用?Java SharedImplUtil.findCharTableByTree使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.intellij.psi.impl.source.tree.SharedImplUtil
的用法示例。
在下文中一共展示了SharedImplUtil.findCharTableByTree方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: createBuilder
import com.intellij.psi.impl.source.tree.SharedImplUtil; //导入方法依赖的package包/类
private static PsiBuilderImpl createBuilder(final String text, ASTNode originalTree) {
final Language lang = StdFileTypes.JAVA.getLanguage();
final ParserDefinition parserDefinition = LanguageParserDefinitions.INSTANCE.forLanguage(lang);
assertNotNull(parserDefinition);
PsiFile psiFile = createFile("x.java", text);
return new PsiBuilderImpl(getProject(), psiFile, parserDefinition, JavaParserDefinition.createLexer(LanguageLevel.JDK_1_5),
SharedImplUtil.findCharTableByTree(psiFile.getNode()), text, originalTree, null);
}
示例2: handleContentChange
import com.intellij.psi.impl.source.tree.SharedImplUtil; //导入方法依赖的package包/类
public static <T extends PsiElement> T handleContentChange(T element,
TextRange range,
String newContent,
final IElementType tokenType) {
CheckUtil.checkWritable(element);
final CompositeElement attrNode = (CompositeElement)element.getNode();
final ASTNode valueNode = attrNode.findLeafElementAt(range.getStartOffset());
LOG.assertTrue(valueNode != null, "Leaf not found in " + attrNode + " at offset " + range.getStartOffset() + " in element " + element);
final PsiElement elementToReplace = valueNode.getPsi();
String text;
try {
text = elementToReplace.getText();
final int offsetInParent = elementToReplace.getStartOffsetInParent();
String textBeforeRange = text.substring(0, range.getStartOffset() - offsetInParent);
String textAfterRange = text.substring(range.getEndOffset()- offsetInParent, text.length());
newContent = element.getText().startsWith("'") || element.getText().endsWith("'") ?
newContent.replace("'", "'") : newContent.replace("\"", """);
text = textBeforeRange + newContent + textAfterRange;
} catch(StringIndexOutOfBoundsException e) {
LOG.error("Range: " + range + " in text: '" + element.getText() + "'", e);
throw e;
}
final CharTable charTableByTree = SharedImplUtil.findCharTableByTree(attrNode);
final LeafElement newValueElement = Factory.createSingleLeafElement(tokenType, text, charTableByTree, element.getManager());
attrNode.replaceChildInternal(valueNode, newValueElement);
return element;
}
示例3: handleContentChange
import com.intellij.psi.impl.source.tree.SharedImplUtil; //导入方法依赖的package包/类
public static <T extends PsiElement> T handleContentChange(T element,
TextRange range,
String newContent,
final IElementType tokenType) {
CheckUtil.checkWritable(element);
final CompositeElement attrNode = (CompositeElement)element.getNode();
final ASTNode valueNode = attrNode.findLeafElementAt(range.getStartOffset());
LOG.assertTrue(valueNode != null, "Leaf not found in " + attrNode + " at offset " + range.getStartOffset() + " in element " + element);
final PsiElement elementToReplace = valueNode.getPsi();
String text;
try {
text = elementToReplace.getText();
final int offsetInParent = elementToReplace.getStartOffsetInParent();
String textBeforeRange = text.substring(0, range.getStartOffset() - offsetInParent);
String textAfterRange = text.substring(range.getEndOffset()- offsetInParent, text.length());
text = textBeforeRange + newContent + textAfterRange;
} catch(StringIndexOutOfBoundsException e) {
LOG.error("Range: " + range + " in text: '" + element.getText() + "'", e);
throw e;
}
final CharTable charTableByTree = SharedImplUtil.findCharTableByTree(attrNode);
final LeafElement newValueElement = Factory.createSingleLeafElement(tokenType, text, charTableByTree, element.getManager());
attrNode.replaceChildInternal(valueNode, newValueElement);
return element;
}
示例4: setQualifierExpression
import com.intellij.psi.impl.source.tree.SharedImplUtil; //导入方法依赖的package包/类
@Override
public void setQualifierExpression(@Nullable PsiExpression newQualifier) throws IncorrectOperationException
{
final PsiExpression oldQualifier = getQualifierExpression();
if(newQualifier == null)
{
if(oldQualifier != null)
{
deleteChildInternal(oldQualifier.getNode());
}
}
else
{
if(oldQualifier != null)
{
oldQualifier.replace(newQualifier);
}
else
{
final CharTable treeCharTab = SharedImplUtil.findCharTableByTree(this);
TreeElement dot = (TreeElement) findChildByRole(ChildRole.DOT);
if(dot == null)
{
dot = Factory.createSingleLeafElement(JavaTokenType.DOT, ".", 0, 1, treeCharTab, getManager());
dot = addInternal(dot, dot, getFirstChildNode(), Boolean.TRUE);
}
addBefore(newQualifier, dot.getPsi());
}
}
}
示例5: setReplaced
import com.intellij.psi.impl.source.tree.SharedImplUtil; //导入方法依赖的package包/类
public void setReplaced(@NotNull ASTNode replaced) {
CharTable charTableByTree = myNewNode.getTreeParent() == null ? null : SharedImplUtil.findCharTableByTree(myNewNode);
setOldLength(((TreeElement)replaced).getNotCachedLength());
myOldNode = replaced;
myOldNode.putUserData(CharTable.CHAR_TABLE_KEY, charTableByTree);
}
示例6: checkSameCharTabs
import com.intellij.psi.impl.source.tree.SharedImplUtil; //导入方法依赖的package包/类
public static void checkSameCharTabs(@NotNull ASTNode element1, @NotNull ASTNode element2) {
final CharTable fromCharTab = SharedImplUtil.findCharTableByTree(element1);
final CharTable toCharTab = SharedImplUtil.findCharTableByTree(element2);
LOG.assertTrue(fromCharTab == toCharTab);
}
示例7: DummyHolder
import com.intellij.psi.impl.source.tree.SharedImplUtil; //导入方法依赖的package包/类
public DummyHolder(@NotNull PsiManager manager, TreeElement contentElement, PsiElement context) {
this(manager, contentElement, context, SharedImplUtil.findCharTableByTree(contentElement));
}
示例8: checkSameCharTabs
import com.intellij.psi.impl.source.tree.SharedImplUtil; //导入方法依赖的package包/类
public static void checkSameCharTabs(@Nonnull ASTNode element1, @Nonnull ASTNode element2) {
final CharTable fromCharTab = SharedImplUtil.findCharTableByTree(element1);
final CharTable toCharTab = SharedImplUtil.findCharTableByTree(element2);
LOG.assertTrue(fromCharTab == toCharTab);
}
示例9: DummyHolder
import com.intellij.psi.impl.source.tree.SharedImplUtil; //导入方法依赖的package包/类
public DummyHolder(@Nonnull PsiManager manager, TreeElement contentElement, PsiElement context) {
this(manager, contentElement, context, SharedImplUtil.findCharTableByTree(contentElement));
}