mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-89670 Groovy: 'instanceof' keyword is not exist in completion variants
This commit is contained in:
+2
-2
@@ -570,8 +570,8 @@ public class GroovyCompletionData {
|
||||
return true;
|
||||
}
|
||||
if (context.getParent() instanceof GrReferenceExpression &&
|
||||
GroovyCompletionUtil.nearestLeftSibling(context.getParent()) instanceof PsiErrorElement &&
|
||||
GroovyCompletionUtil.endsWithExpression(GroovyCompletionUtil.nearestLeftSibling(context.getParent()).getPrevSibling())) {
|
||||
GroovyCompletionUtil.nearestLeftLeaf(context) instanceof PsiErrorElement &&
|
||||
GroovyCompletionUtil.endsWithExpression(GroovyCompletionUtil.nearestLeftLeaf(context).getPrevSibling())) {
|
||||
return true;
|
||||
}
|
||||
if (context.getParent() instanceof PsiErrorElement &&
|
||||
|
||||
+14
-5
@@ -39,10 +39,7 @@ import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.psi.tree.TokenSet;
|
||||
import com.intellij.psi.util.InheritanceUtil;
|
||||
import com.intellij.psi.util.PsiFormatUtil;
|
||||
import com.intellij.psi.util.PsiFormatUtilBase;
|
||||
import com.intellij.psi.util.TypeConversionUtil;
|
||||
import com.intellij.psi.util.*;
|
||||
import com.intellij.util.Function;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.util.containers.CollectionFactory;
|
||||
@@ -91,7 +88,7 @@ public class GroovyCompletionUtil {
|
||||
}
|
||||
|
||||
/**
|
||||
* Return true if last element of curren statement is expression
|
||||
* Return true if last element of current statement is expression
|
||||
*
|
||||
* @param statement
|
||||
* @return
|
||||
@@ -119,6 +116,18 @@ public class GroovyCompletionUtil {
|
||||
return elem;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static PsiElement nearestLeftLeaf(PsiElement elem) {
|
||||
elem = PsiTreeUtil.prevLeaf(elem);
|
||||
while (elem != null &&
|
||||
(elem instanceof PsiWhiteSpace ||
|
||||
elem instanceof PsiComment ||
|
||||
mNLS.equals(elem.getNode().getElementType()))) {
|
||||
elem = PsiTreeUtil.prevLeaf(elem);
|
||||
}
|
||||
return elem;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shows whether keyword may be placed as a new statement beginning
|
||||
*
|
||||
|
||||
+2
-1
@@ -89,8 +89,9 @@ public class KeywordCompletionTest extends CompletionTestBase {
|
||||
void testPrimitiveTypes() { doTest() }
|
||||
void testIncompleteConstructor() { doTest() }
|
||||
void testAtInterface() { doTest() }
|
||||
void testInstanceOf() { doTest() }
|
||||
|
||||
String basePath = "${TestUtils.testDataPath}groovy/oldCompletion/keyword"
|
||||
String basePath = TestUtils.testDataPath + 'groovy/oldCompletion/keyword'
|
||||
|
||||
@Override
|
||||
protected boolean addReferenceVariants() {
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
if (!(a ins<caret>))
|
||||
-----
|
||||
instanceof
|
||||
Reference in New Issue
Block a user