@Nullable @Override public UsageTarget[] getTargets(final Editor editor, final PsiFile file) { final PsiElement element = file.findElementAt(editor.getCaretModel().getOffset()); if (element != null) { final PyStringLiteralExpression literal = PsiTreeUtil.getParentOfType(element, PyStringLiteralExpression.class); if ((literal != null) && PyMagicLiteralTools.isMagicLiteral(literal)) { return new UsageTarget[] {new PsiElement2UsageTargetAdapter(literal)}; } } return UsageTarget.EMPTY_ARRAY; }
@Override public void processQuery( @NotNull final ReferencesSearch.SearchParameters queryParameters, @NotNull final Processor<PsiReference> consumer) { ApplicationManager.getApplication() .runReadAction( () -> { final PsiElement refElement = queryParameters.getElementToSearch(); if (PyMagicLiteralTools.isMagicLiteral(refElement)) { final String refText = ((StringLiteralExpression) refElement).getStringValue(); if (!StringUtil.isEmpty(refText)) { final SearchScope searchScope = queryParameters.getEffectiveSearchScope(); queryParameters.getOptimizer().searchWord(refText, searchScope, true, refElement); } } }); }