diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/JavaCreateFieldFromUsageHelper.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/JavaCreateFieldFromUsageHelper.java index 4ddd17376bc3..c3acb47a21bb 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/JavaCreateFieldFromUsageHelper.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/JavaCreateFieldFromUsageHelper.java @@ -22,6 +22,7 @@ import com.intellij.codeInsight.template.Template; import com.intellij.codeInsight.template.TemplateBuilderImpl; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.project.Project; +import com.intellij.openapi.util.registry.Registry; import com.intellij.psi.*; import com.intellij.psi.util.PsiTreeUtil; import com.intellij.refactoring.introduceField.BaseExpressionToFieldHandler; @@ -64,14 +65,21 @@ public class JavaCreateFieldFromUsageHelper extends CreateFieldFromUsageHelper { editor.getCaretModel().moveToOffset(field.getTextRange().getStartOffset()); Template template = builder.buildInlineTemplate(); - if (ExpectedTypesProvider.processExpectedTypes((ExpectedTypeInfo[])expectedTypes, new PsiTypeVisitor() { + if (disableShortenLongNames(project, ((ExpectedTypeInfo[])expectedTypes))) { + template.setToShortenLongNames(false); + } + return template; + } + + private static boolean disableShortenLongNames(Project project, ExpectedTypeInfo[] expectedTypes) { + if (Registry.is("ide.create.field.enable.shortening")) return false; + return ExpectedTypesProvider.processExpectedTypes(expectedTypes, new PsiTypeVisitor() { @Nullable @Override public PsiType visitType(PsiType type) { return type; } - }, project).length > 1) template.setToShortenLongNames(false); - return template; + }, project).length > 1; } @Override diff --git a/platform/util/resources/misc/registry.properties b/platform/util/resources/misc/registry.properties index ac7b4811001c..b733f8436e19 100644 --- a/platform/util/resources/misc/registry.properties +++ b/platform/util/resources/misc/registry.properties @@ -1257,3 +1257,5 @@ duplicates.inspection.only.extractable.description=Highlight duplicate code only ide.interlanguage.fixes=false ide.interlanguage.fixes.description=Enable 'Create Xxx from usage' fixes in JVM languages +ide.create.field.enable.shortening=true +ide.create.field.enable.shortening.description=Always enable shortening of FQNs in templates in Create Field fixes diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/GroovyCreateFieldFromUsageHelper.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/GroovyCreateFieldFromUsageHelper.java index ee52b94a590c..28b6a791b468 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/GroovyCreateFieldFromUsageHelper.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/GroovyCreateFieldFromUsageHelper.java @@ -25,6 +25,7 @@ import com.intellij.codeInsight.template.TemplateBuilderImpl; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.TextRange; +import com.intellij.openapi.util.registry.Registry; import com.intellij.psi.*; import org.jetbrains.annotations.NotNull; import org.jetbrains.plugins.groovy.lang.psi.GroovyPsiElementFactory; @@ -78,7 +79,9 @@ public class GroovyCreateFieldFromUsageHelper extends CreateFieldFromUsageHelper editor.getDocument().deleteString(range.getStartOffset(), range.getEndOffset()); if (expectedTypes instanceof ExpectedTypeInfo[]) { - if (((ExpectedTypeInfo[])expectedTypes).length > 1) template.setToShortenLongNames(false); + if (!Registry.is("ide.create.field.enable.shortening") && ((ExpectedTypeInfo[])expectedTypes).length > 1) { + template.setToShortenLongNames(false); + } } return template; }