@Override
  protected @Nullable Presentation getPresentation(@NotNull ActionContext context, @NotNull PsiElement element) {
    if (!(context.file() instanceof PyFile)) {
      return null;
    }

    PyStringElement stringElement = findConvertibleStringElementUnderCaret(element);
    if (stringElement == null) return null;
    PyStringLiteralExpression stringLiteral = as(stringElement.getParent(), PyStringLiteralExpression.class);
    if (stringLiteral == null) return null;

    final PyDocStringOwner docStringOwner = PsiTreeUtil.getParentOfType(stringLiteral, PyDocStringOwner.class);
    if (docStringOwner != null && docStringOwner.getDocStringExpression() == stringLiteral) return null;

    String currentQuote = stringElement.getQuote();
    if (currentQuote.equals("'")) {
      return Presentation.of(PyPsiBundle.message("INTN.quoted.string.single.to.double"));
    }
    else {
      return Presentation.of(PyPsiBundle.message("INTN.quoted.string.double.to.single"));
    }
  }
@Override
  protected @Nullable Presentation getPresentation(@NotNull ActionContext context, @NotNull PsiElement element)