mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-19 04:51:24 +07:00
IDEA-42131
This commit is contained in:
@@ -90,7 +90,7 @@ public class GenerateConstructorHandler extends GenerateMembersHandlerBase {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (array.size() > 0){
|
||||
if (!array.isEmpty()){
|
||||
if (array.size() == 1){
|
||||
baseConstructors = new PsiMethod[]{array.get(0)};
|
||||
}
|
||||
@@ -105,7 +105,7 @@ public class GenerateConstructorHandler extends GenerateMembersHandlerBase {
|
||||
chooser.setTitle(CodeInsightBundle.message("generate.constructor.super.constructor.chooser.title"));
|
||||
chooser.show();
|
||||
List<PsiMethodMember> elements = chooser.getSelectedElements();
|
||||
if (elements == null || elements.size() == 0) return null;
|
||||
if (elements == null || elements.isEmpty()) return null;
|
||||
baseConstructors = new PsiMethod[elements.size()];
|
||||
for(int i = 0; i < elements.size(); i++){
|
||||
final ClassMember member = elements.get(i);
|
||||
@@ -139,15 +139,15 @@ public class GenerateConstructorHandler extends GenerateMembersHandlerBase {
|
||||
|
||||
@NotNull
|
||||
protected List<? extends GenerationInfo> generateMemberPrototypes(PsiClass aClass, ClassMember[] members) throws IncorrectOperationException {
|
||||
ArrayList<PsiMethod> baseConstructors = new ArrayList<PsiMethod>();
|
||||
ArrayList<PsiElement> fieldsVector = new ArrayList<PsiElement>();
|
||||
List<PsiMethod> baseConstructors = new ArrayList<PsiMethod>();
|
||||
List<PsiField> fieldsVector = new ArrayList<PsiField>();
|
||||
for (ClassMember member1 : members) {
|
||||
PsiElement member = ((PsiElementClassMember)member1).getElement();
|
||||
if (member instanceof PsiMethod) {
|
||||
baseConstructors.add((PsiMethod)member);
|
||||
}
|
||||
else {
|
||||
fieldsVector.add(member);
|
||||
fieldsVector.add((PsiField)member);
|
||||
}
|
||||
}
|
||||
PsiField[] fields = fieldsVector.toArray(new PsiField[fieldsVector.size()]);
|
||||
@@ -193,8 +193,8 @@ public class GenerateConstructorHandler extends GenerateMembersHandlerBase {
|
||||
}
|
||||
}
|
||||
|
||||
@NonNls StringBuffer buffer = new StringBuffer();
|
||||
buffer.append("{\n");
|
||||
@NonNls StringBuilder body = new StringBuilder();
|
||||
body.append("{\n");
|
||||
|
||||
if (baseConstructor != null){
|
||||
PsiClass superClass = aClass.getSuperClass();
|
||||
@@ -209,15 +209,15 @@ public class GenerateConstructorHandler extends GenerateMembersHandlerBase {
|
||||
constructor.getParameterList().add(parm);
|
||||
}
|
||||
if (parms.length > 0){
|
||||
buffer.append("super(");
|
||||
body.append("super(");
|
||||
for(int j = 0; j < parms.length; j++) {
|
||||
PsiParameter parm = parms[j];
|
||||
if (j > 0){
|
||||
buffer.append(",");
|
||||
body.append(",");
|
||||
}
|
||||
buffer.append(parm.getName());
|
||||
body.append(parm.getName());
|
||||
}
|
||||
buffer.append(");\n");
|
||||
body.append(");\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -228,6 +228,7 @@ public class GenerateConstructorHandler extends GenerateMembersHandlerBase {
|
||||
String fieldName = field.getName();
|
||||
String name = javaStyle.variableNameToPropertyName(fieldName, VariableKind.FIELD);
|
||||
String parmName = javaStyle.propertyNameToVariableName(name, VariableKind.PARAMETER);
|
||||
parmName = javaStyle.suggestUniqueVariableName(parmName, constructor, true);
|
||||
PsiParameter parm = factory.createParameter(parmName, field.getType());
|
||||
|
||||
|
||||
@@ -238,17 +239,17 @@ public class GenerateConstructorHandler extends GenerateMembersHandlerBase {
|
||||
|
||||
constructor.getParameterList().add(parm);
|
||||
if (fieldName.equals(parmName)) {
|
||||
buffer.append("this.");
|
||||
body.append("this.");
|
||||
}
|
||||
buffer.append(fieldName);
|
||||
buffer.append("=");
|
||||
buffer.append(parmName);
|
||||
buffer.append(";\n");
|
||||
body.append(fieldName);
|
||||
body.append("=");
|
||||
body.append(parmName);
|
||||
body.append(";\n");
|
||||
}
|
||||
|
||||
buffer.append("}");
|
||||
PsiCodeBlock body = factory.createCodeBlockFromText(buffer.toString(), null);
|
||||
constructor.getBody().replace(body);
|
||||
body.append("}");
|
||||
PsiCodeBlock bodyBlock = factory.createCodeBlockFromText(body.toString(), null);
|
||||
constructor.getBody().replace(bodyBlock);
|
||||
constructor = (PsiMethod)codeStyleManager.reformat(constructor);
|
||||
return constructor;
|
||||
}
|
||||
|
||||
@@ -169,7 +169,7 @@ public abstract class GenerateMembersHandlerBase implements CodeInsightActionHan
|
||||
}
|
||||
|
||||
@Nullable
|
||||
protected final ClassMember[] chooseMembers(ClassMember[] members, boolean allowEmptySelection, boolean copyJavadocCheckbox, Project project) {
|
||||
protected ClassMember[] chooseMembers(ClassMember[] members, boolean allowEmptySelection, boolean copyJavadocCheckbox, Project project) {
|
||||
MemberChooser<ClassMember> chooser = new MemberChooser<ClassMember>(members, allowEmptySelection, true, project);
|
||||
chooser.setTitle(myChooserTitle);
|
||||
chooser.setCopyJavadocVisible(copyJavadocCheckbox);
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
public abstract class Test {
|
||||
protected Test() {<caret>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
public class Foo {
|
||||
public Foo() {<caret>
|
||||
}
|
||||
// Method comment
|
||||
|
||||
public String getSomeGetter() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
public class Foo {
|
||||
|
||||
public Foo() {<caret>
|
||||
}
|
||||
|
||||
// Method comment
|
||||
|
||||
public String getSomeGetter() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
class A
|
||||
{
|
||||
A() {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
class Test {
|
||||
Test() {<caret>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
class Test {
|
||||
private class Foo {
|
||||
private Foo() {<caret>
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
public class Clas extends Clas2{
|
||||
int foo;
|
||||
|
||||
public Clas(int foo, int foo1) {<caret>
|
||||
super(foo);
|
||||
foo = foo1;
|
||||
}
|
||||
}
|
||||
|
||||
class Clas2 {
|
||||
int foo;
|
||||
|
||||
Clas2(int foo) {
|
||||
this.foo = foo;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
public abstract class Test {
|
||||
<caret>
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
public class Foo {
|
||||
<caret>
|
||||
|
||||
// Method comment
|
||||
|
||||
public String getSomeGetter() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
public class Foo {
|
||||
|
||||
<caret>
|
||||
|
||||
// Method comment
|
||||
|
||||
public String getSomeGetter() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
class A
|
||||
{<caret>
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
class Test {
|
||||
<caret>
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
class Test {
|
||||
private class Foo {
|
||||
<caret>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
public class Clas extends Clas2{
|
||||
int foo;
|
||||
<caret>
|
||||
}
|
||||
|
||||
class Clas2 {
|
||||
int foo;
|
||||
|
||||
Clas2(int foo) {
|
||||
this.foo = foo;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
* @author ven
|
||||
*/
|
||||
package com.intellij.codeInsight;
|
||||
|
||||
import com.intellij.codeInsight.generation.ClassMember;
|
||||
import com.intellij.codeInsight.generation.GenerateConstructorHandler;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettings;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
|
||||
import com.intellij.testFramework.LightCodeInsightTestCase;
|
||||
|
||||
public class GenerateConstructorTest extends LightCodeInsightTestCase {
|
||||
public void testAbstractClass() throws Exception { doTest(); }
|
||||
public void testPackageLocalClass() throws Exception { doTest(); }
|
||||
public void testPrivateClass() throws Exception { doTest(); }
|
||||
public void testBoundComments() throws Exception { doTest(); }
|
||||
public void testSameNamedFields() throws Exception { doTest(); }
|
||||
|
||||
public void testImmediatelyAfterRBrace() throws Exception { // IDEADEV-28811
|
||||
final CodeStyleSettings settings = CodeStyleSettingsManager.getInstance(getProject()).getCurrentSettings();
|
||||
final int old = settings.CLASS_BRACE_STYLE;
|
||||
settings.CLASS_BRACE_STYLE = CodeStyleSettings.NEXT_LINE;
|
||||
try {
|
||||
doTest();
|
||||
}
|
||||
finally {
|
||||
settings.CLASS_BRACE_STYLE = old;
|
||||
}
|
||||
}
|
||||
|
||||
public void testBoundCommentsKeepsBlankLine() throws Exception {
|
||||
CodeStyleSettingsManager styleSettingsManager = CodeStyleSettingsManager.getInstance(getProject());
|
||||
final CodeStyleSettings settings = styleSettingsManager.getCurrentSettings();
|
||||
settings.BLANK_LINES_AFTER_CLASS_HEADER = 1;
|
||||
doTest();
|
||||
}
|
||||
|
||||
private void doTest() throws Exception {
|
||||
String name = getTestName(false);
|
||||
configureByFile("/codeInsight/generateConstructor/before" +
|
||||
name +
|
||||
".java");
|
||||
new GenerateConstructorHandler(){
|
||||
@Override
|
||||
protected ClassMember[] chooseMembers(ClassMember[] members,
|
||||
boolean allowEmptySelection,
|
||||
boolean copyJavadocCheckbox,
|
||||
Project project) {
|
||||
return members;
|
||||
}
|
||||
}.invoke(getProject(), getEditor(), getFile());
|
||||
checkResultByFile("/codeInsight/generateConstructor/after" +
|
||||
name +
|
||||
".java");
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user