mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-18 20:41:22 +07:00
Migrate ReplaceFunctionWithSetLiteralQuickFix and ReplaceListComprehensionsQuickFix to ModCommand
PY-65297 GitOrigin-RevId: c5cd524b2c845f45267fa2820d0a4793c132f403
This commit is contained in:
committed by
intellij-monorepo-bot
parent
2fffdde734
commit
c90238e42d
@@ -15,8 +15,8 @@
|
||||
*/
|
||||
package com.jetbrains.python.inspections.quickfix;
|
||||
|
||||
import com.intellij.codeInspection.LocalQuickFix;
|
||||
import com.intellij.codeInspection.ProblemDescriptor;
|
||||
import com.intellij.modcommand.ModPsiUpdater;
|
||||
import com.intellij.modcommand.PsiUpdateModCommandQuickFix;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.jetbrains.python.PyPsiBundle;
|
||||
@@ -29,7 +29,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
* Quick Fix to replace function call of built-in function "set" with
|
||||
* set literal if applicable
|
||||
*/
|
||||
public class ReplaceFunctionWithSetLiteralQuickFix implements LocalQuickFix {
|
||||
public class ReplaceFunctionWithSetLiteralQuickFix extends PsiUpdateModCommandQuickFix {
|
||||
@Override
|
||||
@NotNull
|
||||
public String getFamilyName() {
|
||||
@@ -37,10 +37,9 @@ public class ReplaceFunctionWithSetLiteralQuickFix implements LocalQuickFix {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void applyFix(@NotNull Project project, @NotNull ProblemDescriptor descriptor) {
|
||||
PyElement[] elements = PySetFunctionToLiteralInspection.getSetCallArguments((PyCallExpression)descriptor.getPsiElement());
|
||||
public void applyFix(@NotNull Project project, @NotNull PsiElement element, @NotNull ModPsiUpdater updater) {
|
||||
PyElement[] elements = PySetFunctionToLiteralInspection.getSetCallArguments((PyCallExpression)element);
|
||||
PyElementGenerator elementGenerator = PyElementGenerator.getInstance(project);
|
||||
PsiElement functionCall = descriptor.getPsiElement();
|
||||
StringBuilder str = new StringBuilder("{");
|
||||
for (int i = 0; i != elements.length; ++i) {
|
||||
PyElement e = elements[i];
|
||||
@@ -49,7 +48,7 @@ public class ReplaceFunctionWithSetLiteralQuickFix implements LocalQuickFix {
|
||||
str.append(", ");
|
||||
}
|
||||
str.append("}");
|
||||
functionCall.replace(elementGenerator.createFromText(LanguageLevel.forElement(functionCall), PyExpressionStatement.class,
|
||||
element.replace(elementGenerator.createFromText(LanguageLevel.forElement(element), PyExpressionStatement.class,
|
||||
str.toString()).getExpression());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,8 +15,9 @@
|
||||
*/
|
||||
package com.jetbrains.python.inspections.quickfix;
|
||||
|
||||
import com.intellij.codeInspection.LocalQuickFix;
|
||||
import com.intellij.codeInspection.ProblemDescriptor;
|
||||
import com.intellij.modcommand.ModPsiUpdater;
|
||||
import com.intellij.modcommand.PsiUpdateModCommandQuickFix;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.jetbrains.python.PyPsiBundle;
|
||||
@@ -26,7 +27,7 @@ import com.jetbrains.python.psi.PyExpressionStatement;
|
||||
import com.jetbrains.python.psi.PyTupleExpression;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ReplaceListComprehensionsQuickFix implements LocalQuickFix {
|
||||
public class ReplaceListComprehensionsQuickFix extends PsiUpdateModCommandQuickFix {
|
||||
@NotNull
|
||||
@Override
|
||||
public String getFamilyName() {
|
||||
@@ -34,13 +35,12 @@ public class ReplaceListComprehensionsQuickFix implements LocalQuickFix {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void applyFix(@NotNull Project project, @NotNull ProblemDescriptor descriptor) {
|
||||
PsiElement expression = descriptor.getPsiElement();
|
||||
if (expression instanceof PyTupleExpression) {
|
||||
public void applyFix(@NotNull Project project, @NotNull PsiElement element, @NotNull ModPsiUpdater updater) {
|
||||
if (element instanceof PyTupleExpression) {
|
||||
PyElementGenerator elementGenerator = PyElementGenerator.getInstance(project);
|
||||
PyExpressionStatement statement = elementGenerator.createFromText(LanguageLevel.forElement(expression), PyExpressionStatement.class,
|
||||
"(" + expression.getText() + ")");
|
||||
expression.replace(statement.getExpression());
|
||||
PyExpressionStatement statement = elementGenerator.createFromText(LanguageLevel.forElement(element), PyExpressionStatement.class,
|
||||
"(" + element.getText() + ")");
|
||||
element.replace(statement.getExpression());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user