ClangFormat: Prevent adding/removing lines when indenting

In indentation-only mode, any edit that adds or removes newlines is
wrong by definition.

Change-Id: Ida6e729f4d5e8dcd7893fb2bb9407e596661f942
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
Christian Kandeler
2021-07-05 11:31:29 +02:00
parent f248d0a737
commit de2c26f7f5

View File

@@ -92,6 +92,11 @@ clang::tooling::Replacements filteredReplacements(const QByteArray &buffer,
llvm::StringRef text = replacementsToKeep == ReplacementsToKeep::OnlyIndent llvm::StringRef text = replacementsToKeep == ReplacementsToKeep::OnlyIndent
? clearExtraNewline(replacement.getReplacementText()) ? clearExtraNewline(replacement.getReplacementText())
: replacement.getReplacementText(); : replacement.getReplacementText();
if (replacementsToKeep == ReplacementsToKeep::OnlyIndent && int(text.count('\n'))
!= buffer.mid(replacementOffset, replacement.getLength()).count('\n')) {
continue;
}
llvm::Error error = filtered.add( llvm::Error error = filtered.add(
clang::tooling::Replacement(replacement.getFilePath(), clang::tooling::Replacement(replacement.getFilePath(),