forked from qt-creator/qt-creator
CppEditor: fix indentation of auto-completed comments.
Fix indentation of auto-completed Doxygen comments, as well as auto- leading characters from the block, to make it work with both spaces and tabs. Change-Id: I6c1c1665675cc25e01983e6d39b472f1b1c9683e Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
This commit is contained in:
committed by
Leandro Melo
parent
8e94d06496
commit
cbc328e2d7
@@ -2381,7 +2381,10 @@ bool CPPEditorWidget::handleDocumentationComment(QKeyEvent *e)
|
|||||||
if (followinPos == text.length()
|
if (followinPos == text.length()
|
||||||
|| text.at(followinPos) != QLatin1Char('*')) {
|
|| text.at(followinPos) != QLatin1Char('*')) {
|
||||||
QString newLine(QLatin1Char('\n'));
|
QString newLine(QLatin1Char('\n'));
|
||||||
newLine.append(QString(offset, QLatin1Char(' ')));
|
QTextCursor c(cursor);
|
||||||
|
c.movePosition(QTextCursor::StartOfBlock);
|
||||||
|
c.movePosition(QTextCursor::NextCharacter, QTextCursor::KeepAnchor, offset);
|
||||||
|
newLine.append(c.selectedText());
|
||||||
if (text.at(offset) == QLatin1Char('/')) {
|
if (text.at(offset) == QLatin1Char('/')) {
|
||||||
newLine.append(QLatin1String(" *"));
|
newLine.append(QLatin1String(" *"));
|
||||||
} else {
|
} else {
|
||||||
|
@@ -56,7 +56,6 @@ DoxygenGenerator::DoxygenGenerator()
|
|||||||
, m_generateBrief(true)
|
, m_generateBrief(true)
|
||||||
, m_startComment(true)
|
, m_startComment(true)
|
||||||
, m_style(QtStyle)
|
, m_style(QtStyle)
|
||||||
, m_commentOffset(0)
|
|
||||||
{}
|
{}
|
||||||
|
|
||||||
void DoxygenGenerator::setStyle(DocumentationStyle style)
|
void DoxygenGenerator::setStyle(DocumentationStyle style)
|
||||||
@@ -308,16 +307,11 @@ void DoxygenGenerator::assignCommentOffset(QTextCursor cursor)
|
|||||||
cursor.setPosition(cursor.anchor());
|
cursor.setPosition(cursor.anchor());
|
||||||
}
|
}
|
||||||
|
|
||||||
m_commentOffset = cursor.positionInBlock();
|
cursor.movePosition(QTextCursor::StartOfBlock, QTextCursor::KeepAnchor);
|
||||||
|
m_commentOffset = cursor.selectedText();
|
||||||
}
|
}
|
||||||
|
|
||||||
QString DoxygenGenerator::offsetString() const
|
QString DoxygenGenerator::offsetString() const
|
||||||
{
|
{
|
||||||
// Note: Currently we don't indent comments, but simply preserve them in the original
|
return m_commentOffset;
|
||||||
// relative positions. What we do here is just to make sure that such positions are correct,
|
|
||||||
// although they might still be wrong from an indentation point of view (for instance,
|
|
||||||
// using spaces instead of tabs). Therefore, the content generated should still have
|
|
||||||
// the indentation strings fixed.
|
|
||||||
|
|
||||||
return QString(m_commentOffset, QLatin1Char(' '));
|
|
||||||
}
|
}
|
||||||
|
@@ -95,7 +95,7 @@ private:
|
|||||||
bool m_startComment;
|
bool m_startComment;
|
||||||
DocumentationStyle m_style;
|
DocumentationStyle m_style;
|
||||||
CPlusPlus::Overview m_printer;
|
CPlusPlus::Overview m_printer;
|
||||||
int m_commentOffset;
|
QString m_commentOffset;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // CppTools
|
} // CppTools
|
||||||
|
Reference in New Issue
Block a user