Advertisement
Guest User

Untitled

a guest
Apr 27th, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. package cz.k2.eshop
  2.  
  3. import com.intellij.patterns.PlatformPatterns.psiElement
  4. import com.intellij.patterns.PsiNamePatternCondition
  5. import com.intellij.patterns.StandardPatterns
  6. import com.intellij.psi.PsiElement
  7. import com.intellij.psi.PsiReferenceContributor
  8. import com.intellij.psi.PsiReferenceRegistrar
  9. import com.jetbrains.php.lang.parser.PhpElementTypes
  10. import com.jetbrains.php.lang.psi.elements.FunctionReference
  11.  
  12. class GetTemplateReferenceContributor : PsiReferenceContributor() {
  13. override fun registerReferenceProviders(registrar: PsiReferenceRegistrar) {
  14. val templateMethodPattern = object : PsiNamePatternCondition<PsiElement>("withFunctionName", StandardPatterns.string().matches("GetTemplate")) {
  15. override fun getPropertyValue(o: Any): String? {
  16. return if (o is FunctionReference) o.name else null
  17. }
  18. }
  19.  
  20. val elementPattern = psiElement().withElementType(PhpElementTypes.STRING).
  21. withParent(psiElement().withElementType(PhpElementTypes.PARAMETER_LIST).withParent(psiElement().
  22. withElementType(PhpElementTypes.FUNCTION_CALL).with(templateMethodPattern)))
  23.  
  24. registrar.registerReferenceProvider(elementPattern, GetTemplateReferenceProvider(), PsiReferenceRegistrar.DEFAULT_PRIORITY)
  25. }
  26. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement