void (@NotNull Project project, @NotNull PsiElement startElement, @NotNull ModPsiUpdater updater) { final PsiMethodCallExpression stringFormattedCall = getDirectParentMethod(startElement); if (stringFormattedCall == null) return; final PsiMethodCallExpression printlnCall = PsiTreeUtil.getParentOfType(stringFormattedCall, PsiMethodCallExpression.class); if (printlnCall == null) return; final PsiExpression textBlock = stringFormattedCall.getMethodExpression().getQualifierExpression(); if (textBlock == null) return; final PsiExpressionList formattedArgs = stringFormattedCall.getArgumentList(); final CommentTracker ct = new CommentTracker(); final PsiElement element = formattedArgs.getExpressionCount() == 0 ? formattedArgs.add(ct.markUnchanged(textBlock)) : formattedArgs.addBefore(ct.markUnchanged(textBlock), formattedArgs.getExpressions()[0]); if (myIsPrintlnCall ) { appendWithNewlineToken((PsiExpression)element); } ct.replaceAndRestoreComments(printlnCall.getArgumentList(), formattedArgs); ExpressionUtils.bindCallTo(printlnCall, "printf"); }