diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/accessStaticViaInstance/AccessStaticViaInstanceBase.java b/java/java-analysis-impl/src/com/intellij/codeInspection/accessStaticViaInstance/AccessStaticViaInstanceBase.java index 6c75f8be8e7d..00c66668638f 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/accessStaticViaInstance/AccessStaticViaInstanceBase.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/accessStaticViaInstance/AccessStaticViaInstanceBase.java @@ -19,17 +19,14 @@ import com.intellij.codeInsight.daemon.JavaErrorMessages; import com.intellij.codeInsight.daemon.impl.analysis.HighlightMessageUtil; import com.intellij.codeInsight.daemon.impl.analysis.JavaHighlightUtil; import com.intellij.codeInsight.daemon.impl.quickfix.RemoveUnusedVariableUtil; -import com.intellij.codeInspection.BaseJavaBatchLocalInspectionTool; -import com.intellij.codeInspection.InspectionsBundle; -import com.intellij.codeInspection.LocalQuickFix; -import com.intellij.codeInspection.ProblemsHolder; +import com.intellij.codeInspection.*; import com.intellij.psi.*; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; -public class AccessStaticViaInstanceBase extends BaseJavaBatchLocalInspectionTool { +public class AccessStaticViaInstanceBase extends BaseJavaBatchLocalInspectionTool implements CleanupLocalInspectionTool { @NonNls public static final String ACCESS_STATIC_VIA_INSTANCE = "AccessStaticViaInstance"; @Override diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/duplicateThrows/DuplicateThrowsInspection.java b/java/java-analysis-impl/src/com/intellij/codeInspection/duplicateThrows/DuplicateThrowsInspection.java index b95c3c9c4b63..c40f4385f3e4 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/duplicateThrows/DuplicateThrowsInspection.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/duplicateThrows/DuplicateThrowsInspection.java @@ -24,7 +24,7 @@ import org.jetbrains.annotations.Nullable; import javax.swing.*; -public class DuplicateThrowsInspection extends BaseJavaBatchLocalInspectionTool { +public class DuplicateThrowsInspection extends BaseJavaBatchLocalInspectionTool implements CleanupLocalInspectionTool { @SuppressWarnings("PublicField") public boolean ignoreSubclassing = false; diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/miscGenerics/GenericsInspectionToolBase.java b/java/java-analysis-impl/src/com/intellij/codeInspection/miscGenerics/GenericsInspectionToolBase.java index 80d11cbb2471..cd8d804d16d1 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/miscGenerics/GenericsInspectionToolBase.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/miscGenerics/GenericsInspectionToolBase.java @@ -15,10 +15,7 @@ */ package com.intellij.codeInspection.miscGenerics; -import com.intellij.codeInspection.BaseJavaBatchLocalInspectionTool; -import com.intellij.codeInspection.InspectionManager; -import com.intellij.codeInspection.ProblemDescriptor; -import com.intellij.codeInspection.ProblemsHolder; +import com.intellij.codeInspection.*; import com.intellij.psi.*; import com.intellij.psi.util.PsiUtil; import com.intellij.util.containers.ContainerUtil; @@ -31,7 +28,7 @@ import java.util.List; /** * @author ven */ -public abstract class GenericsInspectionToolBase extends BaseJavaBatchLocalInspectionTool { +public abstract class GenericsInspectionToolBase extends BaseJavaBatchLocalInspectionTool implements CleanupLocalInspectionTool { @Override public boolean isEnabledByDefault() { return true; diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/unneededThrows/RedundantThrowsDeclaration.java b/java/java-analysis-impl/src/com/intellij/codeInspection/unneededThrows/RedundantThrowsDeclaration.java index 61b501c78ec9..424c707706e5 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/unneededThrows/RedundantThrowsDeclaration.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/unneededThrows/RedundantThrowsDeclaration.java @@ -33,7 +33,7 @@ import java.util.Set; * @author anna * @since 15-Nov-2005 */ -public class RedundantThrowsDeclaration extends BaseJavaBatchLocalInspectionTool { +public class RedundantThrowsDeclaration extends BaseJavaBatchLocalInspectionTool implements CleanupLocalInspectionTool { @Override @NotNull public String getGroupDisplayName() { diff --git a/platform/analysis-api/src/com/intellij/codeInspection/CleanupLocalInspectionTool.java b/platform/analysis-api/src/com/intellij/codeInspection/CleanupLocalInspectionTool.java new file mode 100644 index 000000000000..930ae2d76dfb --- /dev/null +++ b/platform/analysis-api/src/com/intellij/codeInspection/CleanupLocalInspectionTool.java @@ -0,0 +1,19 @@ +/* + * 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.intellij.codeInspection; + +public interface CleanupLocalInspectionTool { +} diff --git a/platform/lang-impl/src/com/intellij/codeInspection/actions/CodeCleanupAction.java b/platform/lang-impl/src/com/intellij/codeInspection/actions/CodeCleanupAction.java new file mode 100644 index 000000000000..3c546d414f5b --- /dev/null +++ b/platform/lang-impl/src/com/intellij/codeInspection/actions/CodeCleanupAction.java @@ -0,0 +1,184 @@ +/* + * 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.intellij.codeInspection.actions; + +import com.intellij.analysis.AnalysisScope; +import com.intellij.analysis.BaseAnalysisAction; +import com.intellij.analysis.BaseAnalysisActionDialog; +import com.intellij.codeInsight.FileModificationService; +import com.intellij.codeInsight.daemon.impl.HighlightInfo; +import com.intellij.codeInsight.daemon.impl.HighlightInfoProcessor; +import com.intellij.codeInsight.daemon.impl.LocalInspectionsPass; +import com.intellij.codeInspection.CleanupLocalInspectionTool; +import com.intellij.codeInspection.InspectionManager; +import com.intellij.codeInspection.InspectionProfile; +import com.intellij.codeInspection.InspectionsBundle; +import com.intellij.codeInspection.ex.*; +import com.intellij.execution.filters.HyperlinkInfo; +import com.intellij.icons.AllIcons; +import com.intellij.openapi.actionSystem.*; +import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.command.CommandProcessor; +import com.intellij.openapi.command.WriteCommandAction; +import com.intellij.openapi.diagnostic.Logger; +import com.intellij.openapi.editor.Editor; +import com.intellij.openapi.fileEditor.FileDocumentManager; +import com.intellij.openapi.options.ex.SingleConfigurableEditor; +import com.intellij.openapi.progress.ProgressIndicator; +import com.intellij.openapi.progress.ProgressManager; +import com.intellij.openapi.progress.Task; +import com.intellij.openapi.project.Project; +import com.intellij.openapi.util.Pair; +import com.intellij.openapi.util.TextRange; +import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.profile.Profile; +import com.intellij.profile.ProfileManager; +import com.intellij.profile.codeInspection.InspectionProfileManager; +import com.intellij.profile.codeInspection.InspectionProjectProfileManager; +import com.intellij.profile.codeInspection.ui.ErrorsConfigurable; +import com.intellij.profile.codeInspection.ui.IDEInspectionToolsConfigurable; +import com.intellij.psi.PsiDocumentManager; +import com.intellij.psi.PsiElementVisitor; +import com.intellij.psi.PsiFile; +import com.intellij.ui.ComboboxWithBrowseButton; +import com.intellij.ui.ListCellRendererWrapper; +import com.intellij.util.SequentialModalProgressTask; +import com.intellij.util.SequentialTask; +import org.jetbrains.annotations.NonNls; +import org.jetbrains.annotations.NotNull; + +import javax.swing.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.*; + +public class CodeCleanupAction extends BaseAnalysisAction { + public CodeCleanupAction() { + super("Code Cleanup", "Code Cleanup"); + } + + @Override + protected void analyze(@NotNull final Project project, @NotNull final AnalysisScope scope) { + final InspectionProfile profile = InspectionProjectProfileManager.getInstance(project).getInspectionProfile(); + final List lTools = new ArrayList(); + final InspectionManagerEx managerEx = (InspectionManagerEx)InspectionManager.getInstance(project); + final GlobalInspectionContextImpl context = managerEx.createNewGlobalContext(false); + + final LinkedHashMap> results = new LinkedHashMap>(); + ProgressManager.getInstance().run(new Task.Backgroundable(project, "Inspect code...", true) { + @Override + public void run(@NotNull ProgressIndicator indicator) { + scope.accept(new PsiElementVisitor() { + @Override + public void visitFile(PsiFile file) { + final VirtualFile virtualFile = file.getVirtualFile(); + if (virtualFile == null) return; + for (final Tools tools : profile.getAllEnabledInspectionTools(project)) { + if (tools.getTool().getTool() instanceof CleanupLocalInspectionTool) { + final InspectionToolWrapper tool = tools.getEnabledTool(file); + if (tool instanceof LocalInspectionToolWrapper) { + lTools.add((LocalInspectionToolWrapper)tool); + tool.initialize(context); + } + } + } + + if (!lTools.isEmpty()) { + final LocalInspectionsPass pass = new LocalInspectionsPass(file, PsiDocumentManager.getInstance(project).getDocument(file), 0, + file.getTextLength(), LocalInspectionsPass.EMPTY_PRIORITY_RANGE, true, + HighlightInfoProcessor.getEmpty()); + Runnable runnable = new Runnable() { + public void run() { + pass.doInspectInBatch(context, managerEx, lTools); + } + }; + ApplicationManager.getApplication().runReadAction(runnable); + results.put(file, pass.getInfos()); + } + } + }); + } + + @Override + public void onSuccess() { + if (!FileModificationService.getInstance().preparePsiElementsForWrite(results.keySet())) return; + + final SequentialModalProgressTask progressTask = new SequentialModalProgressTask(project, "Code Cleanup", true); + progressTask.setMinIterationTime(200); + progressTask.setTask(new SequentialCleanupTask(project, results, progressTask)); + CommandProcessor.getInstance().executeCommand(project, new Runnable() { + @Override + public void run() { + CommandProcessor.getInstance().markCurrentCommandAsGlobal(project); + ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override + public void run() { + ProgressManager.getInstance().run(progressTask); + } + }); + } + }, getTemplatePresentation().getText(), null); + } + }); + } +} + +class SequentialCleanupTask implements SequentialTask { + + private final Project myProject; + private final LinkedHashMap> myResults; + private Iterator myFileIterator; + private final SequentialModalProgressTask myProgressTask; + private int myCount = 0; + + public SequentialCleanupTask(Project project, LinkedHashMap> results, SequentialModalProgressTask task) { + myProject = project; + myResults = results; + myProgressTask = task; + myFileIterator = myResults.keySet().iterator(); + } + + @Override + public void prepare() {} + + @Override + public boolean isDone() { + return myFileIterator == null || !myFileIterator.hasNext(); + } + + @Override + public boolean iteration() { + final ProgressIndicator indicator = myProgressTask.getIndicator(); + if (indicator != null) { + indicator.setFraction((double) myCount++/myResults.size()); + } + final PsiFile file = myFileIterator.next(); + final List infos = myResults.get(file); + Collections.reverse(infos); //sort bottom - top + for (HighlightInfo info : infos) { + for (final Pair actionRange : info.quickFixActionRanges) { + actionRange.getFirst().getAction().invoke(myProject, null, file); + } + } + return true; + } + + @Override + public void stop() { + myFileIterator = null; + } +} diff --git a/platform/lang-impl/src/com/intellij/ide/actions/GotoActionAction.java b/platform/lang-impl/src/com/intellij/ide/actions/GotoActionAction.java index 1d38710f4c60..91f5d2af767b 100644 --- a/platform/lang-impl/src/com/intellij/ide/actions/GotoActionAction.java +++ b/platform/lang-impl/src/com/intellij/ide/actions/GotoActionAction.java @@ -40,14 +40,17 @@ import java.awt.*; import java.util.Collections; import java.util.Comparator; import java.util.List; -import java.util.Map; public class GotoActionAction extends GotoActionBase implements DumbAware { public static final Comparator ELEMENTS_COMPARATOR = new Comparator() { @Override public int compare(MatchResult o1, MatchResult o2) { + if (o1.elementName.equals(GotoActionModel.INTENTIONS_KEY)) return -1; + if (o2.elementName.equals(GotoActionModel.INTENTIONS_KEY)) return 1; + if (o1.elementName.equals(GotoActionModel.SETTINGS_KEY)) return 1; if (o2.elementName.equals(GotoActionModel.SETTINGS_KEY)) return -1; + return o1.elementName.compareToIgnoreCase(o2.elementName); } }; @@ -103,7 +106,7 @@ public class GotoActionAction extends GotoActionBase implements DumbAware { } else { //element could be AnAction (SearchEverywhere) - final AnAction action = element instanceof AnAction ? ((AnAction)element) : (AnAction)((Map.Entry)element).getKey(); + final AnAction action = element instanceof AnAction ? ((AnAction)element) : ((GotoActionModel.ActionWrapper)element).getAction(); if (action != null) { ApplicationManager.getApplication().invokeLater(new Runnable() { @Override diff --git a/platform/lang-impl/src/com/intellij/ide/actions/SearchEverywhereAction.java b/platform/lang-impl/src/com/intellij/ide/actions/SearchEverywhereAction.java index 30e1bac9316d..ecff44f54a18 100644 --- a/platform/lang-impl/src/com/intellij/ide/actions/SearchEverywhereAction.java +++ b/platform/lang-impl/src/com/intellij/ide/actions/SearchEverywhereAction.java @@ -1718,9 +1718,9 @@ public class SearchEverywhereAction extends AnAction implements CustomComponentA private GotoActionModel createActionModel() { return new GotoActionModel(project, myFocusComponent, myEditor, myFile) { @Override - protected boolean actionMatches(String pattern, @NotNull AnAction anAction) { + protected MatchMode actionMatches(String pattern, @NotNull AnAction anAction) { return NameUtil.buildMatcher("*" + pattern, NameUtil.MatchingCaseSensitivity.NONE) - .matches(anAction.getTemplatePresentation().getText()); + .matches(anAction.getTemplatePresentation().getText()) ? MatchMode.NAME : MatchMode.NONE; } }; } diff --git a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/GotoActionModel.java b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/GotoActionModel.java index 20ebe82d1123..051368b8f1ae 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/GotoActionModel.java +++ b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/GotoActionModel.java @@ -48,6 +48,7 @@ import org.jetbrains.annotations.Nullable; import javax.swing.*; import java.awt.*; import java.util.*; +import java.util.List; public class GotoActionModel implements ChooseByNameModel, CustomMatcherModel, Comparator { @NonNls public static final String SETTINGS_KEY = "$$$SETTINGS$$$"; @@ -154,11 +155,11 @@ public class GotoActionModel implements ChooseByNameModel, CustomMatcherModel, C panel.setBackground(bg); - if (value instanceof Map.Entry) { + if (value instanceof ActionWrapper) { - final Map.Entry actionWithParentGroup = (Map.Entry)value; + final ActionWrapper actionWithParentGroup = (ActionWrapper)value; - final AnAction anAction = (AnAction)actionWithParentGroup.getKey(); + final AnAction anAction = actionWithParentGroup.getAction(); final Presentation templatePresentation = anAction.getTemplatePresentation(); final Icon icon = templatePresentation.getIcon(); @@ -169,10 +170,10 @@ public class GotoActionModel implements ChooseByNameModel, CustomMatcherModel, C final Color fg = defaultActionForeground(isSelected, presentation); - final JLabel actionLabel = createActionLabel(anAction, templatePresentation.getText(), fg, bg, icon); + final JLabel actionLabel = createActionLabel(anAction, templatePresentation.getText() + "::" + actionWithParentGroup.getMode(), fg, bg, icon); panel.add(actionLabel, BorderLayout.WEST); - final String groupName = (String)actionWithParentGroup.getValue(); + final String groupName = actionWithParentGroup.getGroupName(); if (groupName != null) { final JLabel groupLabel = new JLabel(groupName); groupLabel.setBackground(bg); @@ -249,12 +250,20 @@ public class GotoActionModel implements ChooseByNameModel, CustomMatcherModel, C @Override public int compare(Object o1, Object o2) { - if (o1 instanceof Map.Entry && !(o2 instanceof Map.Entry)) { - return -1; - } - if (o2 instanceof Map.Entry && !(o1 instanceof Map.Entry)) { + if (o1 instanceof OptionDescription && !(o2 instanceof OptionDescription)) { return 1; } + if (o2 instanceof OptionDescription && !(o1 instanceof OptionDescription)) { + return 1; + } + + if (o1 instanceof OptionDescription) { + return ((OptionDescription)o1).compareTo(o2); + } + + if (o1 instanceof ActionWrapper && o2 instanceof ActionWrapper) { + return ((ActionWrapper)o1).compareTo((ActionWrapper)o2); + } return StringUtil.compare(getFullName(o1), getFullName(o2), true); } @@ -301,10 +310,15 @@ public class GotoActionModel implements ChooseByNameModel, CustomMatcherModel, C @Override @NotNull public Object[] getElementsByName(final String id, final boolean checkBoxState, final String pattern) { - final HashMap map = new HashMap(); + List objects = new ArrayList(); final AnAction act = myActionManager.getAction(id); if (act != null) { - map.put(act, myActionsMap.get(act)); + final HashMap map = new HashMap(); + final MatchMode matchMode = actionMatches(pattern, act); + final String groupName = myActionsMap.get(act); + if (map.put(act, groupName) == null) { + objects.add(new ActionWrapper(act, groupName, matchMode)); + } if (checkBoxState) { final Set ids = ((ActionManagerImpl)myActionManager).getActionIds(); for (AnAction action : map.keySet()) { //do not add already included actions @@ -313,17 +327,19 @@ public class GotoActionModel implements ChooseByNameModel, CustomMatcherModel, C if (ids.contains(id)) { final AnAction anAction = myActionManager.getAction(id); map.put(anAction, null); + if (anAction != null) { + objects.add(new ActionWrapper(anAction, null, MatchMode.NON_MENU)); + } } } } else if (Comparing.strEqual(id, INTENTIONS_KEY)) { for (String intentionText : myIntentions.keySet()) { final ApplyIntentionAction intentionAction = myIntentions.get(intentionText); - if (actionMatches(pattern, intentionAction)) { - map.put(intentionAction, intentionText); + if (actionMatches(pattern, intentionAction) != MatchMode.NONE) { + objects.add(new ActionWrapper(intentionAction, intentionText, MatchMode.INTENTION)); } } } - Object[] objects = map.entrySet().toArray(new Map.Entry[map.size()]); if (Comparing.strEqual(id, SETTINGS_KEY)) { final Set words = myIndex.getProcessedWords(pattern); Set optionDescriptions = null; @@ -359,12 +375,10 @@ public class GotoActionModel implements ChooseByNameModel, CustomMatcherModel, C iterator.remove(); } } - final Object[] descriptions = optionDescriptions.toArray(); - Arrays.sort(descriptions); - objects = ArrayUtil.mergeArrays(objects, descriptions); + objects.addAll(optionDescriptions); } } - return objects; + return objects.toArray(new Object[objects.size()]); } private void collectActions(Map result, ActionGroup group, final String containingGroupName) { @@ -427,29 +441,31 @@ public class GotoActionModel implements ChooseByNameModel, CustomMatcherModel, C @Override public String getElementName(final Object element) { if (element instanceof OptionDescription) return ((OptionDescription)element).getHit(); - if (!(element instanceof Map.Entry)) return null; - return ((AnAction)((Map.Entry)element).getKey()).getTemplatePresentation().getText(); + if (!(element instanceof ActionWrapper)) return null; + return ((ActionWrapper)element).getAction().getTemplatePresentation().getText(); } @Override public boolean matches(@NotNull final String name, @NotNull final String pattern) { final AnAction anAction = myActionManager.getAction(name); if (anAction == null) return true; - return actionMatches(pattern, anAction); + return actionMatches(pattern, anAction) != MatchMode.NONE; } - protected boolean actionMatches(String pattern, @NotNull AnAction anAction) { + protected MatchMode actionMatches(String pattern, @NotNull AnAction anAction) { final Pattern compiledPattern = getPattern(pattern); final Presentation presentation = anAction.getTemplatePresentation(); final String text = presentation.getText(); final String description = presentation.getDescription(); PatternMatcher matcher = getMatcher(); - if (text != null && matcher.matches(text, compiledPattern) || - description != null && !description.equals(text) && matcher.matches(description, compiledPattern)) { - return true; + if (text != null && matcher.matches(text, compiledPattern)) { + return MatchMode.NAME; + } + else if (description != null && !description.equals(text) && matcher.matches(description, compiledPattern)) { + return MatchMode.DESCRIPTION; } final String groupName = myActionsMap.get(anAction); - return groupName != null && text != null && matcher.matches(groupName + " " + text, compiledPattern); + return groupName != null && text != null && matcher.matches(groupName + " " + text, compiledPattern) ? MatchMode.GROUP : MatchMode.NONE; } @Nullable @@ -480,6 +496,10 @@ public class GotoActionModel implements ChooseByNameModel, CustomMatcherModel, C return compiledPattern; } + protected enum MatchMode { + NONE, INTENTION, NAME, DESCRIPTION, GROUP, NON_MENU + } + private String convertPattern(String pattern) { final int eol = pattern.indexOf('\n'); if (eol != -1) { @@ -587,4 +607,40 @@ public class GotoActionModel implements ChooseByNameModel, CustomMatcherModel, C private PatternMatcher getMatcher() { return myMatcher.get(); } + + public static class ActionWrapper implements Comparable{ + private AnAction myAction; + private MatchMode myMode; + private String myGroupName; + + public ActionWrapper(AnAction action, String groupName, MatchMode mode) { + myAction = action; + myMode = mode; + myGroupName = groupName; + } + + public AnAction getAction() { + return myAction; + } + + public MatchMode getMode() { + return myMode; + } + + @Override + public int compareTo(ActionWrapper o) { + final int compared = myMode.compareTo(o.getMode()); + return compared != 0 + ? compared + : StringUtil.compare(myAction.getTemplatePresentation().getText(), o.getAction().getTemplatePresentation().getText(), true); + } + + public String getGroupName() { + return myGroupName; + } + + public void setGroupName(String groupName) { + myGroupName = groupName; + } + } } diff --git a/platform/platform-resources-en/src/messages/ActionsBundle.properties b/platform/platform-resources-en/src/messages/ActionsBundle.properties index efce9bf6dcbc..911cc1fa4cb5 100644 --- a/platform/platform-resources-en/src/messages/ActionsBundle.properties +++ b/platform/platform-resources-en/src/messages/ActionsBundle.properties @@ -520,6 +520,8 @@ action.MoveLineDown.description=Move selected lines one line down action.MoveLineUp.text=Move Line _Up action.MoveLineUp.description=Move selected lines one line up group.AnalyzeMenu.text=Analy_ze +action.CodeCleanup.text=_Code Cleanup... +action.CodeCleanup.description=Run cleanup inspections and apply quick fixes action.InspectCode.text=_Inspect Code... action.InspectCode.description=Inspect code action.InferNullity.text=Infer _Nullity... diff --git a/platform/platform-resources/src/idea/PlatformLangActionManager.xml b/platform/platform-resources/src/idea/PlatformLangActionManager.xml index a8374eb3b1e6..c5d83d776ce4 100644 --- a/platform/platform-resources/src/idea/PlatformLangActionManager.xml +++ b/platform/platform-resources/src/idea/PlatformLangActionManager.xml @@ -42,6 +42,7 @@ + diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/imports/JavaLangImportInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/imports/JavaLangImportInspection.java index f0d521d3ed9c..8ac422e74c31 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/imports/JavaLangImportInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/imports/JavaLangImportInspection.java @@ -15,6 +15,7 @@ */ package com.siyeh.ig.imports; +import com.intellij.codeInspection.CleanupLocalInspectionTool; import com.intellij.psi.*; import com.siyeh.HardcodedMethodConstants; import com.siyeh.InspectionGadgetsBundle; @@ -26,7 +27,7 @@ import com.intellij.psi.util.FileTypeUtils; import com.siyeh.ig.psiutils.ImportUtils; import org.jetbrains.annotations.NotNull; -public class JavaLangImportInspection extends BaseInspection { +public class JavaLangImportInspection extends BaseInspection implements CleanupLocalInspectionTool{ @Override @NotNull diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/imports/SamePackageImportInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/imports/SamePackageImportInspection.java index 3d9ee1148ab9..a1bd67ab359b 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/imports/SamePackageImportInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/imports/SamePackageImportInspection.java @@ -15,6 +15,7 @@ */ package com.siyeh.ig.imports; +import com.intellij.codeInspection.CleanupLocalInspectionTool; import com.intellij.psi.*; import com.siyeh.InspectionGadgetsBundle; import com.siyeh.ig.BaseInspection; @@ -24,7 +25,7 @@ import com.siyeh.ig.fixes.DeleteImportFix; import com.intellij.psi.util.FileTypeUtils; import org.jetbrains.annotations.NotNull; -public class SamePackageImportInspection extends BaseInspection { +public class SamePackageImportInspection extends BaseInspection implements CleanupLocalInspectionTool { @Override @NotNull diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/MissortedModifiersInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/MissortedModifiersInspection.java index 4708886fcde5..ebb7d494e008 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/MissortedModifiersInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/MissortedModifiersInspection.java @@ -15,6 +15,7 @@ */ package com.siyeh.ig.style; +import com.intellij.codeInspection.CleanupLocalInspectionTool; import com.intellij.codeInspection.ProblemDescriptor; import com.intellij.codeInspection.ui.SingleCheckboxOptionsPanel; import com.intellij.openapi.project.Project; @@ -31,7 +32,7 @@ import org.jetbrains.annotations.NotNull; import javax.swing.*; import java.util.*; -public class MissortedModifiersInspection extends BaseInspection { +public class MissortedModifiersInspection extends BaseInspection implements CleanupLocalInspectionTool{ /** * @noinspection PublicField diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/RedundantFieldInitializationInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/RedundantFieldInitializationInspection.java index 4bd27f027484..1b824b298a1b 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/RedundantFieldInitializationInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/RedundantFieldInitializationInspection.java @@ -15,6 +15,7 @@ */ package com.siyeh.ig.style; +import com.intellij.codeInspection.CleanupLocalInspectionTool; import com.intellij.codeInspection.ProblemDescriptor; import com.intellij.codeInspection.ProblemHighlightType; import com.intellij.codeInspection.ui.SingleCheckboxOptionsPanel; @@ -31,7 +32,7 @@ import org.jetbrains.annotations.Nullable; import javax.swing.*; -public class RedundantFieldInitializationInspection extends BaseInspection { +public class RedundantFieldInitializationInspection extends BaseInspection implements CleanupLocalInspectionTool { @SuppressWarnings("PublicField") public boolean onlyWarnOnNull = false; diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/RedundantImplementsInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/RedundantImplementsInspection.java index f5281c3c5440..ddfd5c45a901 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/RedundantImplementsInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/RedundantImplementsInspection.java @@ -15,6 +15,7 @@ */ package com.siyeh.ig.style; +import com.intellij.codeInspection.CleanupLocalInspectionTool; import com.intellij.codeInspection.ProblemDescriptor; import com.intellij.codeInspection.ui.MultipleCheckboxOptionsPanel; import com.intellij.openapi.project.Project; @@ -28,7 +29,7 @@ import org.jetbrains.annotations.NotNull; import javax.swing.*; -public class RedundantImplementsInspection extends BaseInspection { +public class RedundantImplementsInspection extends BaseInspection implements CleanupLocalInspectionTool{ @SuppressWarnings({"PublicField"}) public boolean ignoreSerializable = false; diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessarilyQualifiedInnerClassAccessInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessarilyQualifiedInnerClassAccessInspection.java index a58f99a29aac..78e32e5eee60 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessarilyQualifiedInnerClassAccessInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessarilyQualifiedInnerClassAccessInspection.java @@ -15,6 +15,7 @@ */ package com.siyeh.ig.style; +import com.intellij.codeInspection.CleanupLocalInspectionTool; import com.intellij.codeInspection.ProblemDescriptor; import com.intellij.codeInspection.ProblemHighlightType; import com.intellij.codeInspection.ui.SingleCheckboxOptionsPanel; @@ -32,8 +33,7 @@ import org.jetbrains.annotations.NotNull; import javax.swing.*; -public class UnnecessarilyQualifiedInnerClassAccessInspection - extends BaseInspection { +public class UnnecessarilyQualifiedInnerClassAccessInspection extends BaseInspection implements CleanupLocalInspectionTool { @SuppressWarnings({"PublicField"}) public boolean ignoreReferencesNeedingImport = false; diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessarilyQualifiedStaticUsageInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessarilyQualifiedStaticUsageInspection.java index 1339a6dca177..9ac7bf528a95 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessarilyQualifiedStaticUsageInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessarilyQualifiedStaticUsageInspection.java @@ -15,6 +15,7 @@ */ package com.siyeh.ig.style; +import com.intellij.codeInspection.CleanupLocalInspectionTool; import com.intellij.codeInspection.ProblemDescriptor; import com.intellij.codeInspection.ProblemHighlightType; import com.intellij.codeInspection.ui.MultipleCheckboxOptionsPanel; @@ -32,7 +33,7 @@ import org.jetbrains.annotations.NotNull; import javax.swing.*; -public class UnnecessarilyQualifiedStaticUsageInspection extends BaseInspection { +public class UnnecessarilyQualifiedStaticUsageInspection extends BaseInspection implements CleanupLocalInspectionTool{ /** * @noinspection PublicField diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessarilyQualifiedStaticallyImportedElementInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessarilyQualifiedStaticallyImportedElementInspection.java index 7c6d5a999ecb..aca7b9af4b45 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessarilyQualifiedStaticallyImportedElementInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessarilyQualifiedStaticallyImportedElementInspection.java @@ -15,6 +15,7 @@ */ package com.siyeh.ig.style; +import com.intellij.codeInspection.CleanupLocalInspectionTool; import com.intellij.codeInspection.ProblemDescriptor; import com.intellij.codeInspection.ProblemHighlightType; import com.intellij.openapi.project.Project; @@ -30,7 +31,7 @@ import com.siyeh.ig.psiutils.ImportUtils; import org.jetbrains.annotations.Nls; import org.jetbrains.annotations.NotNull; -public class UnnecessarilyQualifiedStaticallyImportedElementInspection extends BaseInspection { +public class UnnecessarilyQualifiedStaticallyImportedElementInspection extends BaseInspection implements CleanupLocalInspectionTool{ @Nls @NotNull diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryBlockStatementInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryBlockStatementInspection.java index cd22119f92f7..eb379a27ce00 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryBlockStatementInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryBlockStatementInspection.java @@ -15,6 +15,7 @@ */ package com.siyeh.ig.style; +import com.intellij.codeInspection.CleanupLocalInspectionTool; import com.intellij.codeInspection.ProblemDescriptor; import com.intellij.codeInspection.ui.SingleCheckboxOptionsPanel; import com.intellij.openapi.project.Project; @@ -30,7 +31,7 @@ import org.jetbrains.annotations.NotNull; import javax.swing.*; -public class UnnecessaryBlockStatementInspection extends BaseInspection { +public class UnnecessaryBlockStatementInspection extends BaseInspection implements CleanupLocalInspectionTool { @SuppressWarnings({"PublicField"}) public boolean ignoreSwitchBranches = false; diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryCallToStringValueOfInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryCallToStringValueOfInspection.java index 0c3474b02c3e..3a5f418d8bc8 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryCallToStringValueOfInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryCallToStringValueOfInspection.java @@ -15,6 +15,7 @@ */ package com.siyeh.ig.style; +import com.intellij.codeInspection.CleanupLocalInspectionTool; import com.intellij.codeInspection.ProblemDescriptor; import com.intellij.openapi.project.Project; import com.intellij.psi.*; @@ -32,7 +33,7 @@ import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public class UnnecessaryCallToStringValueOfInspection extends BaseInspection { +public class UnnecessaryCallToStringValueOfInspection extends BaseInspection implements CleanupLocalInspectionTool{ @Override @Nls diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryConstantArrayCreationExpressionInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryConstantArrayCreationExpressionInspection.java index f14138f5fe2c..a504a9efc3a2 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryConstantArrayCreationExpressionInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryConstantArrayCreationExpressionInspection.java @@ -15,6 +15,7 @@ */ package com.siyeh.ig.style; +import com.intellij.codeInspection.CleanupLocalInspectionTool; import com.intellij.codeInspection.ProblemDescriptor; import com.intellij.openapi.project.Project; import com.intellij.psi.*; @@ -26,8 +27,7 @@ import com.siyeh.ig.InspectionGadgetsFix; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public class UnnecessaryConstantArrayCreationExpressionInspection - extends BaseInspection { +public class UnnecessaryConstantArrayCreationExpressionInspection extends BaseInspection implements CleanupLocalInspectionTool { @Override @NotNull diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryConstructorInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryConstructorInspection.java index 8b7e23fa1547..126f5021a47f 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryConstructorInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryConstructorInspection.java @@ -15,6 +15,7 @@ */ package com.siyeh.ig.style; +import com.intellij.codeInspection.CleanupLocalInspectionTool; import com.intellij.codeInspection.ProblemDescriptor; import com.intellij.codeInspection.ui.SingleCheckboxOptionsPanel; import com.intellij.openapi.project.Project; @@ -29,7 +30,7 @@ import org.jetbrains.annotations.NotNull; import javax.swing.*; -public class UnnecessaryConstructorInspection extends BaseInspection { +public class UnnecessaryConstructorInspection extends BaseInspection implements CleanupLocalInspectionTool { @NonNls private static final String SUPER_CALL_TEXT = PsiKeyword.SUPER + "();"; diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryEnumModifierInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryEnumModifierInspection.java index f4bf9ea937b5..2aa72fae7bbe 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryEnumModifierInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryEnumModifierInspection.java @@ -15,6 +15,7 @@ */ package com.siyeh.ig.style; +import com.intellij.codeInspection.CleanupLocalInspectionTool; import com.intellij.codeInspection.ProblemDescriptor; import com.intellij.openapi.project.Project; import com.intellij.psi.*; @@ -26,7 +27,7 @@ import com.siyeh.ig.InspectionGadgetsFix; import com.siyeh.ig.psiutils.ClassUtils; import org.jetbrains.annotations.NotNull; -public class UnnecessaryEnumModifierInspection extends BaseInspection { +public class UnnecessaryEnumModifierInspection extends BaseInspection implements CleanupLocalInspectionTool{ @Override @NotNull diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryFinalOnLocalVariableOrParameterInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryFinalOnLocalVariableOrParameterInspection.java index 62d31f0a151d..3961092d0ab1 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryFinalOnLocalVariableOrParameterInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryFinalOnLocalVariableOrParameterInspection.java @@ -15,6 +15,7 @@ */ package com.siyeh.ig.style; +import com.intellij.codeInspection.CleanupLocalInspectionTool; import com.intellij.psi.*; import com.intellij.psi.util.PsiTreeUtil; import com.siyeh.InspectionGadgetsBundle; @@ -31,7 +32,7 @@ import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import java.awt.*; -public class UnnecessaryFinalOnLocalVariableOrParameterInspection extends BaseInspection { +public class UnnecessaryFinalOnLocalVariableOrParameterInspection extends BaseInspection implements CleanupLocalInspectionTool { @SuppressWarnings({"PublicField"}) public boolean onlyWarnOnAbstractMethods = false; diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryInterfaceModifierInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryInterfaceModifierInspection.java index 880d3dd21f19..0a4b57e8543b 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryInterfaceModifierInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryInterfaceModifierInspection.java @@ -15,6 +15,7 @@ */ package com.siyeh.ig.style; +import com.intellij.codeInspection.CleanupLocalInspectionTool; import com.intellij.codeInspection.ProblemDescriptor; import com.intellij.openapi.project.Project; import com.intellij.psi.*; @@ -29,7 +30,7 @@ import java.util.Arrays; import java.util.HashSet; import java.util.Set; -public class UnnecessaryInterfaceModifierInspection extends BaseInspection { +public class UnnecessaryInterfaceModifierInspection extends BaseInspection implements CleanupLocalInspectionTool{ private static final Set INTERFACE_REDUNDANT_MODIFIERS = new HashSet(Arrays.asList(PsiModifier.ABSTRACT, PsiModifier.STATIC)); diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryParenthesesInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryParenthesesInspection.java index 16dcce5c564d..d9c69901e528 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryParenthesesInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryParenthesesInspection.java @@ -15,6 +15,7 @@ */ package com.siyeh.ig.style; +import com.intellij.codeInspection.CleanupLocalInspectionTool; import com.intellij.codeInspection.ProblemDescriptor; import com.intellij.codeInspection.ui.MultipleCheckboxOptionsPanel; import com.intellij.openapi.project.Project; @@ -28,7 +29,7 @@ import org.jetbrains.annotations.NotNull; import javax.swing.*; -public class UnnecessaryParenthesesInspection extends BaseInspection { +public class UnnecessaryParenthesesInspection extends BaseInspection implements CleanupLocalInspectionTool { @SuppressWarnings({"PublicField"}) public boolean ignoreClarifyingParentheses = false; diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryQualifierForThisInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryQualifierForThisInspection.java index d120d66f1db1..7e97eb601b2e 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryQualifierForThisInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryQualifierForThisInspection.java @@ -15,6 +15,7 @@ */ package com.siyeh.ig.style; +import com.intellij.codeInspection.CleanupLocalInspectionTool; import com.intellij.codeInspection.ProblemDescriptor; import com.intellij.codeInspection.ProblemHighlightType; import com.intellij.openapi.project.Project; @@ -28,8 +29,7 @@ import com.siyeh.ig.PsiReplacementUtil; import com.siyeh.ig.psiutils.ClassUtils; import org.jetbrains.annotations.NotNull; -public class UnnecessaryQualifierForThisInspection - extends BaseInspection { +public class UnnecessaryQualifierForThisInspection extends BaseInspection implements CleanupLocalInspectionTool { @Override @NotNull diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessarySemicolonInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessarySemicolonInspection.java index 5c014906557f..c1a75887c6aa 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessarySemicolonInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessarySemicolonInspection.java @@ -15,6 +15,7 @@ */ package com.siyeh.ig.style; +import com.intellij.codeInspection.CleanupLocalInspectionTool; import com.intellij.codeInspection.ProblemDescriptor; import com.intellij.openapi.project.Project; import com.intellij.psi.*; @@ -29,7 +30,7 @@ import com.siyeh.ig.InspectionGadgetsFix; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public class UnnecessarySemicolonInspection extends BaseInspection { +public class UnnecessarySemicolonInspection extends BaseInspection implements CleanupLocalInspectionTool { @Override @NotNull diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessarySuperConstructorInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessarySuperConstructorInspection.java index 83c70a19f11f..38d8bca7d3b1 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessarySuperConstructorInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessarySuperConstructorInspection.java @@ -15,6 +15,7 @@ */ package com.siyeh.ig.style; +import com.intellij.codeInspection.CleanupLocalInspectionTool; import com.intellij.codeInspection.ProblemDescriptor; import com.intellij.codeInspection.ProblemHighlightType; import com.intellij.openapi.project.Project; @@ -26,8 +27,7 @@ import com.siyeh.ig.BaseInspectionVisitor; import com.siyeh.ig.InspectionGadgetsFix; import org.jetbrains.annotations.NotNull; -public class UnnecessarySuperConstructorInspection - extends BaseInspection { +public class UnnecessarySuperConstructorInspection extends BaseInspection implements CleanupLocalInspectionTool { @Override @NotNull diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessarySuperQualifierInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessarySuperQualifierInspection.java index fea9d878f9de..e311b54ccc81 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessarySuperQualifierInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessarySuperQualifierInspection.java @@ -15,6 +15,7 @@ */ package com.siyeh.ig.style; +import com.intellij.codeInspection.CleanupLocalInspectionTool; import com.intellij.codeInspection.ProblemDescriptor; import com.intellij.codeInspection.ProblemHighlightType; import com.intellij.openapi.project.Project; @@ -29,7 +30,7 @@ import org.jetbrains.annotations.Nls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public class UnnecessarySuperQualifierInspection extends BaseInspection { +public class UnnecessarySuperQualifierInspection extends BaseInspection implements CleanupLocalInspectionTool { @Override @Nls diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryThisInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryThisInspection.java index 72ad69a54dcd..aa2d3ea2fce1 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryThisInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryThisInspection.java @@ -15,6 +15,7 @@ */ package com.siyeh.ig.style; +import com.intellij.codeInspection.CleanupLocalInspectionTool; import com.intellij.codeInspection.ProblemDescriptor; import com.intellij.codeInspection.ProblemHighlightType; import com.intellij.codeInspection.ui.SingleCheckboxOptionsPanel; @@ -34,7 +35,7 @@ import org.jetbrains.annotations.Nullable; import javax.swing.*; -public class UnnecessaryThisInspection extends BaseInspection { +public class UnnecessaryThisInspection extends BaseInspection implements CleanupLocalInspectionTool { @SuppressWarnings("PublicField") public boolean ignoreAssignments = false; diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryToStringCallInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryToStringCallInspection.java index 6e8280194ec8..82014a4dd617 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryToStringCallInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessaryToStringCallInspection.java @@ -15,6 +15,7 @@ */ package com.siyeh.ig.style; +import com.intellij.codeInspection.CleanupLocalInspectionTool; import com.intellij.codeInspection.ProblemDescriptor; import com.intellij.openapi.project.Project; import com.intellij.psi.*; @@ -30,7 +31,7 @@ import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public class UnnecessaryToStringCallInspection extends BaseInspection { +public class UnnecessaryToStringCallInspection extends BaseInspection implements CleanupLocalInspectionTool { @Override @Nls diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessaryFullyQualifiedNameInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessaryFullyQualifiedNameInspection.java index 07cb79af2d9d..e79f9df5fa7d 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessaryFullyQualifiedNameInspection.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessaryFullyQualifiedNameInspection.java @@ -15,6 +15,7 @@ */ package com.siyeh.ig.style; +import com.intellij.codeInspection.CleanupLocalInspectionTool; import com.intellij.codeInspection.ProblemDescriptor; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.project.Project; @@ -42,7 +43,7 @@ import java.util.List; /** * @see com.siyeh.ipp.fqnames.ReplaceFullyQualifiedNameWithImportIntention */ -public class UnnecessaryFullyQualifiedNameInspection extends BaseInspection { +public class UnnecessaryFullyQualifiedNameInspection extends BaseInspection implements CleanupLocalInspectionTool { @SuppressWarnings("PublicField") public boolean m_ignoreJavadoc = false; // left here to prevent changes to project files. diff --git a/resources/src/idea/RichPlatformActions.xml b/resources/src/idea/RichPlatformActions.xml index a92ea7c16461..0822f3c29e6c 100644 --- a/resources/src/idea/RichPlatformActions.xml +++ b/resources/src/idea/RichPlatformActions.xml @@ -87,6 +87,7 @@ +