Skip to content

Commit bc5ba36

Browse files
committed
fix incomple named argument key complete pattern, for newest PhpStorm versions
1 parent 2b7f8a3 commit bc5ba36

File tree

3 files changed

+42
-27
lines changed

3 files changed

+42
-27
lines changed

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

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public class YamlCompletionContributor extends CompletionContributor {
6262

6363
// @TODO: use xsd file
6464
// Symfony/Component/DependencyInjection/Loader/schema/dic/services/services-1.0.xsd
65-
private static final Map<String, String> SERVICE_KEYS = Collections.unmodifiableMap(new HashMap<String, String>() {{
65+
private static final Map<String, String> SERVICE_KEYS = Collections.unmodifiableMap(new HashMap<>() {{
6666
put("class", "(string)");
6767
put("public", "(bool)");
6868
put("tags", null);
@@ -96,7 +96,7 @@ public class YamlCompletionContributor extends CompletionContributor {
9696
put("exclude", ">= 2.8");
9797
}});
9898

99-
private static final Map<String, String> ROUTE_KEYS = Collections.unmodifiableMap(new HashMap<String, String>() {{
99+
private static final Map<String, String> ROUTE_KEYS = Collections.unmodifiableMap(new HashMap<>() {{
100100
put("pattern", "deprecated");
101101
put("defaults", "(bool)");
102102
put("path", "(string)");
@@ -136,28 +136,28 @@ public YamlCompletionContributor() {
136136

137137
extend(
138138
CompletionType.BASIC, YamlElementPatternHelper.getServiceParameterDefinition(),
139-
new CompletionProvider<CompletionParameters>() {
139+
new CompletionProvider<>() {
140140
public void addCompletions(@NotNull CompletionParameters parameters,
141141
@NotNull ProcessingContext context,
142142
@NotNull CompletionResultSet resultSet) {
143143

144-
if(!Symfony2ProjectComponent.isEnabled(parameters.getPosition())) {
144+
if (!Symfony2ProjectComponent.isEnabled(parameters.getPosition())) {
145145
return;
146146
}
147147

148148
PsiElement element = parameters.getOriginalPosition();
149149

150-
if(element == null) {
150+
if (element == null) {
151151
return;
152152
}
153153

154-
for(ContainerParameter containerParameter: ContainerCollectionResolver.getParameters(parameters.getPosition().getProject()).values()) {
154+
for (ContainerParameter containerParameter : ContainerCollectionResolver.getParameters(parameters.getPosition().getProject()).values()) {
155155
resultSet.addElement(new ParameterLookupElement(containerParameter, ParameterPercentWrapInsertHandler.getInstance(), element.getText()));
156156
}
157157

158158
for (String s : DotEnvUtil.getEnvironmentVariables(element.getProject())) {
159-
resultSet.addElement(new ParameterLookupElement(new ContainerParameter("env(" + s +")", false), ParameterPercentWrapInsertHandler.getInstance(), element.getText()));
160-
resultSet.addElement(new ParameterLookupElement(new ContainerParameter("env(resolve:" + s +")", false), ParameterPercentWrapInsertHandler.getInstance(), element.getText()));
159+
resultSet.addElement(new ParameterLookupElement(new ContainerParameter("env(" + s + ")", false), ParameterPercentWrapInsertHandler.getInstance(), element.getText()));
160+
resultSet.addElement(new ParameterLookupElement(new ContainerParameter("env(resolve:" + s + ")", false), ParameterPercentWrapInsertHandler.getInstance(), element.getText()));
161161
}
162162
}
163163
}
@@ -271,7 +271,7 @@ public void addCompletions(@NotNull CompletionParameters parameters,
271271
*/
272272
private static class MyFactoryStringMethodCompletionProvider extends CompletionProvider<CompletionParameters> {
273273
@Override
274-
protected void addCompletions(@NotNull CompletionParameters parameters, ProcessingContext processingContext, @NotNull CompletionResultSet completionResultSet) {
274+
protected void addCompletions(@NotNull CompletionParameters parameters, @NotNull ProcessingContext processingContext, @NotNull CompletionResultSet completionResultSet) {
275275
PsiElement position = parameters.getPosition();
276276
if(!Symfony2ProjectComponent.isEnabled(position)) {
277277
return;
@@ -307,7 +307,7 @@ protected void addCompletions(@NotNull CompletionParameters parameters, Processi
307307

308308
private static class FactoryMethodCompletionProvider extends CompletionProvider<CompletionParameters> {
309309
@Override
310-
protected void addCompletions(@NotNull CompletionParameters parameters, ProcessingContext processingContext, @NotNull CompletionResultSet completionResultSet) {
310+
protected void addCompletions(@NotNull CompletionParameters parameters, @NotNull ProcessingContext processingContext, @NotNull CompletionResultSet completionResultSet) {
311311

312312
PsiElement position = parameters.getPosition();
313313
if(!Symfony2ProjectComponent.isEnabled(position)) {
@@ -335,7 +335,7 @@ protected void addCompletions(@NotNull CompletionParameters parameters, Processi
335335

336336
public static class DirectoryScopeCompletionProvider extends CompletionProvider<CompletionParameters> {
337337
@Override
338-
protected void addCompletions(@NotNull CompletionParameters completionParameters, final ProcessingContext processingContext, @NotNull final CompletionResultSet completionResultSet) {
338+
protected void addCompletions(@NotNull CompletionParameters completionParameters, final @NotNull ProcessingContext processingContext, @NotNull final CompletionResultSet completionResultSet) {
339339

340340
PsiFile originalFile = completionParameters.getOriginalFile();
341341
if(!Symfony2ProjectComponent.isEnabled(originalFile)) {
@@ -380,7 +380,7 @@ public boolean visitFile(@NotNull VirtualFile file) {
380380
*/
381381
private static class MyServiceKeyAsClassCompletionParametersCompletionProvider extends CompletionProvider<CompletionParameters> {
382382
@Override
383-
protected void addCompletions(@NotNull CompletionParameters parameters, ProcessingContext processingContext, @NotNull CompletionResultSet completionResultSet) {
383+
protected void addCompletions(@NotNull CompletionParameters parameters, @NotNull ProcessingContext processingContext, @NotNull CompletionResultSet completionResultSet) {
384384
PsiElement position = parameters.getPosition();
385385

386386
if(!Symfony2ProjectComponent.isEnabled(position)) {
@@ -405,7 +405,7 @@ protected void addCompletions(@NotNull CompletionParameters parameters, Processi
405405
*/
406406
private static class NamedArgumentCompletionProvider extends CompletionProvider<CompletionParameters> {
407407
@Override
408-
protected void addCompletions(@NotNull CompletionParameters parameters, ProcessingContext context, @NotNull CompletionResultSet result) {
408+
protected void addCompletions(@NotNull CompletionParameters parameters, @NotNull ProcessingContext context, @NotNull CompletionResultSet result) {
409409
HashSet<String> uniqueParameters = new HashSet<>();
410410

411411
ServiceContainerUtil.visitNamedArguments(parameters.getPosition().getContainingFile(), parameter -> {
@@ -430,9 +430,9 @@ protected void addCompletions(@NotNull CompletionParameters parameters, Processi
430430
* tags:
431431
* - { method: 'foobar' }
432432
*/
433-
private class ServiceCallsMethodTestCompletion extends CompletionProvider<CompletionParameters> {
433+
private static class ServiceCallsMethodTestCompletion extends CompletionProvider<CompletionParameters> {
434434

435-
protected void addCompletions(@NotNull CompletionParameters completionParameters, ProcessingContext processingContext, @NotNull CompletionResultSet completionResultSet) {
435+
protected void addCompletions(@NotNull CompletionParameters completionParameters, @NotNull ProcessingContext processingContext, @NotNull CompletionResultSet completionResultSet) {
436436
if(!Symfony2ProjectComponent.isEnabled(completionParameters.getPosition())) {
437437
return;
438438
}
@@ -450,15 +450,14 @@ protected void addCompletions(@NotNull CompletionParameters completionParameters
450450
}
451451
}
452452

453-
private class ServiceClassMethodInsideScalarKeyCompletion extends CompletionProvider<CompletionParameters> {
454-
455-
private String yamlArrayKeyName;
453+
private static class ServiceClassMethodInsideScalarKeyCompletion extends CompletionProvider<CompletionParameters> {
454+
private final String yamlArrayKeyName;
456455

457456
ServiceClassMethodInsideScalarKeyCompletion(String yamlArrayKeyName) {
458457
this.yamlArrayKeyName = yamlArrayKeyName;
459458
}
460459

461-
protected void addCompletions(@NotNull CompletionParameters completionParameters, ProcessingContext processingContext, @NotNull CompletionResultSet completionResultSet) {
460+
protected void addCompletions(@NotNull CompletionParameters completionParameters, @NotNull ProcessingContext processingContext, @NotNull CompletionResultSet completionResultSet) {
462461

463462
if(!Symfony2ProjectComponent.isEnabled(completionParameters.getPosition())) {
464463
return;
@@ -476,9 +475,9 @@ protected void addCompletions(@NotNull CompletionParameters completionParameters
476475

477476
}
478477

479-
private class ServiceCallsMethodCompletion extends CompletionProvider<CompletionParameters> {
478+
private static class ServiceCallsMethodCompletion extends CompletionProvider<CompletionParameters> {
480479

481-
protected void addCompletions(@NotNull CompletionParameters completionParameters, ProcessingContext processingContext, @NotNull CompletionResultSet completionResultSet) {
480+
protected void addCompletions(@NotNull CompletionParameters completionParameters, @NotNull ProcessingContext processingContext, @NotNull CompletionResultSet completionResultSet) {
482481
if(!Symfony2ProjectComponent.isEnabled(completionParameters.getPosition())) {
483482
return;
484483
}
@@ -517,7 +516,7 @@ private static void addYamlClassMethods(@Nullable PsiElement psiElement, Complet
517516

518517
private static class FormAliasCompletionProvider extends CompletionProvider<CompletionParameters> {
519518
@Override
520-
protected void addCompletions(@NotNull CompletionParameters completionParameters, ProcessingContext processingContext, @NotNull CompletionResultSet completionResultSet) {
519+
protected void addCompletions(@NotNull CompletionParameters completionParameters, @NotNull ProcessingContext processingContext, @NotNull CompletionResultSet completionResultSet) {
521520

522521
if(!Symfony2ProjectComponent.isEnabled(completionParameters.getPosition())) {
523522
return;
@@ -547,7 +546,7 @@ protected void addCompletions(@NotNull CompletionParameters completionParameters
547546

548547
private static class OrmRelationCompletionProvider extends CompletionProvider<CompletionParameters> {
549548
@Override
550-
protected void addCompletions(@NotNull CompletionParameters completionParameters, ProcessingContext processingContext, @NotNull CompletionResultSet completionResultSet) {
549+
protected void addCompletions(@NotNull CompletionParameters completionParameters, @NotNull ProcessingContext processingContext, @NotNull CompletionResultSet completionResultSet) {
551550

552551
PsiElement position = completionParameters.getPosition();
553552
if(!Symfony2ProjectComponent.isEnabled(position)) {
@@ -590,7 +589,7 @@ protected void addCompletions(@NotNull CompletionParameters completionParameters
590589
*/
591590
private static class ReferencedColumnCompletionProvider extends CompletionProvider<CompletionParameters> {
592591
@Override
593-
protected void addCompletions(@NotNull CompletionParameters completionParameters, ProcessingContext processingContext, @NotNull CompletionResultSet completionResultSet) {
592+
protected void addCompletions(@NotNull CompletionParameters completionParameters, @NotNull ProcessingContext processingContext, @NotNull CompletionResultSet completionResultSet) {
594593

595594
PsiElement position = completionParameters.getPosition();
596595
if(!Symfony2ProjectComponent.isEnabled(position)) {
@@ -661,9 +660,9 @@ public void addCompletions(@NotNull CompletionParameters parameters, ProcessingC
661660
/**
662661
* "requirements" on "path/pattern: /hello/{name}"
663662
*/
664-
private class RouteRequirementsCompletion extends CompletionProvider<CompletionParameters> {
663+
private static class RouteRequirementsCompletion extends CompletionProvider<CompletionParameters> {
665664
@Override
666-
protected void addCompletions(@NotNull CompletionParameters completionParameters, ProcessingContext processingContext, @NotNull CompletionResultSet completionResultSet) {
665+
protected void addCompletions(@NotNull CompletionParameters completionParameters, @NotNull ProcessingContext processingContext, @NotNull CompletionResultSet completionResultSet) {
667666
YAMLKeyValue yamlKeyValue = PsiTreeUtil.getParentOfType(completionParameters.getOriginalPosition(), YAMLKeyValue.class);
668667
if(yamlKeyValue != null) {
669668
PsiElement compoundValue = yamlKeyValue.getParent();

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

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -843,7 +843,18 @@ public boolean accepts(@NotNull YAMLKeyValue yamlKeyValue, ProcessingContext con
843843
PlatformPatterns.psiElement(YAMLScalar.class).withParent(PlatformPatterns.or(bindKey, argumentsKey))
844844
);
845845

846-
return PlatformPatterns.or(argumentPattern, incompleteCodePattern);
846+
// incomplete code 2.0 for new phpstorm version.
847+
// bind:
848+
// $<caret>
849+
PsiElementPattern.Capture<PsiElement> incompleteCodePattern2 = PlatformPatterns.psiElement(YAMLTokenTypes.TEXT).withText(PlatformPatterns.string().startsWith("$")).withParent(PlatformPatterns.psiElement(YAMLScalar.class).withParent(PlatformPatterns.psiElement(YAMLKeyValue.class).with(new PatternCondition<YAMLKeyValue>("KeyText") {
850+
@Override
851+
public boolean accepts(@NotNull YAMLKeyValue yamlKeyValue, ProcessingContext context) {
852+
String keyText = yamlKeyValue.getKeyText();
853+
return "arguments".equals(keyText) || "bind".equals(keyText);
854+
}
855+
})));
856+
857+
return PlatformPatterns.or(argumentPattern, incompleteCodePattern, incompleteCodePattern2);
847858
}
848859

849860
/**

src/main/java/fr/adrienbrault/idea/symfony2plugin/dic/container/util/ServiceContainerUtil.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -588,6 +588,11 @@ public static boolean hasMissingYamlNamedArgumentForInspection(@NotNull PsiEleme
588588
* _defaults:
589589
* bind:
590590
* $<caret>: ''
591+
*
592+
* services:
593+
* Foo:
594+
* arguments:
595+
* $<caret>
591596
*/
592597
public static void visitNamedArguments(@NotNull PsiFile psiFile, @NotNull Consumer<Parameter> processor) {
593598
if (psiFile instanceof YAMLFile) {

0 commit comments

Comments
 (0)