summaryrefslogtreecommitdiff
path: root/plugins/IntentionPowerPak
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/IntentionPowerPak')
-rw-r--r--plugins/IntentionPowerPak/src/com/siyeh/ipp/fqnames/FullyQualifiedNamePredicate.java8
-rw-r--r--plugins/IntentionPowerPak/src/com/siyeh/ipp/initialization/SplitDeclarationAndInitializationIntention.java24
-rw-r--r--plugins/IntentionPowerPak/test/com/siyeh/ipp/initialization/ArrayInitializer.java3
-rw-r--r--plugins/IntentionPowerPak/test/com/siyeh/ipp/initialization/ArrayInitializer_after.java7
-rw-r--r--plugins/IntentionPowerPak/testSrc/com/siyeh/ipp/initialization/SplitDeclarationAndInitializationIntentionTest.java38
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");
+ }
+}