mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-13 09:19:13 +07:00
change method signature from usage: fix reverse order presentation text (IDEA-97218)
This commit is contained in:
+11
-6
@@ -17,6 +17,7 @@ package com.intellij.codeInsight.daemon.impl.quickfix;
|
||||
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.JavaCodeStyleManager;
|
||||
import com.intellij.psi.util.TypeConversionUtil;
|
||||
@@ -24,7 +25,10 @@ import com.intellij.refactoring.changeSignature.ParameterInfoImpl;
|
||||
import com.intellij.refactoring.util.RefactoringUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* User: anna
|
||||
@@ -74,9 +78,9 @@ public class ChangeMethodSignatureFromUsageReverseOrderFix extends ChangeMethodS
|
||||
}
|
||||
int ei = expressions.length - 1;
|
||||
int pi = parameters.length - 1;
|
||||
PsiParameter varargParam = targetMethod.isVarArgs() ? parameters[parameters.length - 1] : null;
|
||||
final PsiParameter varargParam = targetMethod.isVarArgs() ? parameters[parameters.length - 1] : null;
|
||||
final List<String> params = new ArrayList<String>();
|
||||
while (ei >= 0 || pi >= 0) {
|
||||
if (buf.length() > 0) buf.append(", ");
|
||||
PsiExpression expression = ei >=0 ? expressions[ei] : null;
|
||||
PsiParameter parameter = pi >= 0 ? parameters[pi] : null;
|
||||
PsiType paramType = parameter == null ? null : substitutor.substitute(parameter.getType());
|
||||
@@ -85,7 +89,7 @@ public class ChangeMethodSignatureFromUsageReverseOrderFix extends ChangeMethodS
|
||||
if (parameterAssignable) {
|
||||
final PsiType type = parameter.getType();
|
||||
result.add(0, new ParameterInfoImpl(pi, parameter.getName(), type));
|
||||
buf.append(escapePresentableType(type));
|
||||
params.add(0, escapePresentableType(type));
|
||||
pi--;
|
||||
ei--;
|
||||
}
|
||||
@@ -94,7 +98,7 @@ public class ChangeMethodSignatureFromUsageReverseOrderFix extends ChangeMethodS
|
||||
assert varargParam != null;
|
||||
final PsiType type = varargParam.getType();
|
||||
result.add(0, new ParameterInfoImpl(pi, varargParam.getName(), type));
|
||||
buf.append(escapePresentableType(type));
|
||||
params.add(0, escapePresentableType(type));
|
||||
}
|
||||
pi--;
|
||||
ei--;
|
||||
@@ -108,11 +112,12 @@ public class ChangeMethodSignatureFromUsageReverseOrderFix extends ChangeMethodS
|
||||
final ParameterInfoImpl newParameterInfo = new ParameterInfoImpl(-1, name, exprType, expression.getText().replace('\n', ' '));
|
||||
result.add(0, newParameterInfo);
|
||||
newParams.add(newParameterInfo);
|
||||
buf.append("<b>").append(escapePresentableType(exprType)).append("</b>");
|
||||
params.add(0, "<b>" + escapePresentableType(exprType) + "</b>");
|
||||
ei--;
|
||||
}
|
||||
}
|
||||
if (result.size() != expressions.length && varargParam == null) return false;
|
||||
buf.append(StringUtil.join(params, ", "));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
// "<html> Change signature of foo(<b>ArrayList<Integer></b>, <b>ArrayList<Integer></b>, ArrayList<Integer>, ArrayList<Integer>)</html>" "true"
|
||||
import java.util.*;
|
||||
|
||||
class Test {
|
||||
|
||||
public void foo(ArrayList<Integer> integerArrayList, ArrayList<Integer> integers, ArrayList<Integer> l, ArrayList<Integer> l1) {}
|
||||
|
||||
{
|
||||
foo(new ArrayList<Integer>(), new ArrayList<Integer>(), new ArrayList<Integer>(), new ArrayList<Integer>());
|
||||
}
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
// "<html> Change signature of foo(<b>ArrayList<Integer></b>, <b>ArrayList<Integer></b>, ArrayList<Integer>, ArrayList<Integer>)</html>" "true"
|
||||
import java.util.*;
|
||||
|
||||
class Test {
|
||||
|
||||
public void foo(ArrayList<Integer> l, ArrayList<Integer> l1) {}
|
||||
|
||||
{
|
||||
foo(new <caret>ArrayList<Integer>(), new ArrayList<Integer>(), new ArrayList<Integer>(), new ArrayList<Integer>());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user