@Override
  public UsageTarget @Nullable [] getTargets(@NotNull Editor editor, final @NotNull PsiFile file) {
    int offset = editor.getCaretModel().getOffset();
    PsiElement element = file.findElementAt(TargetElementUtil.adjustOffset(file, editor.getDocument(), offset));
    if (element == null) return null;

    if (element instanceof PsiKeyword && PsiKeyword.THROWS.equals(element.getText())) {
      return new UsageTarget[]{new PsiElement2UsageTargetAdapter(element)};
    }

    final PsiElement parent = element.getParent();
    if (parent instanceof PsiThrowStatement) {
      return new UsageTarget[] {new PsiElement2UsageTargetAdapter(parent)};
    }

    PsiMethod constructor = getRecordCanonicalConstructor(element, offset);
    if (constructor instanceof SyntheticElement) {
      return new UsageTarget[] {new PsiElement2UsageTargetAdapter(constructor)};
    }

    return null;
  }
@Override
  public UsageTarget @Nullable [] getTargets(@NotNull Editor editor, final @NotNull PsiFile file)