mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
PY-13484 Allow to extract constant from parameter default value
This commit is contained in:
+6
@@ -24,6 +24,7 @@ import com.jetbrains.python.codeInsight.controlflow.ScopeOwner;
|
||||
import com.jetbrains.python.codeInsight.imports.AddImportHelper;
|
||||
import com.jetbrains.python.psi.PyExpression;
|
||||
import com.jetbrains.python.psi.PyFile;
|
||||
import com.jetbrains.python.psi.PyParameterList;
|
||||
import com.jetbrains.python.refactoring.PyReplaceExpressionUtil;
|
||||
import com.jetbrains.python.refactoring.introduce.IntroduceHandler;
|
||||
import com.jetbrains.python.refactoring.introduce.IntroduceOperation;
|
||||
@@ -65,6 +66,11 @@ public class PyIntroduceConstantHandler extends IntroduceHandler {
|
||||
return names;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isValidIntroduceContext(PsiElement element) {
|
||||
return super.isValidIntroduceContext(element) || PsiTreeUtil.getParentOfType(element, PyParameterList.class) != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getHelpId() {
|
||||
return "python.reference.introduceConstant";
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
a = 1 + 2
|
||||
|
||||
|
||||
def func(x=a + 3):
|
||||
pass
|
||||
@@ -0,0 +1,2 @@
|
||||
def func(x=<selection>1 + 2</selection> + 3):
|
||||
pass
|
||||
@@ -51,7 +51,7 @@ public class PyIntroduceConstantTest extends PyIntroduceTestCase {
|
||||
public void testSuggestUniqueNames() { // PY-4409
|
||||
doTestSuggestions(PyExpression.class, "S1");
|
||||
}
|
||||
|
||||
|
||||
public void testSuggestUniqueNamesGlobalScope() { // PY-4409
|
||||
doTestSuggestions(PyExpression.class, "S1");
|
||||
}
|
||||
@@ -60,6 +60,11 @@ public class PyIntroduceConstantTest extends PyIntroduceTestCase {
|
||||
doTestInplace(null);
|
||||
}
|
||||
|
||||
// PY-13484
|
||||
public void testFromParameterDefaultValue() {
|
||||
doTest();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getTestDataPath() {
|
||||
return super.getTestDataPath() + "/refactoring/introduceConstant";
|
||||
|
||||
Reference in New Issue
Block a user