当前位置: 首页>>代码示例>>Java>>正文


Java SharedImplUtil.findCharTableByTree方法代码示例

本文整理汇总了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);
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:9,代码来源:PsiBuilderTest.java

示例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("'", "&apos;") : newContent.replace("\"", "&quot;");
    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;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:30,代码来源:XmlAttributeValueManipulator.java

示例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;
}
 
开发者ID:lshain-android-source,项目名称:tools-idea,代码行数:28,代码来源:XmlAttributeValueManipulator.java

示例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());
		}
	}
}
 
开发者ID:consulo,项目名称:consulo-java,代码行数:31,代码来源:PsiReferenceExpressionImpl.java

示例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);
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:7,代码来源:ReplaceChangeInfoImpl.java

示例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);
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:6,代码来源:DebugUtil.java

示例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));
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:4,代码来源:DummyHolder.java

示例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);
}
 
开发者ID:consulo,项目名称:consulo,代码行数:6,代码来源:DebugUtil.java

示例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));
}
 
开发者ID:consulo,项目名称:consulo,代码行数:4,代码来源:DummyHolder.java


注:本文中的com.intellij.psi.impl.source.tree.SharedImplUtil.findCharTableByTree方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。