mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
fixed PY-4479 Add field to class: select created field for editing, not passed to constructor parameter
This commit is contained in:
@@ -758,7 +758,7 @@ public class PyUnresolvedReferencesInspection extends PyInspection {
|
||||
actions.add(new AddMethodQuickFix(refText, cls.getName(), true));
|
||||
}
|
||||
else if (!(reference instanceof PyOperatorReference)) {
|
||||
actions.add(new AddFieldQuickFix(refText, "None", type.getName()));
|
||||
actions.add(new AddFieldQuickFix(refText, "None", type.getName(), true));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -302,7 +302,7 @@ public class PyUnusedLocalInspectionVisitor extends PyInspectionVisitor {
|
||||
|
||||
final List<LocalQuickFix> fixes = new ArrayList<LocalQuickFix>();
|
||||
if (mayBeField) {
|
||||
fixes.add(new AddFieldQuickFix(name, name, containingClass.getName()));
|
||||
fixes.add(new AddFieldQuickFix(name, name, containingClass.getName(), false));
|
||||
}
|
||||
if (canRemove) {
|
||||
fixes.add(new PyRemoveParameterQuickFix());
|
||||
|
||||
@@ -55,11 +55,13 @@ public class AddFieldQuickFix implements LocalQuickFix {
|
||||
private final String myInitializer;
|
||||
private final String myClassName;
|
||||
private String myIdentifier;
|
||||
private boolean replaceInitializer = false;
|
||||
|
||||
public AddFieldQuickFix(@NotNull final String identifier, @NotNull final String initializer, final String className) {
|
||||
public AddFieldQuickFix(@NotNull final String identifier, @NotNull final String initializer, final String className, boolean replace) {
|
||||
myIdentifier = identifier;
|
||||
myInitializer = initializer;
|
||||
myClassName = className;
|
||||
replaceInitializer = replace;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@@ -128,8 +130,12 @@ public class AddFieldQuickFix implements LocalQuickFix {
|
||||
if (initStatement instanceof PyAssignmentStatement) {
|
||||
final TemplateBuilder builder = TemplateBuilderFactory.getInstance().createTemplateBuilder(initStatement);
|
||||
final PyExpression assignedValue = ((PyAssignmentStatement)initStatement).getAssignedValue();
|
||||
if (assignedValue != null) {
|
||||
builder.replaceElement(assignedValue, myInitializer);
|
||||
final PyExpression leftExpression = ((PyAssignmentStatement)initStatement).getLeftHandSideExpression();
|
||||
if (assignedValue != null && leftExpression != null) {
|
||||
if (replaceInitializer)
|
||||
builder.replaceElement(assignedValue, myInitializer);
|
||||
else
|
||||
builder.replaceElement(leftExpression.getLastChild(), myIdentifier);
|
||||
final VirtualFile virtualFile = file.getVirtualFile();
|
||||
if (virtualFile == null) return;
|
||||
final Editor editor = FileEditorManager.getInstance(file.getProject()).openTextEditor(
|
||||
|
||||
Reference in New Issue
Block a user