diff --git a/java/java-impl/src/com/intellij/codeInsight/generation/GenerateMembersUtil.java b/java/java-impl/src/com/intellij/codeInsight/generation/GenerateMembersUtil.java index 6189fdfa094f..9612fea39512 100644 --- a/java/java-impl/src/com/intellij/codeInsight/generation/GenerateMembersUtil.java +++ b/java/java-impl/src/com/intellij/codeInsight/generation/GenerateMembersUtil.java @@ -82,8 +82,8 @@ public class GenerateMembersUtil { // } whiteSpace += "\n"; } - PsiElementFactory factory = JavaPsiFacade.getInstance(file.getProject()).getElementFactory(); - final ASTNode singleNewLineWhitespace = factory.createWhiteSpaceFromText(whiteSpace).getNode(); + final PsiParserFacade parserFacade = PsiParserFacade.SERVICE.getInstance(file.getProject()); + final ASTNode singleNewLineWhitespace = parserFacade.createWhiteSpaceFromText(whiteSpace).getNode(); if (singleNewLineWhitespace != null) { spaceNode.getTreeParent().replaceChild(spaceNode, singleNewLineWhitespace); // See http://jetbrains.net/jira/browse/IDEADEV-12837 } diff --git a/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithBlockSurrounder.java b/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithBlockSurrounder.java index 5d456d0fb175..6265533032d1 100644 --- a/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithBlockSurrounder.java +++ b/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithBlockSurrounder.java @@ -45,7 +45,7 @@ class JavaWithBlockSurrounder extends JavaStatementsSurrounder{ blockStatement = (PsiBlockStatement)container.addBefore(blockStatement, statements[0]); PsiCodeBlock body = blockStatement.getCodeBlock(); - SurroundWithUtil.indentCommentIfNecessary(body, statements, factory); + SurroundWithUtil.indentCommentIfNecessary(body, statements); body.addRange(statements[0], statements[statements.length - 1]); container.deleteChildRange(statements[0], statements[statements.length - 1]); diff --git a/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithDoWhileSurrounder.java b/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithDoWhileSurrounder.java index f19b0940da91..05449c0c2504 100644 --- a/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithDoWhileSurrounder.java +++ b/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithDoWhileSurrounder.java @@ -51,7 +51,7 @@ class JavaWithDoWhileSurrounder extends JavaStatementsSurrounder{ return null; } PsiCodeBlock bodyBlock = ((PsiBlockStatement)body).getCodeBlock(); - SurroundWithUtil.indentCommentIfNecessary(bodyBlock, statements, factory); + SurroundWithUtil.indentCommentIfNecessary(bodyBlock, statements); bodyBlock.addRange(statements[0], statements[statements.length - 1]); container.deleteChildRange(statements[0], statements[statements.length - 1]); diff --git a/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithForSurrounder.java b/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithForSurrounder.java index 8ea6d6105c0f..d574329a717b 100644 --- a/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithForSurrounder.java +++ b/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithForSurrounder.java @@ -52,7 +52,7 @@ class JavaWithForSurrounder extends JavaStatementsSurrounder{ return null; } PsiCodeBlock bodyBlock = ((PsiBlockStatement)body).getCodeBlock(); - SurroundWithUtil.indentCommentIfNecessary(bodyBlock, statements, factory); + SurroundWithUtil.indentCommentIfNecessary(bodyBlock, statements); bodyBlock.addRange(statements[0], statements[statements.length - 1]); container.deleteChildRange(statements[0], statements[statements.length - 1]); diff --git a/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithIfElseSurrounder.java b/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithIfElseSurrounder.java index f409951ebe0f..7fc99ba5f8d7 100644 --- a/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithIfElseSurrounder.java +++ b/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithIfElseSurrounder.java @@ -52,7 +52,7 @@ class JavaWithIfElseSurrounder extends JavaStatementsSurrounder{ return null; } PsiCodeBlock thenBlock = ((PsiBlockStatement)thenBranch).getCodeBlock(); - SurroundWithUtil.indentCommentIfNecessary(thenBlock, statements, factory); + SurroundWithUtil.indentCommentIfNecessary(thenBlock, statements); thenBlock.addRange(statements[0], statements[statements.length - 1]); container.deleteChildRange(statements[0], statements[statements.length - 1]); ifStatement = CodeInsightUtilBase.forcePsiPostprocessAndRestoreElement(ifStatement); diff --git a/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithIfSurrounder.java b/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithIfSurrounder.java index 29570d889f6e..5a02ac8a3baa 100644 --- a/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithIfSurrounder.java +++ b/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithIfSurrounder.java @@ -50,7 +50,7 @@ public class JavaWithIfSurrounder extends JavaStatementsSurrounder{ final PsiStatement thenBranch = ifStatement.getThenBranch(); if (thenBranch != null) { PsiCodeBlock thenBlock = ((PsiBlockStatement)thenBranch).getCodeBlock(); - SurroundWithUtil.indentCommentIfNecessary(thenBlock, statements, factory); + SurroundWithUtil.indentCommentIfNecessary(thenBlock, statements); thenBlock.addRange(statements[0], statements[statements.length - 1]); container.deleteChildRange(statements[0], statements[statements.length - 1]); } diff --git a/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithSynchronizedSurrounder.java b/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithSynchronizedSurrounder.java index 0cffd30d8873..5e6f724a9b1d 100644 --- a/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithSynchronizedSurrounder.java +++ b/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithSynchronizedSurrounder.java @@ -51,7 +51,7 @@ class JavaWithSynchronizedSurrounder extends JavaStatementsSurrounder{ if (synchronizedBlock == null) { return null; } - SurroundWithUtil.indentCommentIfNecessary(synchronizedBlock, statements, factory); + SurroundWithUtil.indentCommentIfNecessary(synchronizedBlock, statements); synchronizedBlock.addRange(statements[0], statements[statements.length - 1]); container.deleteChildRange(statements[0], statements[statements.length - 1]); diff --git a/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithTryCatchSurrounder.java b/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithTryCatchSurrounder.java index 701889aaf6ca..ea4155af6cae 100644 --- a/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithTryCatchSurrounder.java +++ b/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithTryCatchSurrounder.java @@ -72,7 +72,7 @@ public class JavaWithTryCatchSurrounder extends JavaStatementsSurrounder { tryStatement = (PsiTryStatement)container.addAfter(tryStatement, statements[statements.length - 1]); PsiCodeBlock tryBlock = tryStatement.getTryBlock(); - SurroundWithUtil.indentCommentIfNecessary(tryBlock, statements, factory); + SurroundWithUtil.indentCommentIfNecessary(tryBlock, statements); tryBlock.addRange(statements[0], statements[statements.length - 1]); PsiCatchSection[] catchSections = tryStatement.getCatchSections(); diff --git a/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithTryFinallySurrounder.java b/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithTryFinallySurrounder.java index d2e808507879..daeb70ad8d60 100644 --- a/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithTryFinallySurrounder.java +++ b/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithTryFinallySurrounder.java @@ -50,7 +50,7 @@ class JavaWithTryFinallySurrounder extends JavaStatementsSurrounder{ if (tryBlock == null) { return null; } - SurroundWithUtil.indentCommentIfNecessary(tryBlock, statements, factory); + SurroundWithUtil.indentCommentIfNecessary(tryBlock, statements); tryBlock.addRange(statements[0], statements[statements.length - 1]); container.deleteChildRange(statements[0], statements[statements.length - 1]); diff --git a/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithWhileSurrounder.java b/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithWhileSurrounder.java index 35a9d58264cc..3fba5233cf93 100644 --- a/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithWhileSurrounder.java +++ b/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/JavaWithWhileSurrounder.java @@ -51,7 +51,7 @@ class JavaWithWhileSurrounder extends JavaStatementsSurrounder{ return null; } PsiCodeBlock bodyBlock = ((PsiBlockStatement)body).getCodeBlock(); - SurroundWithUtil.indentCommentIfNecessary(bodyBlock, statements, factory); + SurroundWithUtil.indentCommentIfNecessary(bodyBlock, statements); bodyBlock.addRange(statements[0], statements[statements.length - 1]); container.deleteChildRange(statements[0], statements[statements.length - 1]); diff --git a/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/SurroundWithUtil.java b/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/SurroundWithUtil.java index 38bb0db0cb97..1a74af4c401a 100644 --- a/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/SurroundWithUtil.java +++ b/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/SurroundWithUtil.java @@ -154,11 +154,8 @@ public class SurroundWithUtil { * * @param container code block that surrounds target statements * @param statements target statements being surrounded - * @param factory factory to use for the new white space element construction */ - public static void indentCommentIfNecessary(@NotNull PsiCodeBlock container, @Nullable PsiElement[] statements, - @NotNull PsiElementFactory factory) - { + public static void indentCommentIfNecessary(@NotNull PsiCodeBlock container, @Nullable PsiElement[] statements) { if (statements == null || statements.length <= 0) { return; } @@ -189,6 +186,7 @@ public class SurroundWithUtil { PsiElement codeBlockWsElement = null; ASTNode codeBlockWsNode = null; boolean lbraceFound = false; + final PsiParserFacade parserFacade = PsiParserFacade.SERVICE.getInstance(container.getProject()); for (PsiElement codeBlockChild = container.getFirstChild(); codeBlockChild != null; codeBlockChild = codeBlockChild.getNextSibling()) { ASTNode childNode = codeBlockChild.getNode(); if (childNode == null) { @@ -227,11 +225,11 @@ public class SurroundWithUtil { if (existingWhiteSpaceEndOffset < existingWhiteSpaceText.length()) { newWsText = existingWhiteSpaceText.subSequence(0, existingWhiteSpaceEndOffset + 1).toString() + newWsText; } - PsiElement indentElement = factory.createWhiteSpaceFromText(newWsText); + PsiElement indentElement = parserFacade.createWhiteSpaceFromText(newWsText); codeBlockWsElement.replace(indentElement); } else { - PsiElement indentElement = factory.createWhiteSpaceFromText(text.subSequence(text.length() - indent, text.length()).toString()); + PsiElement indentElement = parserFacade.createWhiteSpaceFromText(text.subSequence(text.length() - indent, text.length()).toString()); container.add(indentElement); } } diff --git a/java/java-impl/src/com/intellij/psi/impl/PsiElementFactoryImpl.java b/java/java-impl/src/com/intellij/psi/impl/PsiElementFactoryImpl.java index e7d84d136092..1482dbaa7bee 100644 --- a/java/java-impl/src/com/intellij/psi/impl/PsiElementFactoryImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/PsiElementFactoryImpl.java @@ -730,10 +730,6 @@ public class PsiElementFactoryImpl extends PsiJavaParserFacadeImpl implements Ps return psiCatchSection; } - private static void markGenerated(final PsiElement element) { - ((TreeElement)element.getNode()).acceptTree(new GeneratedMarkerVisitor()); - } - private static PsiImportStatementBase extractImport(final PsiJavaFile aFile, final boolean isStatic) { final PsiImportList importList = aFile.getImportList(); assert importList != null : aFile; diff --git a/java/java-impl/src/com/intellij/psi/impl/PsiJavaParserFacadeImpl.java b/java/java-impl/src/com/intellij/psi/impl/PsiJavaParserFacadeImpl.java index 6f55d3aa8710..a1a9e6962701 100644 --- a/java/java-impl/src/com/intellij/psi/impl/PsiJavaParserFacadeImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/PsiJavaParserFacadeImpl.java @@ -281,7 +281,7 @@ public class PsiJavaParserFacadeImpl extends PsiParserFacadeImpl implements PsiJ final PsiTypeElement element = createTypeElementFromText(text, context); if (markAsCopy) { - ((TreeElement)element.getNode()).acceptTree(new GeneratedMarkerVisitor()); + markGenerated(element); } return element.getType(); } @@ -344,7 +344,8 @@ public class PsiJavaParserFacadeImpl extends PsiParserFacadeImpl implements PsiJ @NotNull @Override public PsiTypeParameter createTypeParameterFromText(@NotNull final String text, @Nullable final PsiElement context) throws IncorrectOperationException { - final DummyHolder holder = DummyHolderFactory.createHolder(myManager, new JavaDummyElement(text, TYPE_PARAMETER, level(context)), context); + final DummyHolder holder = DummyHolderFactory.createHolder(myManager, new JavaDummyElement(text, TYPE_PARAMETER, level(context)), + context); final PsiElement element = SourceTreeToPsiMap.treeElementToPsi(holder.getTreeElement().getFirstChildNode()); if (!(element instanceof PsiTypeParameter)) { throw new IncorrectOperationException("Incorrect type parameter \"" + text + "\"."); diff --git a/java/openapi/src/com/intellij/psi/PsiJavaParserFacade.java b/java/openapi/src/com/intellij/psi/PsiJavaParserFacade.java index 917ad62f05f4..7e69a1d3f45a 100644 --- a/java/openapi/src/com/intellij/psi/PsiJavaParserFacade.java +++ b/java/openapi/src/com/intellij/psi/PsiJavaParserFacade.java @@ -26,7 +26,7 @@ import org.jetbrains.annotations.Nullable; /** * @author max */ -public interface PsiJavaParserFacade extends PsiParserFacade { +public interface PsiJavaParserFacade { /** * Creates a JavaDoc tag from the specified text. * diff --git a/platform/lang-impl/src/com/intellij/psi/impl/PsiParserFacadeImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/PsiParserFacadeImpl.java index 81aaa1b35826..e79a64d35d6d 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/PsiParserFacadeImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/PsiParserFacadeImpl.java @@ -46,6 +46,7 @@ public class PsiParserFacadeImpl implements PsiParserFacade { final FileElement holderElement = DummyHolderFactory.createHolder(myManager, null).getTreeElement(); final LeafElement newElement = ASTFactory.leaf(TokenType.WHITE_SPACE, holderElement.getCharTable().intern(text)); holderElement.rawAddChildren(newElement); + markGenerated(newElement.getPsi()); return newElement.getPsi(); } @@ -99,4 +100,8 @@ public class PsiParserFacadeImpl implements PsiParserFacade { return PsiFileFactory.getInstance(myManager.getProject()).createFileFromText(fileType, fileName, text, 0, text.length()); } + + protected static void markGenerated(final PsiElement element) { + ((TreeElement)element.getNode()).acceptTree(new GeneratedMarkerVisitor()); + } } diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/comment/ChangeToEndOfLineCommentIntention.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/comment/ChangeToEndOfLineCommentIntention.java index c389ef571aa6..bb88c239f60b 100644 --- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/comment/ChangeToEndOfLineCommentIntention.java +++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/comment/ChangeToEndOfLineCommentIntention.java @@ -15,6 +15,7 @@ */ package com.siyeh.ipp.comment; +import com.intellij.openapi.project.Project; import com.intellij.psi.*; import com.intellij.psi.codeStyle.CodeStyleManager; import com.intellij.util.IncorrectOperationException; @@ -32,11 +33,11 @@ public class ChangeToEndOfLineCommentIntention extends Intention { public void processIntention(@NotNull PsiElement element) throws IncorrectOperationException { final PsiComment comment = (PsiComment)element; - final PsiManager manager = comment.getManager(); - final CodeStyleManager codeStyleManager = CodeStyleManager.getInstance(manager.getProject()); + final Project project = comment.getProject(); + final CodeStyleManager codeStyleManager = CodeStyleManager.getInstance(project); final PsiElement parent = comment.getParent(); assert parent != null; - final PsiElementFactory factory = JavaPsiFacade.getInstance(manager.getProject()).getElementFactory(); + final PsiElementFactory factory = JavaPsiFacade.getInstance(project).getElementFactory(); final String commentText = comment.getText(); final PsiElement whitespace = comment.getNextSibling(); final String text = commentText.substring(2, commentText.length() - 2); @@ -47,8 +48,9 @@ public class ChangeToEndOfLineCommentIntention extends Intention { parent); parent.addAfter(nextComment, comment); if (whitespace != null) { - final PsiElement newWhiteSpace = - factory.createWhiteSpaceFromText(whitespace.getText()); + final PsiParserFacade parserFacade = PsiParserFacade.SERVICE.getInstance(project); + final PsiElement newWhiteSpace = + parserFacade.createWhiteSpaceFromText(whitespace.getText()); parent.addAfter(newWhiteSpace, comment); } } diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/initialization/SplitDeclarationAndInitializationIntention.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/initialization/SplitDeclarationAndInitializationIntention.java index 9bce9a7b725b..56e3ead2b689 100644 --- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/initialization/SplitDeclarationAndInitializationIntention.java +++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/initialization/SplitDeclarationAndInitializationIntention.java @@ -90,7 +90,7 @@ public class SplitDeclarationAndInitializationIntention extends Intention { // add some whitespace between the field and the class initializer final PsiElement whitespace = - elementFactory.createWhiteSpaceFromText("\n"); + PsiParserFacade.SERVICE.getInstance(project).createWhiteSpaceFromText("\n"); containingClass.addAfter(whitespace, field); } final PsiCodeBlock body = classInitializer.getBody();