From 206d5dc8eba2b2b1c44c75458def717c7b788d28 Mon Sep 17 00:00:00 2001 From: Maxim Medvedev Date: Fri, 15 Apr 2011 12:01:16 +0400 Subject: [PATCH] IDEA-68098 Groovy: 'continue' & 'break' is not exist in completion. --- .../filters/control/BranchFilter.java | 29 +------------------ .../completion/GroovyCompletionTest.groovy | 9 ++++++ 2 files changed, 10 insertions(+), 28 deletions(-) diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/filters/control/BranchFilter.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/filters/control/BranchFilter.java index 66f3970264b0..074dab1eeee8 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/filters/control/BranchFilter.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/filters/control/BranchFilter.java @@ -19,11 +19,8 @@ package org.jetbrains.plugins.groovy.lang.completion.filters.control; import com.intellij.psi.PsiElement; import com.intellij.psi.filters.ElementFilter; import org.jetbrains.annotations.NonNls; -import org.jetbrains.plugins.groovy.lang.parser.GroovyElementTypes; import org.jetbrains.plugins.groovy.lang.psi.api.statements.GrForStatement; import org.jetbrains.plugins.groovy.lang.psi.api.statements.GrWhileStatement; -import org.jetbrains.plugins.groovy.lang.psi.api.statements.blocks.GrClosableBlock; -import org.jetbrains.plugins.groovy.lang.psi.api.statements.blocks.GrOpenBlock; import org.jetbrains.plugins.groovy.lang.psi.api.statements.clauses.GrCaseSection; import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrReferenceExpression; @@ -34,31 +31,7 @@ public class BranchFilter implements ElementFilter { public boolean isAcceptable(Object element, PsiElement context) { if (context.getParent() != null) { PsiElement parent = context.getParent(); - - if (parent instanceof GrReferenceExpression && - treeWalkUp(parent)) { - PsiElement superParent = parent.getParent(); - if ((superParent instanceof GrOpenBlock || - superParent instanceof GrCaseSection || - superParent instanceof GrClosableBlock)) { - return true; - } - - if (superParent instanceof GrWhileStatement) { - PsiElement elem = parent.getPrevSibling(); - while (elem != null && - !GroovyElementTypes.mRPAREN.equals(elem.getNode().getElementType())) { - elem = elem.getPrevSibling(); - } - if (elem != null) { - return true; - } else { - return false; - } - } - } - - return false; + return parent instanceof GrReferenceExpression && treeWalkUp(parent); } return false; } diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/completion/GroovyCompletionTest.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/completion/GroovyCompletionTest.groovy index 52d033f8335d..755f174daee9 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/completion/GroovyCompletionTest.groovy +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/completion/GroovyCompletionTest.groovy @@ -681,4 +681,13 @@ def a = new MyClass() a.g """) } + + public void testContinue() { + assertNotNull doContainsTest("continue", """ +def conti = 4 +while(true) { + if (tst) cont +}""") + + } } \ No newline at end of file