IDEA-154336 Missing space after completed @annotation

This commit is contained in:
peter
2016-05-01 18:38:31 +02:00
parent e437ec5142
commit b7f5f72066
4 changed files with 15 additions and 2 deletions

View File

@@ -36,7 +36,6 @@ import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.psi.util.PsiUtil;
import org.jetbrains.annotations.NotNull;
import static com.intellij.patterns.PsiJavaPatterns.psiElement;
import static com.intellij.psi.codeStyle.JavaCodeStyleSettings.*;
/**
@@ -175,7 +174,8 @@ class JavaClassNameInsertHandler implements InsertHandler<JavaPsiClassReferenceE
if (!(obj instanceof PsiClass) || !((PsiClass)obj).isAnnotationType()) return false;
PsiElement leaf = context.getFile().findElementAt(context.getStartOffset());
return psiElement(PsiIdentifier.class).withParents(PsiJavaCodeReferenceElement.class, PsiAnnotation.class).accepts(leaf);
PsiAnnotation anno = PsiTreeUtil.getParentOfType(leaf, PsiAnnotation.class);
return anno != null && PsiTreeUtil.isAncestor(anno.getNameReferenceElement(), leaf, false);
}
static boolean shouldHaveAnnotationParameters(PsiClass annoClass) {

View File

@@ -0,0 +1,6 @@
@interface AbcdAnno {}
class Foo {
void foo(@Abc<caret>Foo.Bar f) {}
static class Bar{}
}

View File

@@ -0,0 +1,6 @@
@interface AbcdAnno {}
class Foo {
void foo(@AbcdAnno<caret> Foo.Bar f) {}
static class Bar{}
}

View File

@@ -1021,6 +1021,7 @@ public class ListUtils {
public void testOnlyAnnotationsAfterAt() throws Throwable { doTest() }
public void testOnlyAnnotationsAfterAt2() throws Throwable { doTest('\n') }
public void testAnnotationBeforeIdentifier() { doTest('\n') }
public void testAnnotationBeforeQualifiedReference() { doTest('\n') }
public void testAnnotationBeforeIdentifierFinishWithSpace() { doTest(' ') }
public void testOnlyExceptionsInCatch1() throws Exception { doTest('\n') }