Skip to content

Commit e8e2fae

Browse files
authored
Merge pull request #1928 from adamwojs/duplicated_completion_fix
Fixed duplicate results in YAML service name completion
2 parents e28949b + a5ca789 commit e8e2fae

File tree

3 files changed

+42
-0
lines changed

3 files changed

+42
-0
lines changed

src/main/java/fr/adrienbrault/idea/symfony2plugin/config/yaml/ServiceYamlReference.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,9 @@ public ServiceYamlReference(@NotNull PsiElement psiElement, @NotNull TextRange r
1818

1919
this.serviceId = serviceId;
2020
}
21+
22+
@Override
23+
public @NotNull Object[] getVariants() {
24+
return new Object[0];
25+
}
2126
}

src/test/java/fr/adrienbrault/idea/symfony2plugin/tests/SymfonyLightCodeInsightFixtureTestCase.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@
4949
import org.jetbrains.annotations.NotNull;
5050

5151
import java.util.*;
52+
import java.util.stream.Collectors;
53+
54+
import static java.util.function.Function.identity;
5255

5356
/**
5457
* @author Daniel Espendiller <daniel@espendiller.net>
@@ -87,6 +90,30 @@ public void assertCompletionNotContains(String filename, String configureByText,
8790
assertFalse(myFixture.getLookupElementStrings().containsAll(Arrays.asList(lookupStrings)));
8891
}
8992

93+
94+
public void assertCompletionResultsAreUnique(
95+
@NotNull LanguageFileType languageFileType,
96+
@NotNull String configureByText,
97+
@NotNull String... lookupStrings
98+
) {
99+
myFixture.configureByText(languageFileType, configureByText);
100+
myFixture.completeBasic();
101+
102+
var results = myFixture.getLookupElementStrings();
103+
if (results != null) {
104+
var duplicates = results.stream()
105+
.filter(result -> Arrays.asList(lookupStrings).contains(result))
106+
.collect(Collectors.groupingBy(identity()))
107+
.entrySet()
108+
.stream()
109+
.filter(result -> result.getValue().size() > 1)
110+
.map(Map.Entry::getKey)
111+
.collect(Collectors.toList());
112+
113+
assertTrue("The following results are duplicated: " + String.join(", ", duplicates), duplicates.isEmpty());
114+
}
115+
}
116+
90117
public void assertCompletionNotContains(LanguageFileType languageFileType, String configureByText, String... lookupStrings) {
91118

92119
myFixture.configureByText(languageFileType, configureByText);

src/test/java/fr/adrienbrault/idea/symfony2plugin/tests/dic/yaml/YamlDicCompletionContributorTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,16 @@ public void testServiceCompletion() {
6161
);
6262
}
6363

64+
public void testServiceCompletionResultsAreUnique() {
65+
assertCompletionResultsAreUnique(
66+
YAMLFileType.YML,
67+
"services:\n" +
68+
" newsletter_manager:\n" +
69+
" parent: <caret>\n",
70+
"data_collector.router"
71+
);
72+
}
73+
6474
public void testServiceStaticCompletion() {
6575

6676
assertCompletionContains(YAMLFileType.YML, "services:\n" +

0 commit comments

Comments
 (0)