diff --git a/src/main/java/com/jetbrains/python/actions/PyCellExecuteAction.java b/src/main/java/com/jetbrains/python/actions/PyCellExecuteAction.java index 658e610..a9a2c52 100644 --- a/src/main/java/com/jetbrains/python/actions/PyCellExecuteAction.java +++ b/src/main/java/com/jetbrains/python/actions/PyCellExecuteAction.java @@ -42,48 +42,44 @@ private static void cellExecute(final AnActionEvent e, final Editor editor) { final int line = logicalPos.line; int start = 6666, end = 6666; - for (int i = 0; i > -666; --i) { + for (int i = 0; ; --i) { final int cline = line + i; - int offset = 666; - boolean outOfDoc = false; + int offset; try { offset = DocumentUtil.getFirstNonSpaceCharOffset(document, cline); start = offset; } catch (IndexOutOfBoundsException ex) { - outOfDoc = true; - } - PsiElement psiElement = null; - if (!outOfDoc) { - psiElement = psiFile.findElementAt(offset); - if (outOfDoc || !(psiElement.getNode().getElementType() instanceof PyElementType)) { - break; - } + break; } + final PsiElement psiElement = psiFile.findElementAt(offset); + final var elementType = psiElement.getNode().getElementType(); // System.out.println("i = " + i); // System.out.println("cline = " + cline); // System.out.println("psiElement = " + psiElement); +// System.out.println("psiElement.getNode() = " + psiElement.getNode()); +// System.out.println("elementType = " + elementType); + if (!((elementType instanceof PyElementType) || (psiElement.getNode() instanceof PsiWhiteSpace))) + break; } // System.out.println("forward"); - for (int i = 0; i < 666; ++i) { + for (int i = 0; ; ++i) { final int cline = line + i; - int offset = 666; - boolean outOfDoc = false; + int offset; try { offset = DocumentUtil.getFirstNonSpaceCharOffset(document, cline); end = offset; } catch (IndexOutOfBoundsException ex) { - outOfDoc = true; - } - PsiElement psiElement = null; - if (!outOfDoc) { - psiElement = psiFile.findElementAt(offset); - if (outOfDoc || !(psiElement.getNode().getElementType() instanceof PyElementType)) { - break; - } + break; } + final PsiElement psiElement = psiFile.findElementAt(offset); + final var elementType = psiElement.getNode().getElementType(); // System.out.println("i = " + i); // System.out.println("cline = " + cline); // System.out.println("psiElement = " + psiElement); +// System.out.println("psiElement.getNode() = " + psiElement.getNode()); +// System.out.println("elementType = " + elementType); + if (!((elementType instanceof PyElementType) || (psiElement.getNode() instanceof PsiWhiteSpace))) + break; } { start = DocumentUtil.getLineEndOffset(start, document); diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml index 0e15606..7bbb7ae 100644 --- a/src/main/resources/META-INF/plugin.xml +++ b/src/main/resources/META-INF/plugin.xml @@ -6,7 +6,7 @@ python-smart-execute Python Smart Execute - 0.1.11 + 0.1.12 Guo Ci Teo