ClangFormat: Add cursor position to the indenter interface

Sometimes it's imnportant where the cursor currently is
to properly format the code without affecting the current line.

Change-Id: I8b1fb11d2303adb5f960c7cb80a0ed2e6e45010f
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
This commit is contained in:
Ivan Donchevskii
2019-01-28 08:11:20 +01:00
parent 80fb0178fd
commit 1dee275f58
24 changed files with 185 additions and 95 deletions

View File

@@ -37,7 +37,8 @@ TextIndenter::TextIndenter(QTextDocument *doc)
TextIndenter::~TextIndenter() = default;
IndentationForBlock TextIndenter::indentationForBlocks(const QVector<QTextBlock> &blocks,
const TabSettings &tabSettings)
const TabSettings &tabSettings,
int /*cursorPositionInEditor*/)
{
IndentationForBlock ret;
for (QTextBlock block : blocks)
@@ -47,7 +48,8 @@ IndentationForBlock TextIndenter::indentationForBlocks(const QVector<QTextBlock>
void TextIndenter::indentBlock(const QTextBlock &block,
const QChar &typedChar,
const TabSettings &tabSettings)
const TabSettings &tabSettings,
int /*cursorPositionInEditor*/)
{
Q_UNUSED(typedChar);
const int indent = indentFor(block, tabSettings);
@@ -58,7 +60,8 @@ void TextIndenter::indentBlock(const QTextBlock &block,
void TextIndenter::indent(const QTextCursor &cursor,
const QChar &typedChar,
const TabSettings &tabSettings)
const TabSettings &tabSettings,
int /*cursorPositionInEditor*/)
{
if (cursor.hasSelection()) {
QTextBlock block = m_doc->findBlock(cursor.selectionStart());
@@ -72,7 +75,9 @@ void TextIndenter::indent(const QTextCursor &cursor,
}
}
void TextIndenter::reindent(const QTextCursor &cursor, const TabSettings &tabSettings)
void TextIndenter::reindent(const QTextCursor &cursor,
const TabSettings &tabSettings,
int /*cursorPositionInEditor*/)
{
if (cursor.hasSelection()) {
QTextBlock block = m_doc->findBlock(cursor.selectionStart());