@Nullable public static String getArrayHashValue( ArrayCreationExpression arrayCreationExpression, String keyName) { ArrayHashElement translationArrayHashElement = PsiElementUtils.getChildrenOfType( arrayCreationExpression, PlatformPatterns.psiElement(ArrayHashElement.class) .withFirstChild( PlatformPatterns.psiElement(PhpElementTypes.ARRAY_KEY) .withText( PlatformPatterns.string() .oneOf("'" + keyName + "'", "\"" + keyName + "\"")))); if (translationArrayHashElement == null) { return null; } if (!(translationArrayHashElement.getValue() instanceof StringLiteralExpression)) { return null; } StringLiteralExpression valueString = (StringLiteralExpression) translationArrayHashElement.getValue(); if (valueString == null) { return null; } return valueString.getContents(); }
public void registerReferenceProviders(PsiReferenceRegistrar registrar) { registrar.registerReferenceProvider( PsiJavaPatterns.literalExpression() .annotationParam("org.unitils.dbunit.annotation.DataSet", "value"), new URIReferenceProvider(), PsiReferenceRegistrar.HIGHER_PRIORITY); registrar.registerReferenceProvider( PsiJavaPatterns.literalExpression() .annotationParam("org.unitils.dbunit.annotation.ExpectedDataSet", "value"), new URIReferenceProvider(), PsiReferenceRegistrar.HIGHER_PRIORITY); registrar.registerReferenceProvider( PsiJavaPatterns.literalExpression() .insideAnnotationParam( PlatformPatterns.string() .with( new PatternCondition<String>("DataSet") { public boolean accepts( @NotNull final String annotationFQN, final ProcessingContext context) { return annotationFQN.equals("org.unitils.dbunit.annotation.DataSet"); } }), "value"), new URIReferenceProvider()); }
/** public function indexAction() */ public static PsiElementPattern.Capture<PsiElement> getActionMethodPattern() { return PlatformPatterns.psiElement(PhpTokenTypes.IDENTIFIER) .withText(PlatformPatterns.string().endsWith("Action")) .afterLeafSkipping( PlatformPatterns.psiElement(PsiWhiteSpace.class), PlatformPatterns.psiElement(PhpTokenTypes.kwFUNCTION)) .inside(Method.class) .withLanguage(PhpLanguage.INSTANCE); }
/** matches "@Callback(property="<value>")" */ public static ElementPattern<PsiElement> getTextIdentifier() { return PlatformPatterns.psiElement(PhpDocTokenTypes.DOC_STRING) .withParent( PlatformPatterns.psiElement(StringLiteralExpression.class) .afterLeafSkipping( PlatformPatterns.psiElement(PhpDocTokenTypes.DOC_TEXT) .withText(PlatformPatterns.string().contains("=")), PlatformPatterns.psiElement(PhpDocTokenTypes.DOC_IDENTIFIER)) .withParent( PlatformPatterns.psiElement(PhpDocElementTypes.phpDocAttributeList) .withParent(PlatformPatterns.psiElement(PhpDocElementTypes.phpDocTag)))); }
/** * matches "@Callback("<value>", foo...)" TODO: is this also valid "@Callback(key="", "<value>")"? */ public static ElementPattern<PsiElement> getDefaultPropertyValue() { return PlatformPatterns.psiElement(PhpDocTokenTypes.DOC_IDENTIFIER) .afterLeaf( PlatformPatterns.psiElement(PhpDocTokenTypes.DOC_TEXT) .withText(PlatformPatterns.string().equalTo("\"")) .afterLeaf(PlatformPatterns.psiElement(PhpDocTokenTypes.DOC_LPAREN))) .withParent( PlatformPatterns.psiElement(PhpDocElementTypes.phpDocTagValue) .withParent(PlatformPatterns.psiElement(PhpDocElementTypes.phpDocTag))) .withLanguage(PhpLanguage.INSTANCE); }