mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
fixed PY-2984 Surround with try/except reformats entire file
This commit is contained in:
+6
-4
@@ -22,7 +22,6 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.codeStyle.CodeStyleManager;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.jetbrains.python.PyBundle;
|
||||
@@ -53,9 +52,10 @@ public class PyWithTryExceptSurrounder extends PyStatementSurrounder {
|
||||
|
||||
final PsiFile psiFile = parent.getContainingFile();
|
||||
final Document document = psiFile.getViewProvider().getDocument();
|
||||
final RangeMarker rangeMarker = document.createRangeMarker(tryStatement.getTextRange());
|
||||
final TextRange range = tryStatement.getTextRange();
|
||||
assert document != null;
|
||||
final RangeMarker rangeMarker = document.createRangeMarker(range);
|
||||
|
||||
CodeStyleManager.getInstance(project).reformat(psiFile);
|
||||
final PsiElement element = psiFile.findElementAt(rangeMarker.getStartOffset());
|
||||
tryStatement = PsiTreeUtil.getParentOfType(element, PyTryExceptStatement.class);
|
||||
if (tryStatement != null) {
|
||||
@@ -70,7 +70,9 @@ public class PyWithTryExceptSurrounder extends PyStatementSurrounder {
|
||||
|
||||
protected TextRange getResultRange(PyTryExceptStatement tryStatement) {
|
||||
final PyExceptPart part = tryStatement.getExceptParts()[0];
|
||||
return part.getStatementList().getTextRange();
|
||||
final PyStatementList list = part.getStatementList();
|
||||
assert list != null;
|
||||
return list.getTextRange();
|
||||
}
|
||||
|
||||
public String getTemplateDescription() {
|
||||
|
||||
+7
-1
@@ -17,6 +17,8 @@ package com.jetbrains.python.refactoring.surround.surrounders.statements;
|
||||
|
||||
import com.intellij.codeInsight.CodeInsightBundle;
|
||||
import com.intellij.openapi.util.TextRange;
|
||||
import com.jetbrains.python.psi.PyFinallyPart;
|
||||
import com.jetbrains.python.psi.PyStatementList;
|
||||
import com.jetbrains.python.psi.PyTryExceptStatement;
|
||||
|
||||
/**
|
||||
@@ -37,6 +39,10 @@ public class PyWithTryFinallySurrounder extends PyWithTryExceptSurrounder {
|
||||
|
||||
@Override
|
||||
protected TextRange getResultRange(PyTryExceptStatement tryStatement) {
|
||||
return tryStatement.getFinallyPart().getStatementList().getTextRange();
|
||||
final PyFinallyPart finallyPart = tryStatement.getFinallyPart();
|
||||
assert finallyPart != null;
|
||||
final PyStatementList statementList = finallyPart.getStatementList();
|
||||
assert statementList != null;
|
||||
return statementList.getTextRange();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
def foo():
|
||||
<selection>print "hello"</selection>
|
||||
pr<caret>int "hello"
|
||||
@@ -2,4 +2,4 @@ def foo():
|
||||
try:
|
||||
print "hello"
|
||||
except:
|
||||
<selection>pass</selection>
|
||||
<selection>pass</selection>
|
||||
|
||||
@@ -35,7 +35,7 @@ public class PySurroundWithTest extends PyTestCase {
|
||||
doTest(new PyWithWhileSurrounder());
|
||||
}
|
||||
|
||||
public void _testSurroundWithTryExcept() throws Exception {
|
||||
public void testSurroundWithTryExcept() throws Exception {
|
||||
doTest(new PyWithTryExceptSurrounder());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user