src/main/kotlin/com/pestphp/pest/templates/PestItPostfixTemplate.kt (24 lines of code) (raw):
package com.pestphp.pest.templates
import com.intellij.openapi.editor.Document
import com.intellij.psi.PsiElement
import com.jetbrains.php.lang.psi.elements.StringLiteralExpression
import com.jetbrains.php.postfixCompletion.PhpPostfixUtils
import com.jetbrains.php.postfixCompletion.PhpStringBasedPostfixTemplate
import com.pestphp.pest.isPestTestFile
/**
* Adds a postfix template for `it` tests.
*/
class PestItPostfixTemplate : PhpStringBasedPostfixTemplate(
"it",
"it(${EXPR}, function...)",
PhpPostfixUtils.selectorTopmost()
) {
override fun isApplicable(context: PsiElement, copyDocument: Document, newOffset: Int): Boolean {
return context.parent is StringLiteralExpression && context.containingFile.isPestTestFile()
}
override fun getTemplateString(element: PsiElement): String {
val dollar = "$";
return """
it(${dollar}${EXPR}${dollar}, function() {
${dollar}END${dollar}
});
""".trimIndent()
}
}