mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IG: add option to ignore all primitive arrays (IDEA-170812)
This commit is contained in:
+1
@@ -1855,6 +1855,7 @@ arrays.hash.code.quickfix=Replace with 'Arrays.hashCode()'
|
||||
method.can.be.variable.arity.method.display.name=Method can be varargs method
|
||||
method.can.be.variable.arity.method.problem.descriptor=<code>#ref()</code> can be converted to varargs method #loc
|
||||
method.can.be.variable.arity.method.ignore.byte.short.option=Ignore parameters with type byte[] or short[]
|
||||
method.can.be.variable.arity.method.ignore.all.primitive.arrays.option=Ignore all primitive array types
|
||||
method.can.be.variable.arity.method.ignore.multiple.arrays.option=Ignore methods with multiple array parameters
|
||||
method.can.be.variable.arity.method.ignore.multidimensional.arrays.option=Ignore multidimensional array parameters
|
||||
convert.to.variable.arity.method.quickfix=Convert to varargs method
|
||||
|
||||
+16
-12
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2011-2016 Bas Leijdekkers
|
||||
* Copyright 2011-2017 Bas Leijdekkers
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -19,7 +19,6 @@ import com.intellij.codeInsight.NullableNotNullManager;
|
||||
import com.intellij.codeInspection.ui.MultipleCheckboxOptionsPanel;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import com.siyeh.InspectionGadgetsBundle;
|
||||
import com.siyeh.ig.BaseInspection;
|
||||
import com.siyeh.ig.BaseInspectionVisitor;
|
||||
import com.siyeh.ig.InspectionGadgetsFix;
|
||||
@@ -31,11 +30,15 @@ import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
import static com.siyeh.InspectionGadgetsBundle.message;
|
||||
|
||||
public class MethodCanBeVariableArityMethodInspection extends BaseInspection {
|
||||
|
||||
@SuppressWarnings({"PublicField"})
|
||||
public boolean ignoreByteAndShortArrayParameters = false;
|
||||
|
||||
public boolean ignoreAllPrimitiveArrayParameters = false;
|
||||
|
||||
@SuppressWarnings("PublicField")
|
||||
public boolean ignoreOverridingMethods = false;
|
||||
|
||||
@@ -52,26 +55,24 @@ public class MethodCanBeVariableArityMethodInspection extends BaseInspection {
|
||||
@NotNull
|
||||
@Override
|
||||
public String getDisplayName() {
|
||||
return InspectionGadgetsBundle.message("method.can.be.variable.arity.method.display.name");
|
||||
return message("method.can.be.variable.arity.method.display.name");
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
protected String buildErrorString(Object... infos) {
|
||||
return InspectionGadgetsBundle.message("method.can.be.variable.arity.method.problem.descriptor");
|
||||
return message("method.can.be.variable.arity.method.problem.descriptor");
|
||||
}
|
||||
|
||||
@Override
|
||||
public JComponent createOptionsPanel() {
|
||||
final MultipleCheckboxOptionsPanel panel = new MultipleCheckboxOptionsPanel(this);
|
||||
panel.addCheckbox(InspectionGadgetsBundle.message("method.can.be.variable.arity.method.ignore.byte.short.option"),
|
||||
"ignoreByteAndShortArrayParameters");
|
||||
panel.addCheckbox(InspectionGadgetsBundle.message("ignore.methods.overriding.super.method"), "ignoreOverridingMethods");
|
||||
panel.addCheckbox(InspectionGadgetsBundle.message("only.report.public.methods.option"), "onlyReportPublicMethods");
|
||||
panel.addCheckbox(InspectionGadgetsBundle.message("method.can.be.variable.arity.method.ignore.multiple.arrays.option"),
|
||||
"ignoreMultipleArrayParameters");
|
||||
panel.addCheckbox(InspectionGadgetsBundle.message("method.can.be.variable.arity.method.ignore.multidimensional.arrays.option"),
|
||||
"ignoreMultiDimensionalArrayParameters");
|
||||
final JCheckBox box = panel.addCheckboxEx(message("method.can.be.variable.arity.method.ignore.byte.short.option"), "ignoreByteAndShortArrayParameters");
|
||||
panel.addDependentCheckBox(message("method.can.be.variable.arity.method.ignore.all.primitive.arrays.option"), "ignoreAllPrimitiveArrayParameters", box);
|
||||
panel.addCheckbox(message("ignore.methods.overriding.super.method"), "ignoreOverridingMethods");
|
||||
panel.addCheckbox(message("only.report.public.methods.option"), "onlyReportPublicMethods");
|
||||
panel.addCheckbox(message("method.can.be.variable.arity.method.ignore.multiple.arrays.option"), "ignoreMultipleArrayParameters");
|
||||
panel.addCheckbox(message("method.can.be.variable.arity.method.ignore.multidimensional.arrays.option"), "ignoreMultiDimensionalArrayParameters");
|
||||
return panel;
|
||||
}
|
||||
|
||||
@@ -121,6 +122,9 @@ public class MethodCanBeVariableArityMethodInspection extends BaseInspection {
|
||||
if (PsiType.BYTE.equals(componentType) || PsiType.SHORT.equals(componentType)) {
|
||||
return;
|
||||
}
|
||||
if (ignoreAllPrimitiveArrayParameters && componentType instanceof PsiPrimitiveType) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (LibraryUtil.isOverrideOfLibraryMethod(method)) {
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user