private PsiCodeBlock getCodeBlock() throws IncorrectOperationException { if (codeBlock == null) { codeBlock = (PsiCodeBlock) MatcherImplUtil .createTreeFromText( myContext.getOptions().getMatchOptions().getSearchPattern(), PatternTreeContext.Block, myContext.getOptions().getMatchOptions().getFileType(), myContext.getProject())[0] .getParent(); } return codeBlock; }
@Nullable private PsiNamedElement getSymbolReplacementTarget(final PsiElement el) throws IncorrectOperationException { if (myContext.getOptions().getMatchOptions().getFileType() != StdFileTypes.JAVA) return null; // ? final PsiStatement[] searchStatements = getCodeBlock().getStatements(); if (searchStatements.length > 0 && searchStatements[0] instanceof PsiExpressionStatement) { final PsiExpression expression = ((PsiExpressionStatement) searchStatements[0]).getExpression(); if (expression instanceof PsiReferenceExpression && ((PsiReferenceExpression) expression).getQualifierExpression() == null) { // looks like symbol replacements, namely replace AAA by BBB, so lets do the best if (el instanceof PsiNamedElement) { return (PsiNamedElement) el; } } } return null; }