mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
'optimize imports on the fly' moved to Settings|editor|auto import
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
+20
-9
@@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.intellij.application.options.editor.JavaAutoImportOptions">
|
||||
<grid id="27dc6" binding="myWholePanel" layout-manager="GridLayoutManager" row-count="4" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<grid id="27dc6" binding="myWholePanel" layout-manager="GridLayoutManager" row-count="6" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints>
|
||||
<xy x="20" y="20" width="310" height="260"/>
|
||||
<xy x="20" y="20" width="445" height="411"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="etched" title="Java">
|
||||
@@ -18,6 +18,14 @@
|
||||
<text resource-bundle="messages/ApplicationBundle" key="checkbox.show.import.popup"/>
|
||||
</properties>
|
||||
</component>
|
||||
<component id="9fc7d" class="javax.swing.JCheckBox" binding="myCbAddUnambiguousImports">
|
||||
<constraints>
|
||||
<grid row="3" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text resource-bundle="messages/ApplicationBundle" key="checkbox.add.unambiguous.imports.on.the.fly"/>
|
||||
</properties>
|
||||
</component>
|
||||
<grid id="2ef17" layout-manager="GridLayoutManager" row-count="1" column-count="3" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="5" bottom="0" right="0"/>
|
||||
<constraints>
|
||||
@@ -51,7 +59,7 @@
|
||||
<grid id="e67c2" layout-manager="GridLayoutManager" row-count="3" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints>
|
||||
<grid row="3" column="0" row-span="1" col-span="2" vsize-policy="7" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
<grid row="5" column="0" row-span="1" col-span="2" vsize-policy="7" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
@@ -93,19 +101,22 @@
|
||||
</vspacer>
|
||||
</children>
|
||||
</grid>
|
||||
<hspacer id="22474">
|
||||
<constraints>
|
||||
<grid row="1" column="1" row-span="1" col-span="1" vsize-policy="1" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
</hspacer>
|
||||
<component id="64f08" class="com.intellij.ui.TitledSeparator">
|
||||
<constraints>
|
||||
<grid row="2" column="0" row-span="1" col-span="2" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||
<grid row="4" column="0" row-span="1" col-span="2" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text resource-bundle="messages/ApplicationBundle" key="exclude.from.completion.group"/>
|
||||
</properties>
|
||||
</component>
|
||||
<component id="28ca2" class="javax.swing.JCheckBox" binding="myCbOptimizeImports">
|
||||
<constraints>
|
||||
<grid row="2" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text resource-bundle="messages/ApplicationBundle" key="checkbox.optimize.imports.on.the.fly"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</form>
|
||||
|
||||
+9
-1
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
+1
-2
@@ -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();
|
||||
|
||||
+3
-3
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
+1
-2
@@ -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<T extends PsiElement & PsiReference> 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)
|
||||
|
||||
@@ -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 ------------------
|
||||
|
||||
|
||||
@@ -124,6 +124,9 @@ public class CodeInsightSettings implements PersistentStateComponent<Element>, 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,
|
||||
|
||||
+2
@@ -105,6 +105,7 @@ public class DaemonCodeAnalyzerImpl extends DaemonCodeAnalyzer implements JDOMEx
|
||||
private final PassExecutorService myPassExecutorService;
|
||||
private static final Key<List<HighlightInfo>> 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<HighlightInfo> getFileLevelHighlights(Project project,PsiFile file ) {
|
||||
return UpdateHighlightersUtil.getFileLeveleHighlights(project, file);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user