@Override
  public Result preprocessEnter(@NotNull final PsiFile file, @NotNull final Editor editor, @NotNull Ref<Integer> caretOffsetRef,
                                final @NotNull Ref<Integer> caretAdvanceRef, @NotNull final DataContext dataContext,
                                final EditorActionHandler originalHandler) {
    final Language language = EnterHandler.getLanguage(dataContext);
    if (language == null) return Result.Continue;

    int caretOffset = caretOffsetRef.get().intValue();
    final JavaLikeQuoteHandler quoteHandler = getJavaLikeQuoteHandler(editor, file);
    if (!isInStringLiteral(editor, quoteHandler, caretOffset)) {
      return Result.Continue;
    }

    PsiDocumentManager.getInstance(file.getProject()).commitDocument(editor.getDocument());
    PsiElement psiAtOffset = file.findElementAt(caretOffset);
    if (psiAtOffset != null && psiAtOffset.getTextOffset() < caretOffset) {
      Document document = editor.getDocument();
      if (quoteHandler.canBeConcatenated(psiAtOffset)) {
        return splitString(file, caretOffsetRef, caretAdvanceRef, psiAtOffset, document, caretOffset, quoteHandler);
      }
    }
    return Result.Continue;
  }
@Override
  public Result preprocessEnter(@NotNull final PsiFile file, @NotNull final Editor editor, @NotNull Ref<Integer> caretOffsetRef,
                                final @NotNull Ref<Integer> caretAdvanceRef, @NotNull final DataContext dataContext,
                                final EditorActionHandler originalHandler)