diff --git a/src/plugins/clangformat/clangformatbaseindenter.cpp b/src/plugins/clangformat/clangformatbaseindenter.cpp index d214954c776..060809a36c8 100644 --- a/src/plugins/clangformat/clangformatbaseindenter.cpp +++ b/src/plugins/clangformat/clangformatbaseindenter.cpp @@ -571,7 +571,8 @@ Utils::Text::Replacements ClangFormatBaseIndenter::format( Utils::Text::Replacements ClangFormatBaseIndenter::indentsFor(QTextBlock startBlock, const QTextBlock &endBlock, const QChar &typedChar, - int cursorPositionInEditor) + int cursorPositionInEditor, + bool trimTrailingWhitespace) { if (typedChar != QChar::Null && cursorPositionInEditor > 0 && m_doc->characterAt(cursorPositionInEditor - 1) == typedChar @@ -581,7 +582,7 @@ Utils::Text::Replacements ClangFormatBaseIndenter::indentsFor(QTextBlock startBl startBlock = reverseFindLastEmptyBlock(startBlock); const int startBlockPosition = startBlock.position(); - if (startBlockPosition > 0) { + if (trimTrailingWhitespace && startBlockPosition > 0) { trimRHSWhitespace(startBlock.previous()); if (cursorPositionInEditor >= 0) cursorPositionInEditor += startBlock.position() - startBlockPosition; @@ -656,13 +657,14 @@ void ClangFormatBaseIndenter::indentBlock(const QTextBlock &block, } int ClangFormatBaseIndenter::indentFor(const QTextBlock &block, - const TextEditor::TabSettings & /*tabSettings*/, + const TextEditor::TabSettings &tabSettings, int cursorPositionInEditor) { Utils::Text::Replacements toReplace = indentsFor(block, block, QChar::Null, - cursorPositionInEditor); + cursorPositionInEditor, + false); if (toReplace.empty()) return -1; diff --git a/src/plugins/clangformat/clangformatbaseindenter.h b/src/plugins/clangformat/clangformatbaseindenter.h index aa5290f4ffc..27c5fc1edc5 100644 --- a/src/plugins/clangformat/clangformatbaseindenter.h +++ b/src/plugins/clangformat/clangformatbaseindenter.h @@ -62,7 +62,8 @@ private: Utils::Text::Replacements indentsFor(QTextBlock startBlock, const QTextBlock &endBlock, const QChar &typedChar, - int cursorPositionInEditor); + int cursorPositionInEditor, + bool trimTrailingWhitespace = true); Utils::Text::Replacements replacements(QByteArray buffer, const QTextBlock &startBlock, const QTextBlock &endBlock,