forked from qt-creator/qt-creator
QmlJS: keep track of cursor position in reformatting
Task-number: QTCREATORBUG-18416 Change-Id: I30c07e0bff1b3f3933ff0e4aee8f1f2c81bd5ef6 Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
@@ -258,10 +258,16 @@ void QmlJSEditorPlugin::reformatFile()
|
||||
return;
|
||||
|
||||
const QString &newText = QmlJS::reformat(document);
|
||||
QTextCursor tc(m_currentDocument->document());
|
||||
tc.movePosition(QTextCursor::Start);
|
||||
tc.movePosition(QTextCursor::End, QTextCursor::KeepAnchor);
|
||||
tc.insertText(newText);
|
||||
QmlJSEditorWidget *widget = EditorManager::currentEditor()
|
||||
? qobject_cast<QmlJSEditorWidget*>(EditorManager::currentEditor()->widget())
|
||||
: nullptr;
|
||||
if (widget) {
|
||||
const int position = widget->position();
|
||||
m_currentDocument->document()->setPlainText(newText);
|
||||
widget->setCursorPosition(position);
|
||||
} else {
|
||||
m_currentDocument->document()->setPlainText(newText);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user