@@ -15,6 +15,11 @@ import com.intellij.psi.xml.XmlToken
1515import com.jetbrains.php.lang.PhpLanguage
1616
1717class PHPLanguageInjector : MultiHostInjector {
18+ val tagsMap = mapOf (
19+ " {!!" to " !!}" ,
20+ " {{" to " }}" ,
21+ )
22+
1823 override fun getLanguagesToInject (
1924 registrar : MultiHostRegistrar ,
2025 element : PsiElement
@@ -36,7 +41,7 @@ class PHPLanguageInjector : MultiHostInjector {
3641 is HtmlTag -> {
3742 element.children
3843 .mapNotNull { it as ? HtmlRawTextImpl }
39- .forEach { child->
44+ .forEach { child ->
4045 injectIntoText(HtmlTextInjectionHostWrapper (child), registrar)
4146 }
4247 }
@@ -49,10 +54,6 @@ class PHPLanguageInjector : MultiHostInjector {
4954 }
5055 }
5156
52- val tagsMap = mapOf (
53- " {!!" to " !!}" ,
54- " {{" to " }}" ,
55- )
5657 private fun injectIntoText (
5758 element : PsiLanguageInjectionHost ,
5859 registrar : MultiHostRegistrar
@@ -62,17 +63,15 @@ class PHPLanguageInjector : MultiHostInjector {
6263 .apply { if (size < 2 ) return }
6364
6465// println("children: $children")
65- val openTag = children.find { it.text == " {!! " || it.text == " {{ " }?.psi ? : return
66- val closeTag = children.find { it.text == tagsMap[openTag.text] }?.psi
66+ val openTag = children.find { tagsMap.containsKey( it.text) }?.psi ? : return
67+ val closeTag = children.find { it.text == tagsMap[openTag.text] }?.psi ? : return
6768
6869// println("openTag: ${openTag.text}, closeTag: ${closeTag?.text}")
69- if ((openTag.text == " {!!" && closeTag?.text == " !!}" ) || (openTag.text == " {{" && closeTag?.text == " }}" )) {
70- val textRange = TextRange (openTag.textRangeInParent.endOffset, closeTag.startOffsetInParent)
70+ val textRange = TextRange (openTag.textRangeInParent.endOffset, closeTag.startOffsetInParent)
7171// println("injecting ${language} into $element, $textRange")
72- registrar.startInjecting(PhpLanguage .INSTANCE )
73- .addPlace(" <?=" , " ?>" , element, textRange)
74- .doneInjecting()
75- }
72+ registrar.startInjecting(PhpLanguage .INSTANCE )
73+ .addPlace(" <?=" , " ?>" , element, textRange)
74+ .doneInjecting()
7675 }
7776
7877 override fun elementsToInjectIn () = listOf (
0 commit comments