diff options
Diffstat (limited to 'plugins/IntentionPowerPak')
5 files changed, 59 insertions, 21 deletions
diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/fqnames/FullyQualifiedNamePredicate.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/fqnames/FullyQualifiedNamePredicate.java index 5342b62db4b9..b09afbb3d776 100644 --- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/fqnames/FullyQualifiedNamePredicate.java +++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/fqnames/FullyQualifiedNamePredicate.java @@ -21,6 +21,7 @@ import com.intellij.psi.codeStyle.CodeStyleSettings; import com.intellij.psi.codeStyle.CodeStyleSettingsManager; import com.intellij.psi.util.PsiTreeUtil; import com.siyeh.ig.psiutils.ImportUtils; +import com.siyeh.ig.style.UnnecessaryFullyQualifiedNameInspection; import com.siyeh.ipp.base.PsiElementPredicate; class FullyQualifiedNamePredicate implements PsiElementPredicate { @@ -40,6 +41,11 @@ class FullyQualifiedNamePredicate implements PsiElementPredicate { if (PsiTreeUtil.getParentOfType(element, PsiImportStatementBase.class, PsiPackageStatement.class, JavaCodeFragment.class) != null) { return false; } + final Project project = element.getProject(); + final CodeStyleSettings codeStyleSettings = CodeStyleSettingsManager.getSettings(project); + if (UnnecessaryFullyQualifiedNameInspection.acceptFullyQualifiedNamesInJavadoc(referenceElement, codeStyleSettings)) { + return false; + } final PsiElement qualifier = referenceElement.getQualifier(); if (!(qualifier instanceof PsiJavaCodeReferenceElement)) { return false; @@ -50,8 +56,6 @@ class FullyQualifiedNamePredicate implements PsiElementPredicate { if (!(resolved instanceof PsiClass)) { return false; } - final Project project = element.getProject(); - final CodeStyleSettings codeStyleSettings = CodeStyleSettingsManager.getSettings(project); if (!codeStyleSettings.INSERT_INNER_CLASS_IMPORTS) { return false; } diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/initialization/SplitDeclarationAndInitializationIntention.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/initialization/SplitDeclarationAndInitializationIntention.java index 33778f99d931..3bbc7a63bd65 100644 --- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/initialization/SplitDeclarationAndInitializationIntention.java +++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/initialization/SplitDeclarationAndInitializationIntention.java @@ -1,5 +1,5 @@ /* - * Copyright 2003-2011 Dave Griffith, Bas Leijdekkers + * Copyright 2003-2014 Dave Griffith, Bas Leijdekkers * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +18,7 @@ package com.siyeh.ipp.initialization; import com.intellij.openapi.project.Project; import com.intellij.psi.*; import com.intellij.psi.codeStyle.CodeStyleManager; -import com.intellij.util.IncorrectOperationException; +import com.intellij.refactoring.util.RefactoringUtil; import com.siyeh.IntentionPowerPackBundle; import com.siyeh.ipp.base.Intention; import com.siyeh.ipp.base.PsiElementPredicate; @@ -35,28 +35,14 @@ public class SplitDeclarationAndInitializationIntention extends Intention { } @Override - public void processIntention(@NotNull PsiElement element) - throws IncorrectOperationException { + public void processIntention(@NotNull PsiElement element) { final PsiField field = (PsiField)element.getParent(); field.normalizeDeclaration(); - final PsiExpression initializer = field.getInitializer(); + final PsiExpression initializer = RefactoringUtil.convertInitializerToNormalExpression(field.getInitializer(), field.getType()); if (initializer == null) { return; } - final String initializerText; - if (initializer instanceof PsiArrayInitializerExpression) { - final PsiType type = initializer.getType(); - if (type == null) { - initializerText = initializer.getText(); - } - else { - initializerText = "new " + type.getCanonicalText() + - initializer.getText(); - } - } - else { - initializerText = initializer.getText(); - } + final String initializerText = initializer.getText(); final PsiClass containingClass = field.getContainingClass(); if (containingClass == null) { return; diff --git a/plugins/IntentionPowerPak/test/com/siyeh/ipp/initialization/ArrayInitializer.java b/plugins/IntentionPowerPak/test/com/siyeh/ipp/initialization/ArrayInitializer.java new file mode 100644 index 000000000000..54eaa025b8e8 --- /dev/null +++ b/plugins/IntentionPowerPak/test/com/siyeh/ipp/initialization/ArrayInitializer.java @@ -0,0 +1,3 @@ +class X { + String s <caret>= {}; +}
\ No newline at end of file diff --git a/plugins/IntentionPowerPak/test/com/siyeh/ipp/initialization/ArrayInitializer_after.java b/plugins/IntentionPowerPak/test/com/siyeh/ipp/initialization/ArrayInitializer_after.java new file mode 100644 index 000000000000..08ebd41e6f93 --- /dev/null +++ b/plugins/IntentionPowerPak/test/com/siyeh/ipp/initialization/ArrayInitializer_after.java @@ -0,0 +1,7 @@ +class X { + String s; + + { + s = {}; + } +}
\ No newline at end of file diff --git a/plugins/IntentionPowerPak/testSrc/com/siyeh/ipp/initialization/SplitDeclarationAndInitializationIntentionTest.java b/plugins/IntentionPowerPak/testSrc/com/siyeh/ipp/initialization/SplitDeclarationAndInitializationIntentionTest.java new file mode 100644 index 000000000000..63ac3c9acf9f --- /dev/null +++ b/plugins/IntentionPowerPak/testSrc/com/siyeh/ipp/initialization/SplitDeclarationAndInitializationIntentionTest.java @@ -0,0 +1,38 @@ +/* + * Copyright 2000-2014 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.siyeh.ipp.initialization; + +import com.siyeh.IntentionPowerPackBundle; +import com.siyeh.ipp.IPPTestCase; + +/** + * @see com.siyeh.ipp.initialization.SplitDeclarationAndInitializationIntention + * @author Bas Leijdekkers + */ +public class SplitDeclarationAndInitializationIntentionTest extends IPPTestCase { + + public void testArrayInitializer() { doTest(); } + + @Override + protected String getRelativePath() { + return "initialization"; + } + + @Override + protected String getIntentionName() { + return IntentionPowerPackBundle.message("split.declaration.and.initialization.intention.name"); + } +} |