Skip to content

Commit 28c9da4

Browse files
Fixed PHP class and module name completion from inappropriate places
1 parent 77fa261 commit 28c9da4

File tree

2 files changed

+37
-14
lines changed

2 files changed

+37
-14
lines changed

src/com/magento/idea/magento2plugin/completion/provider/ModuleNameCompletionProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ protected void addCompletions(@NotNull CompletionParameters parameters,
3838
result.addElement(
3939
LookupElementBuilder
4040
.create(moduleName)
41-
.withIcon(AllIcons.Modules.ModulesNode)
41+
.withIcon(AllIcons.Nodes.ModuleGroup)
4242
);
4343
}
4444
}

src/com/magento/idea/magento2plugin/completion/xml/XmlCompletionContributor.java

Lines changed: 36 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -18,22 +18,45 @@
1818
public class XmlCompletionContributor extends CompletionContributor {
1919

2020
public XmlCompletionContributor() {
21-
extend(CompletionType.BASIC, psiElement(XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN),
22-
new CompositeCompletionProvider(
23-
new PhpClassCompletionProvider(),
24-
new PhpClassMemberCompletionProvider(),
25-
new ModuleNameCompletionProvider(),
26-
new FilePathCompletionProvider()
27-
)
21+
22+
/* PHP class member completion provider */
23+
extend(CompletionType.BASIC, psiElement(XmlTokenType.XML_DATA_CHARACTERS)
24+
.withParent(XmlPatterns.xmlText().withParent(XmlPatterns.xmlTag().withChild(
25+
XmlPatterns.xmlAttribute().withName("xsi:type").withValue(string().oneOf("init_parameter"))))
26+
),
27+
new PhpClassMemberCompletionProvider()
28+
);
29+
30+
/* Module Completion provider */
31+
extend(CompletionType.BASIC, psiElement(XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN)
32+
.inside(XmlPatterns.xmlAttribute().withName("id"))
33+
.inFile(xmlFile().withName(string().endsWith("acl.xml"))),
34+
new ModuleNameCompletionProvider()
35+
);
36+
37+
extend(CompletionType.BASIC, psiElement(XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN)
38+
.inside(XmlPatterns.xmlAttribute().withName("name"))
39+
.inFile(xmlFile().withName(string().endsWith("module.xml"))),
40+
new ModuleNameCompletionProvider()
41+
);
42+
43+
/* PHP Class completion provider */
44+
extend(CompletionType.BASIC, psiElement(XmlTokenType.XML_DATA_CHARACTERS)
45+
.withParent(XmlPatterns.xmlText().withParent(XmlPatterns.xmlTag().withChild(
46+
XmlPatterns.xmlAttribute().withName("xsi:type").withValue(string().oneOf("object"))))
47+
),
48+
new PhpClassCompletionProvider()
2849
);
2950

30-
extend(CompletionType.BASIC, psiElement(XmlTokenType.XML_DATA_CHARACTERS),
31-
new CompositeCompletionProvider(
32-
new PhpClassCompletionProvider(),
33-
new PhpClassMemberCompletionProvider(),
34-
new ModuleNameCompletionProvider(),
51+
extend(CompletionType.BASIC, psiElement(XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN)
52+
.inside(XmlPatterns.xmlAttribute().withName("class")),
53+
new PhpClassCompletionProvider()
54+
);
55+
56+
/* File Path Completion provider */
57+
extend(CompletionType.BASIC, psiElement(XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN)
58+
.inside(XmlPatterns.xmlAttribute().withName("template")),
3559
new FilePathCompletionProvider()
36-
)
3760
);
3861

3962
extend(CompletionType.BASIC, psiElement(XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN)

0 commit comments

Comments
 (0)