From 770d01f6efd5c1873dcc156222638108437eee4a Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Mon, 2 Nov 2009 13:25:55 +0300 Subject: [PATCH] 'optimize imports on the fly' moved to Settings|editor|auto import --- .../options/CodeStyleImportsPanel.java | 14 --------- .../options/editor/JavaAutoImportOptions.form | 29 +++++++++++++------ .../options/editor/JavaAutoImportOptions.java | 10 ++++++- .../daemon/impl/PostHighlightingPass.java | 3 +- .../daemon/impl/actions/AddImportAction.java | 3 +- .../EnableOptimizeImportsOnTheFlyFix.java | 6 ++-- .../impl/quickfix/ImportClassFixBase.java | 3 +- .../psi/codeStyle/CodeStyleSettings.java | 4 +-- .../codeInsight/CodeInsightSettings.java | 3 ++ .../daemon/impl/DaemonCodeAnalyzerImpl.java | 2 ++ 10 files changed, 41 insertions(+), 36 deletions(-) diff --git a/java/java-impl/src/com/intellij/application/options/CodeStyleImportsPanel.java b/java/java-impl/src/com/intellij/application/options/CodeStyleImportsPanel.java index 7cea048cd910..794f44a3ac6e 100644 --- a/java/java-impl/src/com/intellij/application/options/CodeStyleImportsPanel.java +++ b/java/java-impl/src/com/intellij/application/options/CodeStyleImportsPanel.java @@ -40,8 +40,6 @@ public class CodeStyleImportsPanel extends JPanel { private JCheckBox myCbUseFQClassNamesInJavaDoc; private JCheckBox myCbUseSingleClassImports; private JCheckBox myCbInsertInnerClassImports; - private JCheckBox myCbOptimizeImportsOnTheFly; - private JCheckBox myCbAddUnambiguousImportsOnTheFly; private JTextField myClassCountField; private JTextField myNamesCountField; private final PackageEntryTable myImportLayoutList = new PackageEntryTable(); @@ -129,12 +127,6 @@ public class CodeStyleImportsPanel extends JPanel { myCbUseFQClassNamesInJavaDoc = new JCheckBox(ApplicationBundle.message("checkbox.use.fully.qualified.class.names.in.javadoc")); group.add(myCbUseFQClassNamesInJavaDoc); - myCbOptimizeImportsOnTheFly = new JCheckBox(ApplicationBundle.message("checkbox.optimize.imports.on.the.fly")); - group.add(myCbOptimizeImportsOnTheFly); - - myCbAddUnambiguousImportsOnTheFly = new JCheckBox(ApplicationBundle.message("checkbox.add.unambiguous.imports.on.the.fly")); - group.add(myCbAddUnambiguousImportsOnTheFly); - myClassCountField = new JTextField(3); myNamesCountField = new JTextField(3); final JPanel panel = new JPanel(new GridBagLayout()); @@ -590,8 +582,6 @@ public class CodeStyleImportsPanel extends JPanel { myCbInsertInnerClassImports.setSelected(mySettings.INSERT_INNER_CLASS_IMPORTS); myClassCountField.setText(Integer.toString(mySettings.CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND)); myNamesCountField.setText(Integer.toString(mySettings.NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND)); - myCbAddUnambiguousImportsOnTheFly.setSelected(mySettings.ADD_UNAMBIGIOUS_IMPORTS_ON_THE_FLY); - myCbOptimizeImportsOnTheFly.setSelected(mySettings.OPTIMIZE_IMPORTS_ON_THE_FLY); myImportLayoutList.copyFrom(mySettings.IMPORT_LAYOUT_TABLE); myPackageList.copyFrom(mySettings.PACKAGES_TO_USE_IMPORT_ON_DEMAND); @@ -628,8 +618,6 @@ public class CodeStyleImportsPanel extends JPanel { mySettings.USE_FQ_CLASS_NAMES_IN_JAVADOC = myCbUseFQClassNamesInJavaDoc.isSelected(); mySettings.USE_SINGLE_CLASS_IMPORTS = myCbUseSingleClassImports.isSelected(); mySettings.INSERT_INNER_CLASS_IMPORTS = myCbInsertInnerClassImports.isSelected(); - mySettings.OPTIMIZE_IMPORTS_ON_THE_FLY = myCbOptimizeImportsOnTheFly.isSelected(); - mySettings.ADD_UNAMBIGIOUS_IMPORTS_ON_THE_FLY = myCbAddUnambiguousImportsOnTheFly.isSelected(); try{ mySettings.CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND = Integer.parseInt(myClassCountField.getText()); } @@ -665,8 +653,6 @@ public class CodeStyleImportsPanel extends JPanel { isModified |= isModified(myCbUseFQClassNamesInJavaDoc, mySettings.USE_FQ_CLASS_NAMES_IN_JAVADOC); isModified |= isModified(myCbUseSingleClassImports, mySettings.USE_SINGLE_CLASS_IMPORTS); isModified |= isModified(myCbInsertInnerClassImports, mySettings.INSERT_INNER_CLASS_IMPORTS); - isModified |= isModified(myCbOptimizeImportsOnTheFly, mySettings.OPTIMIZE_IMPORTS_ON_THE_FLY); - isModified |= isModified(myCbAddUnambiguousImportsOnTheFly, mySettings.ADD_UNAMBIGIOUS_IMPORTS_ON_THE_FLY); isModified |= isModified(myClassCountField, mySettings.CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND); isModified |= isModified(myNamesCountField, mySettings.NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND); diff --git a/java/java-impl/src/com/intellij/application/options/editor/JavaAutoImportOptions.form b/java/java-impl/src/com/intellij/application/options/editor/JavaAutoImportOptions.form index 4f5c7b26deb0..e50ca1a24ec8 100644 --- a/java/java-impl/src/com/intellij/application/options/editor/JavaAutoImportOptions.form +++ b/java/java-impl/src/com/intellij/application/options/editor/JavaAutoImportOptions.form @@ -1,9 +1,9 @@
- + - + @@ -18,6 +18,14 @@ + + + + + + + + @@ -51,7 +59,7 @@ - + @@ -93,19 +101,22 @@ - - - - - - + + + + + + + + + diff --git a/java/java-impl/src/com/intellij/application/options/editor/JavaAutoImportOptions.java b/java/java-impl/src/com/intellij/application/options/editor/JavaAutoImportOptions.java index 447c1eab947d..e80ee7188ac4 100644 --- a/java/java-impl/src/com/intellij/application/options/editor/JavaAutoImportOptions.java +++ b/java/java-impl/src/com/intellij/application/options/editor/JavaAutoImportOptions.java @@ -47,6 +47,8 @@ public class JavaAutoImportOptions implements AutoImportOptionsProvider { private JList myExcludePackagesList; private JButton myAddPackageButton; private JButton myRemoveButton; + private JCheckBox myCbAddUnambiguousImports; + private JCheckBox myCbOptimizeImports; private DefaultListModel myExcludePackagesModel; @NonNls private static final Pattern ourPackagePattern = Pattern.compile("(\\w+\\.)*\\w+"); @@ -117,6 +119,8 @@ public class JavaAutoImportOptions implements AutoImportOptionsProvider { myCbShowImportPopup.setSelected(daemonSettings.isImportHintEnabled()); + myCbOptimizeImports.setSelected(codeInsightSettings.OPTIMIZE_IMPORTS_ON_THE_FLY); + myCbAddUnambiguousImports.setSelected(codeInsightSettings.ADD_UNAMBIGIOUS_IMPORTS_ON_THE_FLY); myExcludePackagesModel = new DefaultListModel(); for(String aPackage: codeInsightSettings.EXCLUDED_PACKAGES) { @@ -136,6 +140,8 @@ public class JavaAutoImportOptions implements AutoImportOptionsProvider { codeInsightSettings.ADD_IMPORTS_ON_PASTE = getSmartPasteValue(); codeInsightSettings.EXCLUDED_PACKAGES = getExcludedPackages(); daemonSettings.setImportHintEnabled(myCbShowImportPopup.isSelected()); + codeInsightSettings.OPTIMIZE_IMPORTS_ON_THE_FLY = myCbOptimizeImports.isSelected(); + codeInsightSettings.ADD_UNAMBIGIOUS_IMPORTS_ON_THE_FLY = myCbAddUnambiguousImports.isSelected(); } private String[] getExcludedPackages() { @@ -156,7 +162,9 @@ public class JavaAutoImportOptions implements AutoImportOptionsProvider { DaemonCodeAnalyzerSettings daemonSettings = DaemonCodeAnalyzerSettings.getInstance(); boolean isModified = isModified(myCbShowImportPopup, daemonSettings.isImportHintEnabled()); - + isModified |= isModified(myCbOptimizeImports, codeInsightSettings.OPTIMIZE_IMPORTS_ON_THE_FLY); + isModified |= isModified(myCbAddUnambiguousImports, codeInsightSettings.ADD_UNAMBIGIOUS_IMPORTS_ON_THE_FLY); + isModified |= getSmartPasteValue() != codeInsightSettings.ADD_IMPORTS_ON_PASTE; isModified |= !Arrays.deepEquals(getExcludedPackages(), codeInsightSettings.EXCLUDED_PACKAGES); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/PostHighlightingPass.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/PostHighlightingPass.java index efe0a96b06ba..ee1c28d0f9eb 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/PostHighlightingPass.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/PostHighlightingPass.java @@ -52,7 +52,6 @@ import com.intellij.openapi.roots.ProjectRootManager; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.profile.codeInspection.InspectionProjectProfileManager; import com.intellij.psi.*; -import com.intellij.psi.codeStyle.CodeStyleSettingsManager; import com.intellij.psi.codeStyle.JavaCodeStyleManager; import com.intellij.psi.impl.PsiClassImplUtil; import com.intellij.psi.impl.PsiManagerEx; @@ -641,7 +640,7 @@ public class PostHighlightingPass extends TextEditorHighlightingPass { } private boolean timeToOptimizeImports() { - if (!CodeStyleSettingsManager.getSettings(myProject).OPTIMIZE_IMPORTS_ON_THE_FLY) return false; + if (!com.intellij.codeInsight.CodeInsightSettings.getInstance().OPTIMIZE_IMPORTS_ON_THE_FLY) return false; DaemonCodeAnalyzerImpl codeAnalyzer = (DaemonCodeAnalyzerImpl)DaemonCodeAnalyzer.getInstance(myProject); PsiFile file = PsiDocumentManager.getInstance(myProject).getPsiFile(myDocument); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/AddImportAction.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/AddImportAction.java index d399ff8c1ef2..f9b6f9c3e77f 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/AddImportAction.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/AddImportAction.java @@ -38,7 +38,6 @@ import com.intellij.psi.PsiClass; import com.intellij.psi.PsiDocumentManager; import com.intellij.psi.PsiFile; import com.intellij.psi.PsiReference; -import com.intellij.psi.codeStyle.CodeStyleSettingsManager; import com.intellij.psi.statistics.JavaStatisticsManager; import com.intellij.psi.statistics.StatisticsManager; import com.intellij.psi.util.proximity.PsiProximityComparator; @@ -212,7 +211,7 @@ public class AddImportAction implements PriorityQuestionAction { try{ bindReference(ref, targetClass); - if (CodeStyleSettingsManager.getSettings(myProject).OPTIMIZE_IMPORTS_ON_THE_FLY) { + if (com.intellij.codeInsight.CodeInsightSettings.getInstance().OPTIMIZE_IMPORTS_ON_THE_FLY) { Document document = myEditor.getDocument(); PsiFile psiFile = PsiDocumentManager.getInstance(myProject).getPsiFile(document); new OptimizeImportsProcessor(myProject, psiFile).runWithoutProgress(); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/EnableOptimizeImportsOnTheFlyFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/EnableOptimizeImportsOnTheFlyFix.java index 1c4dfcc7a441..9b8ea422fae9 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/EnableOptimizeImportsOnTheFlyFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/EnableOptimizeImportsOnTheFlyFix.java @@ -15,6 +15,7 @@ */ package com.intellij.codeInsight.daemon.impl.quickfix; +import com.intellij.codeInsight.CodeInsightSettings; import com.intellij.codeInsight.daemon.DaemonCodeAnalyzer; import com.intellij.codeInsight.daemon.QuickFixBundle; import com.intellij.codeInsight.intention.IntentionAction; @@ -22,7 +23,6 @@ import com.intellij.openapi.editor.Editor; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiFile; import com.intellij.psi.PsiJavaFile; -import com.intellij.psi.codeStyle.CodeStyleSettingsManager; import org.jetbrains.annotations.NotNull; public class EnableOptimizeImportsOnTheFlyFix implements IntentionAction{ @@ -39,12 +39,12 @@ public class EnableOptimizeImportsOnTheFlyFix implements IntentionAction{ public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return file.getManager().isInProject(file) && file instanceof PsiJavaFile - && !CodeStyleSettingsManager.getSettings(project).OPTIMIZE_IMPORTS_ON_THE_FLY + && !com.intellij.codeInsight.CodeInsightSettings.getInstance().OPTIMIZE_IMPORTS_ON_THE_FLY ; } public void invoke(@NotNull Project project, Editor editor, PsiFile file) { - CodeStyleSettingsManager.getSettings(project).OPTIMIZE_IMPORTS_ON_THE_FLY = true; + CodeInsightSettings.getInstance().OPTIMIZE_IMPORTS_ON_THE_FLY = true; DaemonCodeAnalyzer.getInstance(project).restart(); } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ImportClassFixBase.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ImportClassFixBase.java index 9461e2a563b9..373bd59226c5 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ImportClassFixBase.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ImportClassFixBase.java @@ -28,7 +28,6 @@ import com.intellij.codeInsight.hint.QuestionAction; import com.intellij.codeInsight.hint.HintManager; import com.intellij.codeInspection.HintAction; import com.intellij.psi.*; -import com.intellij.psi.codeStyle.CodeStyleSettingsManager; import com.intellij.psi.search.PsiShortNamesCache; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.openapi.project.Project; @@ -131,7 +130,7 @@ public abstract class ImportClassFixBase im DaemonCodeAnalyzerImpl codeAnalyzer = (DaemonCodeAnalyzerImpl)DaemonCodeAnalyzer.getInstance(project); if (classes.length == 1 - && CodeStyleSettingsManager.getSettings(project).ADD_UNAMBIGIOUS_IMPORTS_ON_THE_FLY + && com.intellij.codeInsight.CodeInsightSettings.getInstance().ADD_UNAMBIGIOUS_IMPORTS_ON_THE_FLY && (allowCaretNearRef || !isCaretNearRef(editor, myRef)) && !JspPsiUtil.isInJspFile(psiFile) && codeAnalyzer.canChangeFileSilently(psiFile) diff --git a/platform/lang-api/src/com/intellij/psi/codeStyle/CodeStyleSettings.java b/platform/lang-api/src/com/intellij/psi/codeStyle/CodeStyleSettings.java index 1dfe028514dd..f5ce315e6deb 100644 --- a/platform/lang-api/src/com/intellij/psi/codeStyle/CodeStyleSettings.java +++ b/platform/lang-api/src/com/intellij/psi/codeStyle/CodeStyleSettings.java @@ -136,7 +136,7 @@ public class CodeStyleSettings implements Cloneable, JDOMExternalizable { public void copyFrom(CodeStyleSettings from) { copyPublicFields(from, this); - this.copyCustomSettingsFrom(from); + copyCustomSettingsFrom(from); } private static void copyPublicFields(Object from, Object to) { @@ -747,8 +747,6 @@ public class CodeStyleSettings implements Cloneable, JDOMExternalizable { public int NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND = 3; public final PackageEntryTable PACKAGES_TO_USE_IMPORT_ON_DEMAND = new PackageEntryTable(); public final PackageEntryTable IMPORT_LAYOUT_TABLE = new PackageEntryTable(); - public boolean OPTIMIZE_IMPORTS_ON_THE_FLY = false; - public boolean ADD_UNAMBIGIOUS_IMPORTS_ON_THE_FLY = false; //----------------- ORDER OF MEMBERS ------------------ diff --git a/platform/lang-impl/src/com/intellij/codeInsight/CodeInsightSettings.java b/platform/lang-impl/src/com/intellij/codeInsight/CodeInsightSettings.java index bbe29ecb616d..1debf36b3241 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/CodeInsightSettings.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/CodeInsightSettings.java @@ -124,6 +124,9 @@ public class CodeInsightSettings implements PersistentStateComponent, C public boolean HIGHLIGHT_IDENTIFIER_UNDER_CARET = false; + public boolean OPTIMIZE_IMPORTS_ON_THE_FLY = false; + public boolean ADD_UNAMBIGIOUS_IMPORTS_ON_THE_FLY = false; + @Property(surroundWithTag = false) @AbstractCollection( surroundWithTag = false, diff --git a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/DaemonCodeAnalyzerImpl.java b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/DaemonCodeAnalyzerImpl.java index 8392cd67df67..8e5faff1165a 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/DaemonCodeAnalyzerImpl.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/DaemonCodeAnalyzerImpl.java @@ -105,6 +105,7 @@ public class DaemonCodeAnalyzerImpl extends DaemonCodeAnalyzer implements JDOMEx private final PassExecutorService myPassExecutorService; private static final Key> HIGHLIGHTS_TO_REMOVE_KEY = Key.create("HIGHLIGHTS_TO_REMOVE"); + public DaemonCodeAnalyzerImpl(Project project, DaemonCodeAnalyzerSettings daemonCodeAnalyzerSettings, EditorTracker editorTracker) { myProject = project; @@ -615,4 +616,5 @@ public class DaemonCodeAnalyzerImpl extends DaemonCodeAnalyzer implements JDOMEx public static List getFileLevelHighlights(Project project,PsiFile file ) { return UpdateHighlightersUtil.getFileLeveleHighlights(project, file); } + }