From 6b790ff267ff696c4e5e9235da8347a21a13d40e Mon Sep 17 00:00:00 2001 From: anna Date: Tue, 23 Jul 2013 18:36:13 +0200 Subject: [PATCH] testng: dependsOn filter completion variants by type --- .../testng/TestNGReferenceContributor.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/plugins/testng/src/com/theoryinpractice/testng/TestNGReferenceContributor.java b/plugins/testng/src/com/theoryinpractice/testng/TestNGReferenceContributor.java index 251fa5ca1f85..c16700497a3f 100644 --- a/plugins/testng/src/com/theoryinpractice/testng/TestNGReferenceContributor.java +++ b/plugins/testng/src/com/theoryinpractice/testng/TestNGReferenceContributor.java @@ -24,6 +24,7 @@ package com.theoryinpractice.testng; import com.intellij.codeInsight.AnnotationUtil; import com.intellij.codeInsight.completion.CompletionUtil; +import com.intellij.codeInsight.lookup.LookupElementBuilder; import com.intellij.codeInsight.lookup.LookupValueFactory; import com.intellij.codeInspection.InspectionProfile; import com.intellij.openapi.project.Project; @@ -217,13 +218,15 @@ public class TestNGReferenceContributor extends PsiReferenceContributor { final String className = StringUtil.getPackageName(val); PsiClass cls = getDependsClass(val); if (cls != null) { - PsiMethod current = PsiTreeUtil.getParentOfType(getElement(), PsiMethod.class); - PsiMethod[] methods = cls.getMethods(); + final PsiMethod current = PsiTreeUtil.getParentOfType(getElement(), PsiMethod.class); + final String configAnnotation = TestNGUtil.getConfigAnnotation(current); + final PsiMethod[] methods = cls.getMethods(); for (PsiMethod method : methods) { - if (current != null && method.getName().equals(current.getName())) continue; - if (TestNGUtil.hasTest(method) || TestNGUtil.hasConfig(method)) { - list.add(LookupValueFactory.createLookupValue(StringUtil.isEmpty(className) ? method.getName() - :StringUtil.getQualifiedName(cls.getQualifiedName(), method.getName()), null)); + final String methodName = method.getName(); + if (current != null && methodName.equals(current.getName())) continue; + if (configAnnotation == null && TestNGUtil.hasTest(method) || configAnnotation != null && AnnotationUtil.isAnnotated(method, configAnnotation, true)) { + final String nameToInsert = StringUtil.isEmpty(className) ? methodName : StringUtil.getQualifiedName(cls.getQualifiedName(), methodName); + list.add(LookupElementBuilder.create(nameToInsert)); } } }