mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
added searching if statement in children
This commit is contained in:
@@ -123,6 +123,7 @@ INTN.flip.$0.to.$1=Flip ''{0}'' to ''{1}''
|
||||
INTN.convert.string=Convert single-quoted string to double-quoted
|
||||
|
||||
INTN.join.if=Join if's
|
||||
INTN.join.if.text=Join two if's
|
||||
|
||||
# Conflict checker
|
||||
CONFLICT.name.$0.obscured=Name ''{0}'' obscured by local definitions
|
||||
|
||||
@@ -24,18 +24,36 @@ public class PyJoinIfIntention extends BaseIntentionAction {
|
||||
|
||||
@NotNull
|
||||
public String getText() {
|
||||
return PyBundle.message("INTN.join.if");
|
||||
return PyBundle.message("INTN.join.if.text");
|
||||
}
|
||||
|
||||
public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) {
|
||||
PyIfStatement expression =
|
||||
PsiTreeUtil.getParentOfType(file.findElementAt(editor.getCaretModel().getOffset()), PyIfStatement.class);
|
||||
while (expression != null) {
|
||||
PyStatement firstStatement = expression.getIfPart().getStatementList().getStatements()[0];
|
||||
if (firstStatement instanceof PyIfStatement) {
|
||||
return true;
|
||||
PyStatementList stList = expression.getIfPart().getStatementList();
|
||||
if (stList != null) {
|
||||
if (stList.getStatements().length != 0) {
|
||||
PyStatement firstStatement = stList.getStatements()[0];
|
||||
if (firstStatement instanceof PyIfStatement) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
expression = PsiTreeUtil.getParentOfType(file.findElementAt(editor.getCaretModel().getOffset()), PyIfStatement.class);
|
||||
expression = PsiTreeUtil.getParentOfType(expression, PyIfStatement.class);
|
||||
}
|
||||
expression = PsiTreeUtil.getParentOfType(file.findElementAt(editor.getCaretModel().getOffset()), PyIfStatement.class);
|
||||
while (expression != null) {
|
||||
PyStatementList stList = expression.getIfPart().getStatementList();
|
||||
if (stList != null) {
|
||||
if (stList.getStatements().length != 0) {
|
||||
PyStatement firstStatement = stList.getStatements()[0];
|
||||
if (firstStatement instanceof PyIfStatement) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
expression = PsiTreeUtil.getChildOfType(expression, PyIfStatement.class);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -50,7 +68,7 @@ public class PyJoinIfIntention extends BaseIntentionAction {
|
||||
if (firstStatement instanceof PyIfStatement) {
|
||||
break;
|
||||
}
|
||||
expression = PsiTreeUtil.getParentOfType(file.findElementAt(editor.getCaretModel().getOffset()), PyIfStatement.class);
|
||||
expression = PsiTreeUtil.getParentOfType(expression, PyIfStatement.class);
|
||||
}
|
||||
if (firstStatement != null && firstStatement instanceof PyIfStatement) {
|
||||
PyExpression condition = ((PyIfStatement)firstStatement).getIfPart().getCondition();
|
||||
|
||||
@@ -110,6 +110,6 @@ public class PyIntentionTest extends PyLightFixtureTestCase {
|
||||
}
|
||||
|
||||
public void testJoinIf() {
|
||||
doTest(PyBundle.message("INTN.join.if"));
|
||||
doTest(PyBundle.message("INTN.join.if.text"));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user