TextRange (@NotNull final PsiFile pyFile, @NotNull final TextRange whitespaceRange) { final PyCodeStyleSettings customSettings = CodeStyle.getCustomSettings(pyFile, PyCodeStyleSettings.class); final boolean addLineFeed = customSettings.BLANK_LINE_AT_FILE_END || EditorSettingsExternalizable.getInstance().isEnsureNewLineAtEOF(); final String realWhitespace = whitespaceRange.substring(pyFile.getText()); final String desiredWhitespace = addLineFeed ? "\n" : ""; // Do not add extra blank line in an empty file if (!realWhitespace.equals(desiredWhitespace) && (whitespaceRange.getStartOffset() != 0 || desiredWhitespace.isEmpty())) { TextRange updatedRange = PyUtil.updateDocumentUnblockedAndCommitted(pyFile, document -> { document.replaceString(whitespaceRange.getStartOffset(), whitespaceRange.getEndOffset(), desiredWhitespace); return TextRange.from(whitespaceRange.getStartOffset(), desiredWhitespace.length()); }); if (updatedRange != null) { return updatedRange; } } return whitespaceRange; }