forked from qt-creator/qt-creator
ClangFormat: do not remove trailing spaces on indent calculation
Fixes: QTCREATORBUG-28150 Change-Id: I6f7b18e1afefb96da28295a2c3654d1c1ced4308 Reviewed-by: Artem Sokolovskii <artem.sokolovskii@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: David Schulz <david.schulz@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user