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


Java ASTFactory.composite方法代码示例

本文整理汇总了Java中com.intellij.lang.ASTFactory.composite方法的典型用法代码示例。如果您正苦于以下问题:Java ASTFactory.composite方法的具体用法?Java ASTFactory.composite怎么用?Java ASTFactory.composite使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.intellij.lang.ASTFactory的用法示例。


在下文中一共展示了ASTFactory.composite方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: addParenthToReplacedChild

import com.intellij.lang.ASTFactory; //导入方法依赖的package包/类
public static TreeElement addParenthToReplacedChild(@NotNull IElementType parenthType,
                                                    @NotNull TreeElement newChild,
                                                    @NotNull PsiManager manager) {
  CompositeElement parenthExpr = ASTFactory.composite(parenthType);

  TreeElement dummyExpr = (TreeElement)newChild.clone();
  final CharTable charTableByTree = SharedImplUtil.findCharTableByTree(newChild);
  new DummyHolder(manager, parenthExpr, null, charTableByTree);
  parenthExpr.putUserData(CharTable.CHAR_TABLE_KEY, charTableByTree);
  parenthExpr.rawAddChildren(ASTFactory.leaf(JavaTokenType.LPARENTH, "("));
  parenthExpr.rawAddChildren(dummyExpr);
  parenthExpr.rawAddChildren(ASTFactory.leaf(JavaTokenType.RPARENTH, ")"));

  try {
    CodeStyleManager codeStyleManager = CodeStyleManager.getInstance(manager.getProject());
    PsiElement formatted = codeStyleManager.reformat(SourceTreeToPsiMap.treeToPsiNotNull(parenthExpr));
    parenthExpr = (CompositeElement)SourceTreeToPsiMap.psiToTreeNotNull(formatted);
  }
  catch (IncorrectOperationException e) {
    LOG.error(e); // should not happen
  }

  newChild.putUserData(CharTable.CHAR_TABLE_KEY, SharedImplUtil.findCharTableByTree(newChild));
  dummyExpr.getTreeParent().replaceChild(dummyExpr, newChild);

  // TODO remove explicit caches drop since this should be ok if we will use ChangeUtil for the modification
  TreeUtil.clearCaches(TreeUtil.getFileElement(parenthExpr));
  return parenthExpr;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:30,代码来源:JavaSourceUtil.java

示例2: createCompositeElement

import com.intellij.lang.ASTFactory; //导入方法依赖的package包/类
@NotNull
public static CompositeElement createCompositeElement(@NotNull IElementType type,
                                                      final CharTable charTableByTree,
                                                      final PsiManager manager) {
  final FileElement treeElement = DummyHolderFactory.createHolder(manager, null, charTableByTree).getTreeElement();
  final CompositeElement composite = ASTFactory.composite(type);
  treeElement.rawAddChildren(composite);
  return composite;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:10,代码来源:Factory.java

示例3: createCDATAElement

import com.intellij.lang.ASTFactory; //导入方法依赖的package包/类
@SuppressWarnings({"HardCodedStringLiteral"})
public static FileElement createCDATAElement(final PsiManager manager, final CharTable charTableByTree, final String displayText) {
  final FileElement dummyParent = DummyHolderFactory.createHolder(manager, null, charTableByTree).getTreeElement();
  final CompositeElement cdata = ASTFactory.composite(XmlElementType.XML_CDATA);
  dummyParent.rawAddChildren(cdata);
  cdata.rawAddChildren(ASTFactory.leaf(XmlTokenType.XML_CDATA_START, "<![CDATA["));
  cdata.rawAddChildren(ASTFactory.leaf(XmlTokenType.XML_DATA_CHARACTERS, dummyParent.getCharTable().intern(displayText)));
  cdata.rawAddChildren(ASTFactory.leaf(XmlTokenType.XML_CDATA_END, "]]>"));
  dummyParent.acceptTree(new GeneratedMarkerVisitor());
  return dummyParent;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:12,代码来源:CDATAOnAnyEncodedPolicy.java

示例4: createDisplayText

import com.intellij.lang.ASTFactory; //导入方法依赖的package包/类
@Override
@NotNull
public XmlText createDisplayText(@NotNull String s) throws IncorrectOperationException {
  final XmlTag tagFromText = createTagFromText("<a>" + XmlTagUtil.getCDATAQuote(s) + "</a>");
  final XmlText[] textElements = tagFromText.getValue().getTextElements();
  if (textElements.length == 0) return (XmlText)ASTFactory.composite(XmlElementType.XML_TEXT);
  return textElements[0];
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:9,代码来源:XmlElementFactoryImpl.java

示例5: addParenthToReplacedChild

import com.intellij.lang.ASTFactory; //导入方法依赖的package包/类
public static TreeElement addParenthToReplacedChild(@NotNull IElementType parenthType,
                                                    @NotNull TreeElement newChild,
                                                    @NotNull PsiManager manager) {
  CompositeElement parenthExpr = ASTFactory.composite(parenthType);

  TreeElement dummyExpr = (TreeElement)newChild.clone();
  final CharTable charTableByTree = SharedImplUtil.findCharTableByTree(newChild);
  new DummyHolder(manager, parenthExpr, null, charTableByTree);
  parenthExpr.putUserData(CharTable.CHAR_TABLE_KEY, charTableByTree);
  parenthExpr.rawAddChildren(ASTFactory.leaf(JavaTokenType.LPARENTH, "("));
  parenthExpr.rawAddChildren(dummyExpr);
  parenthExpr.rawAddChildren(ASTFactory.leaf(JavaTokenType.RPARENTH, ")"));

  try {
    CodeStyleManager codeStyleManager = CodeStyleManager.getInstance(manager.getProject());
    PsiElement formatted = codeStyleManager.reformat(SourceTreeToPsiMap.treeToPsiNotNull(parenthExpr));
    parenthExpr = (CompositeElement)SourceTreeToPsiMap.psiToTreeNotNull(formatted);
  }
  catch (IncorrectOperationException e) {
    LOG.error(e); // should not happen
  }

  newChild.putUserData(CharTable.CHAR_TABLE_KEY, SharedImplUtil.findCharTableByTree(newChild));
  dummyExpr.rawReplaceWithList(newChild);

  newChild = parenthExpr;
  // TODO remove explicit caches drop since this should be ok if we will use ChangeUtil for the modification
  TreeUtil.clearCaches(TreeUtil.getFileElement(newChild));
  return newChild;
}
 
开发者ID:lshain-android-source,项目名称:tools-idea,代码行数:31,代码来源:SourceUtil.java

示例6: createCompositeElement

import com.intellij.lang.ASTFactory; //导入方法依赖的package包/类
@NotNull
public static CompositeElement createCompositeElement(final IElementType type,
                                                      final CharTable charTableByTree,
                                                      final PsiManager manager) {
  final FileElement treeElement = DummyHolderFactory.createHolder(manager, null, charTableByTree).getTreeElement();
  final CompositeElement composite = ASTFactory.composite(type);
  treeElement.rawAddChildren(composite);
  return composite;
}
 
开发者ID:lshain-android-source,项目名称:tools-idea,代码行数:10,代码来源:Factory.java

示例7: createCompositeElement

import com.intellij.lang.ASTFactory; //导入方法依赖的package包/类
@Nonnull
public static CompositeElement createCompositeElement(@Nonnull IElementType type,
                                                      final CharTable charTableByTree,
                                                      final PsiManager manager) {
  final FileElement treeElement = DummyHolderFactory.createHolder(manager, null, charTableByTree).getTreeElement();
  final CompositeElement composite = ASTFactory.composite(type);
  treeElement.rawAddChildren(composite);
  return composite;
}
 
开发者ID:consulo,项目名称:consulo,代码行数:10,代码来源:Factory.java

示例8: createDisplayText

import com.intellij.lang.ASTFactory; //导入方法依赖的package包/类
@Override
@NotNull
public XmlText createDisplayText(@NotNull String s) throws IncorrectOperationException
{
	final XmlTag tagFromText = createTagFromText("<a>" + XmlTagUtil.getCDATAQuote(s) + "</a>");
	final XmlText[] textElements = tagFromText.getValue().getTextElements();
	if(textElements.length == 0)
	{
		return (XmlText) ASTFactory.composite(XmlElementType.XML_TEXT);
	}
	return textElements[0];
}
 
开发者ID:consulo,项目名称:consulo-xml,代码行数:13,代码来源:XmlElementFactoryImpl.java

示例9: addParenthToReplacedChild

import com.intellij.lang.ASTFactory; //导入方法依赖的package包/类
public static TreeElement addParenthToReplacedChild(@NotNull IElementType parenthType,
		@NotNull TreeElement newChild,
		@NotNull PsiManager manager)
{
	CompositeElement parenthExpr = ASTFactory.composite(parenthType);

	TreeElement dummyExpr = (TreeElement) newChild.clone();
	final CharTable charTableByTree = SharedImplUtil.findCharTableByTree(newChild);
	new DummyHolder(manager, parenthExpr, null, charTableByTree);
	parenthExpr.putUserData(CharTable.CHAR_TABLE_KEY, charTableByTree);
	parenthExpr.rawAddChildren(ASTFactory.leaf(JavaTokenType.LPARENTH, "("));
	parenthExpr.rawAddChildren(dummyExpr);
	parenthExpr.rawAddChildren(ASTFactory.leaf(JavaTokenType.RPARENTH, ")"));

	try
	{
		CodeStyleManager codeStyleManager = CodeStyleManager.getInstance(manager.getProject());
		PsiElement formatted = codeStyleManager.reformat(SourceTreeToPsiMap.treeToPsiNotNull(parenthExpr));
		parenthExpr = (CompositeElement) SourceTreeToPsiMap.psiToTreeNotNull(formatted);
	}
	catch(IncorrectOperationException e)
	{
		LOG.error(e); // should not happen
	}

	newChild.putUserData(CharTable.CHAR_TABLE_KEY, SharedImplUtil.findCharTableByTree(newChild));
	dummyExpr.getTreeParent().replaceChild(dummyExpr, newChild);

	// TODO remove explicit caches drop since this should be ok if we will use ChangeUtil for the modification
	TreeUtil.clearCaches(TreeUtil.getFileElement(parenthExpr));
	return parenthExpr;
}
 
开发者ID:consulo,项目名称:consulo-java,代码行数:33,代码来源:JavaSourceUtil.java

示例10: normalizeBrackets

import com.intellij.lang.ASTFactory; //导入方法依赖的package包/类
public static void normalizeBrackets(@NotNull PsiVariable variable) {
  CompositeElement variableElement = (CompositeElement)variable.getNode();

  PsiTypeElement typeElement = variable.getTypeElement();
  PsiIdentifier nameElement = variable.getNameIdentifier();
  LOG.assertTrue(typeElement != null && nameElement != null);

  ASTNode type = typeElement.getNode();
  ASTNode name = nameElement.getNode();

  ASTNode firstBracket = null;
  ASTNode lastBracket = null;
  int arrayCount = 0;
  ASTNode element = name;
  while (element != null) {
    element = PsiImplUtil.skipWhitespaceAndComments(element.getTreeNext());
    if (element == null || element.getElementType() != JavaTokenType.LBRACKET) break;
    if (firstBracket == null) firstBracket = element;
    lastBracket = element;
    arrayCount++;

    element = PsiImplUtil.skipWhitespaceAndComments(element.getTreeNext());
    if (element == null || element.getElementType() != JavaTokenType.RBRACKET) break;
    lastBracket = element;
  }

  if (firstBracket != null) {
    element = firstBracket;
    while (true) {
      ASTNode next = element.getTreeNext();
      variableElement.removeChild(element);
      if (element == lastBracket) break;
      element = next;
    }

    CompositeElement newType = (CompositeElement)type.clone();
    for (int i = 0; i < arrayCount; i++) {
      CompositeElement newType1 = ASTFactory.composite(JavaElementType.TYPE);
      newType1.rawAddChildren(newType);

      newType1.rawAddChildren(ASTFactory.leaf(JavaTokenType.LBRACKET, "["));
      newType1.rawAddChildren(ASTFactory.leaf(JavaTokenType.RBRACKET, "]"));
      newType = newType1;
      newType.acceptTree(new GeneratedMarkerVisitor());
    }
    newType.putUserData(CharTable.CHAR_TABLE_KEY, SharedImplUtil.findCharTableByTree(type));
    variableElement.replaceChild(type, newType);
  }
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:50,代码来源:JavaSharedImplUtil.java

示例11: normalizeBrackets

import com.intellij.lang.ASTFactory; //导入方法依赖的package包/类
public static void normalizeBrackets(@NotNull PsiVariable variable)
{
	CompositeElement variableElement = (CompositeElement) variable.getNode();

	PsiTypeElement typeElement = variable.getTypeElement();
	PsiIdentifier nameElement = variable.getNameIdentifier();
	LOG.assertTrue(typeElement != null && nameElement != null);

	ASTNode type = typeElement.getNode();
	ASTNode name = nameElement.getNode();

	ASTNode firstBracket = null;
	ASTNode lastBracket = null;
	int arrayCount = 0;
	ASTNode element = name;
	while(element != null)
	{
		element = PsiImplUtil.skipWhitespaceAndComments(element.getTreeNext());
		if(element == null || element.getElementType() != JavaTokenType.LBRACKET)
		{
			break;
		}
		if(firstBracket == null)
		{
			firstBracket = element;
		}
		lastBracket = element;
		arrayCount++;

		element = PsiImplUtil.skipWhitespaceAndComments(element.getTreeNext());
		if(element == null || element.getElementType() != JavaTokenType.RBRACKET)
		{
			break;
		}
		lastBracket = element;
	}

	if(firstBracket != null)
	{
		element = firstBracket;
		while(true)
		{
			ASTNode next = element.getTreeNext();
			variableElement.removeChild(element);
			if(element == lastBracket)
			{
				break;
			}
			element = next;
		}

		CompositeElement newType = (CompositeElement) type.clone();
		for(int i = 0; i < arrayCount; i++)
		{
			CompositeElement newType1 = ASTFactory.composite(JavaElementType.TYPE);
			newType1.rawAddChildren(newType);

			newType1.rawAddChildren(ASTFactory.leaf(JavaTokenType.LBRACKET, "["));
			newType1.rawAddChildren(ASTFactory.leaf(JavaTokenType.RBRACKET, "]"));
			newType = newType1;
			newType.acceptTree(new GeneratedMarkerVisitor());
		}
		newType.putUserData(CharTable.CHAR_TABLE_KEY, SharedImplUtil.findCharTableByTree(type));
		variableElement.replaceChild(type, newType);
	}
}
 
开发者ID:consulo,项目名称:consulo-java,代码行数:67,代码来源:JavaSharedImplUtil.java


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