fixed PY-9260 Unwrap/Remove action is not available inside statement with caret on indented space

This commit is contained in:
Ekaterina Tuzova
2013-03-26 15:48:17 +04:00
parent 1fa5b3bfd6
commit e2da5031c7
4 changed files with 17 additions and 1 deletions
@@ -1177,7 +1177,7 @@ public class PyUtil {
}
@Nullable
public static PsiElement findNonWhitespaceAtOffset(PsiFile psiFile, int caretOffset) {
public static PsiElement findPrevNonWhitespaceAtOffset(PsiFile psiFile, int caretOffset) {
PsiElement element = psiFile.findElementAt(caretOffset);
if (element == null) {
return null;
@@ -1195,6 +1195,14 @@ public class PyUtil {
return element instanceof PsiWhiteSpace ? null : element;
}
@Nullable
public static PsiElement findNonWhitespaceAtOffset(PsiFile psiFile, int caretOffset) {
PsiElement element = findNextNonWhitespaceAtOffset(psiFile, caretOffset);
if (element == null)
element = findPrevNonWhitespaceAtOffset(psiFile, caretOffset);
return element;
}
@Nullable
public static PsiElement findNextNonWhitespaceAtOffset(@NotNull final PsiFile psiFile, int caretOffset) {
PsiElement element = psiFile.findElementAt(caretOffset);
@@ -0,0 +1,2 @@
print 1
print 2
@@ -0,0 +1,4 @@
if True:
<caret> print 1
print 2
@@ -50,6 +50,8 @@ public class PyUnwrapperTest extends PyTestCase {
public void testIfInElifBranchUnwrap() throws Throwable {doNegativeTest(PyBundle.message("unwrap.if"));}
public void testWhitespaceAtCaretUnwrap() throws Throwable {doTest();}
private void doTest() {
doTest(0);
}