forked from qt-creator/qt-creator
ClangFormat: Format more code while typing
With the extra option "Format while typing" checked try to format text before the current position without breaking the current input. To accomplish that we make proper choices which replacements to apply. The advantage of this change is to decrease the need to manually format code which is just written. Some minor bugs are fixed during the testing of this change. Change-Id: Ibed569042e6c46a881e7a83b1882cf2bb23b3626 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Marco Bubke <marco.bubke@qt.io>
This commit is contained in:
@@ -127,12 +127,27 @@ ClangFormatConfigWidget::ClangFormatConfigWidget(ProjectExplorer::Project *proje
|
||||
initialize();
|
||||
}
|
||||
|
||||
void ClangFormatConfigWidget::hideGlobalCheckboxes()
|
||||
{
|
||||
m_ui->formatAlways->hide();
|
||||
m_ui->formatWhileTyping->hide();
|
||||
}
|
||||
|
||||
void ClangFormatConfigWidget::showGlobalCheckboxes()
|
||||
{
|
||||
m_ui->formatAlways->setChecked(ClangFormatSettings::instance().formatCodeInsteadOfIndent());
|
||||
m_ui->formatAlways->show();
|
||||
|
||||
m_ui->formatWhileTyping->setChecked(ClangFormatSettings::instance().formatWhileTyping());
|
||||
m_ui->formatWhileTyping->show();
|
||||
}
|
||||
|
||||
void ClangFormatConfigWidget::initialize()
|
||||
{
|
||||
m_ui->projectHasClangFormat->show();
|
||||
m_ui->clangFormatOptionsTable->show();
|
||||
m_ui->applyButton->show();
|
||||
m_ui->formatAlways->hide();
|
||||
hideGlobalCheckboxes();
|
||||
|
||||
QLayoutItem *lastItem = m_ui->verticalLayout->itemAt(m_ui->verticalLayout->count() - 1);
|
||||
if (lastItem->spacerItem())
|
||||
@@ -171,8 +186,7 @@ void ClangFormatConfigWidget::initialize()
|
||||
"and can be configured in Projects > Code Style > C++."));
|
||||
}
|
||||
createStyleFileIfNeeded(true);
|
||||
m_ui->formatAlways->setChecked(ClangFormatSettings::instance().formatCodeInsteadOfIndent());
|
||||
m_ui->formatAlways->show();
|
||||
showGlobalCheckboxes();
|
||||
m_ui->applyButton->hide();
|
||||
}
|
||||
|
||||
@@ -196,6 +210,7 @@ void ClangFormatConfigWidget::apply()
|
||||
if (!m_project) {
|
||||
ClangFormatSettings &settings = ClangFormatSettings::instance();
|
||||
settings.setFormatCodeInsteadOfIndent(m_ui->formatAlways->isChecked());
|
||||
settings.setFormatWhileTyping(m_ui->formatWhileTyping->isChecked());
|
||||
settings.write();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user