CppCodeStyleSettingsPage: Use Layouting

Change-Id: Ied8991d32d5799af944c94a65ff3e85f3f454b26
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
Jarek Kobus
2022-11-17 09:16:19 +01:00
parent 1a70403f94
commit 47b5613c53
6 changed files with 476 additions and 737 deletions

View File

@@ -28,7 +28,7 @@ add_qtc_plugin(CppEditor
cppcodestylepreferences.cpp cppcodestylepreferences.h cppcodestylepreferences.cpp cppcodestylepreferences.h
cppcodestylepreferencesfactory.cpp cppcodestylepreferencesfactory.h cppcodestylepreferencesfactory.cpp cppcodestylepreferencesfactory.h
cppcodestylesettings.cpp cppcodestylesettings.h cppcodestylesettings.cpp cppcodestylesettings.h
cppcodestylesettingspage.cpp cppcodestylesettingspage.h cppcodestylesettingspage.ui cppcodestylesettingspage.cpp cppcodestylesettingspage.h
cppcodestylesnippets.h cppcodestylesnippets.h
cppcompletionassist.cpp cppcompletionassist.h cppcompletionassist.cpp cppcompletionassist.h
cppcompletionassistprocessor.cpp cppcompletionassistprocessor.h cppcompletionassistprocessor.cpp cppcompletionassistprocessor.h

View File

@@ -3,23 +3,26 @@
#include "cppcodestylesettingspage.h" #include "cppcodestylesettingspage.h"
#include "cppcodeformatter.h"
#include "cppcodestylepreferences.h" #include "cppcodestylepreferences.h"
#include "cppcodestylesnippets.h" #include "cppcodestylesnippets.h"
#include "cppeditorconstants.h" #include "cppeditorconstants.h"
#include "cpppointerdeclarationformatter.h" #include "cpppointerdeclarationformatter.h"
#include "cppqtstyleindenter.h"
#include "cpptoolssettings.h" #include "cpptoolssettings.h"
#include <ui_cppcodestylesettingspage.h>
#include <coreplugin/icore.h> #include <coreplugin/icore.h>
#include <cppeditor/cppeditorconstants.h> #include <cppeditor/cppeditorconstants.h>
#include <texteditor/codestyleeditor.h> #include <texteditor/codestyleeditor.h>
#include <texteditor/displaysettings.h>
#include <texteditor/fontsettings.h> #include <texteditor/fontsettings.h>
#include <texteditor/icodestylepreferencesfactory.h> #include <texteditor/icodestylepreferencesfactory.h>
#include <texteditor/textdocument.h>
#include <texteditor/displaysettings.h>
#include <texteditor/snippets/snippetprovider.h> #include <texteditor/snippets/snippetprovider.h>
#include <texteditor/snippets/snippeteditor.h>
#include <texteditor/tabsettings.h>
#include <texteditor/tabsettingswidget.h>
#include <texteditor/textdocument.h>
#include <texteditor/texteditorsettings.h> #include <texteditor/texteditorsettings.h>
#include <utils/layoutbuilder.h>
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
#include <cplusplus/Overview.h> #include <cplusplus/Overview.h>
@@ -27,8 +30,9 @@
#include <extensionsystem/pluginmanager.h> #include <extensionsystem/pluginmanager.h>
#include <QCheckBox>
#include <QTabWidget>
#include <QTextBlock> #include <QTextBlock>
#include <QTextStream>
using namespace TextEditor; using namespace TextEditor;
@@ -74,74 +78,263 @@ static void applyRefactorings(QTextDocument *textDocument, TextEditorWidget *edi
// ------------------ CppCodeStyleSettingsWidget // ------------------ CppCodeStyleSettingsWidget
class CppCodeStylePreferencesWidgetPrivate
{
Q_DECLARE_TR_FUNCTIONS(CppEditor::Internal::CppCodeStyleSettingsPage)
public:
CppCodeStylePreferencesWidgetPrivate(CppCodeStylePreferencesWidget *widget)
: q(widget)
, m_indentAccessSpecifiers(createCheckBox(tr("\"public\", \"protected\" and\n"
"\"private\" within class body")))
, m_indentDeclarationsRelativeToAccessSpecifiers(
createCheckBox(tr("Declarations relative to \"public\",\n"
"\"protected\" and \"private\"")))
, m_indentFunctionBody(createCheckBox(tr("Statements within function body")))
, m_indentBlockBody(createCheckBox(tr("Statements within blocks")))
, m_indentNamespaceBody(createCheckBox(tr("Declarations within\n"
"\"namespace\" definition")))
, m_indentClassBraces(createCheckBox(tr("Class declarations")))
, m_indentNamespaceBraces(createCheckBox(tr("Namespace declarations")))
, m_indentEnumBraces(createCheckBox(tr("Enum declarations")))
, m_indentFunctionBraces(createCheckBox(tr("Function declarations")))
, m_indentBlockBraces(createCheckBox(tr("Blocks")))
, m_indentSwitchLabels(createCheckBox(tr("\"case\" or \"default\"")))
, m_indentCaseStatements(createCheckBox(tr("Statements relative to\n"
"\"case\" or \"default\"")))
, m_indentCaseBlocks(createCheckBox(tr("Blocks relative to\n"
"\"case\" or \"default\"")))
, m_indentCaseBreak(createCheckBox(tr("\"break\" statement relative to\n"
"\"case\" or \"default\"")))
, m_alignAssignments(createCheckBox(tr("Align after assignments"),
tr("<html><head/><body>\n"
"Enables alignment to tokens after =, += etc. When the option is disabled, regular continuation line indentation will be used.<br>\n"
"<br>\n"
"With alignment:\n"
"<pre>\n"
"a = a +\n"
" b\n"
"</pre>\n"
"Without alignment:\n"
"<pre>\n"
"a = a +\n"
" b\n"
"</pre>\n"
"</body></html>")))
, m_extraPaddingConditions(createCheckBox(tr("Add extra padding to conditions\n"
"if they would align to the next line"),
tr("<html><head/><body>\n"
"Adds an extra level of indentation to multiline conditions in the switch, if, while and foreach statements if they would otherwise have the same or less indentation than a nested statement.\n"
"\n"
"For four-spaces indentation only if statement conditions are affected. Without extra padding:\n"
"<pre>\n"
"if (a &&\n"
" b)\n"
" c;\n"
"</pre>\n"
"With extra padding:\n"
"<pre>\n"
"if (a &&\n"
" b)\n"
" c;\n"
"</pre>\n"
"</body></html>")))
, m_bindStarToIdentifier(createCheckBox(tr("Identifier"),
tr("<html><head/><body>This does not apply to the star and reference symbol in pointer/reference to functions and arrays, e.g.:\n"
"<pre> int (&rf)() = ...;\n"
" int (*pf)() = ...;\n"
"\n"
" int (&ra)[2] = ...;\n"
" int (*pa)[2] = ...;\n"
"\n"
"</pre></body></html>")))
, m_bindStarToTypeName(createCheckBox(tr("Type name")))
, m_bindStarToLeftSpecifier(createCheckBox(tr("Left const/volatile")))
, m_bindStarToRightSpecifier(createCheckBox(tr("Right const/volatile"),
tr("This does not apply to references.")))
, m_categoryTab(new QTabWidget)
, m_tabSettingsWidget(new TabSettingsWidget)
{
m_categoryTab->setProperty("_q_custom_style_disabled", true);
QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(m_tabSettingsWidget->sizePolicy().hasHeightForWidth());
m_tabSettingsWidget->setSizePolicy(sizePolicy);
m_tabSettingsWidget->setFocusPolicy(Qt::TabFocus);
QObject::connect(m_tabSettingsWidget, &TabSettingsWidget::settingsChanged,
q, &CppCodeStylePreferencesWidget::slotTabSettingsChanged);
using namespace Utils::Layouting;
QWidget *generalTab = new QWidget;
Row {
Column {
m_tabSettingsWidget,
st
},
createPreview(0)
}.attachTo(generalTab);
m_categoryTab->addTab(generalTab, tr("General"));
m_controllers.append(m_tabSettingsWidget);
QWidget *contentTab = new QWidget;
Group contentGroup {
title(tr("Indent")),
Column {
m_indentAccessSpecifiers,
m_indentDeclarationsRelativeToAccessSpecifiers,
m_indentFunctionBody,
m_indentBlockBody,
m_indentNamespaceBody,
st
}
};
Row {
contentGroup,
createPreview(1)
}.attachTo(contentTab);
m_categoryTab->addTab(contentTab, tr("Content"));
m_controllers.append(contentGroup.widget);
QWidget *bracesTab = new QWidget;
Group bracesGroup {
title(tr("Indent Braces")),
Column {
m_indentClassBraces,
m_indentNamespaceBraces,
m_indentEnumBraces,
m_indentFunctionBraces,
m_indentBlockBraces,
st
}
};
Row {
bracesGroup,
createPreview(2)
}.attachTo(bracesTab);
m_categoryTab->addTab(bracesTab, tr("Braces"));
m_controllers.append(bracesGroup.widget);
QWidget *switchTab = new QWidget;
Group switchGroup {
title(tr("Indent within \"switch\"")),
Column {
m_indentSwitchLabels,
m_indentCaseStatements,
m_indentCaseBlocks,
m_indentCaseBreak,
st
}
};
Row {
switchGroup,
createPreview(3)
}.attachTo(switchTab);
m_categoryTab->addTab(switchTab, tr("\"switch\""));
m_controllers.append(switchGroup.widget);
QWidget *alignmentTab = new QWidget;
Group alignmentGroup {
title(tr("Align")),
Column {
m_alignAssignments,
m_extraPaddingConditions,
st
}
};
Row {
alignmentGroup,
createPreview(4)
}.attachTo(alignmentTab);
m_categoryTab->addTab(alignmentTab, tr("Alignment"));
m_controllers.append(alignmentGroup.widget);
QWidget *typesTab = new QWidget;
Group typesGroup {
title(tr("Bind '*' and '&&' in types/declarations to")),
Column {
m_bindStarToIdentifier,
m_bindStarToTypeName,
m_bindStarToLeftSpecifier,
m_bindStarToRightSpecifier,
st
}
};
Row {
typesGroup,
createPreview(5)
}.attachTo(typesTab);
m_categoryTab->addTab(typesTab, tr("Pointers and References"));
m_controllers.append(typesGroup.widget);
Row { m_categoryTab }.attachTo(q);
}
QCheckBox *createCheckBox(const QString &text, const QString &toolTip = {})
{
QCheckBox *checkBox = new QCheckBox(text);
checkBox->setToolTip(toolTip);
QObject::connect(checkBox, &QCheckBox::toggled,
q, &CppCodeStylePreferencesWidget::slotCodeStyleSettingsChanged);
return checkBox;
}
SnippetEditorWidget *createPreview(int i)
{
SnippetEditorWidget *editor = new SnippetEditorWidget;
editor->setPlainText(QLatin1String(Constants::DEFAULT_CODE_STYLE_SNIPPETS[i]));
m_previews.append(editor);
return editor;
}
CppCodeStylePreferencesWidget *q = nullptr;
QCheckBox *m_indentAccessSpecifiers = nullptr;
QCheckBox *m_indentDeclarationsRelativeToAccessSpecifiers = nullptr;
QCheckBox *m_indentFunctionBody = nullptr;
QCheckBox *m_indentBlockBody = nullptr;
QCheckBox *m_indentNamespaceBody = nullptr;
QCheckBox *m_indentClassBraces = nullptr;
QCheckBox *m_indentNamespaceBraces = nullptr;
QCheckBox *m_indentEnumBraces = nullptr;
QCheckBox *m_indentFunctionBraces = nullptr;
QCheckBox *m_indentBlockBraces = nullptr;
QCheckBox *m_indentSwitchLabels = nullptr;
QCheckBox *m_indentCaseStatements = nullptr;
QCheckBox *m_indentCaseBlocks = nullptr;
QCheckBox *m_indentCaseBreak = nullptr;
QCheckBox *m_alignAssignments = nullptr;
QCheckBox *m_extraPaddingConditions = nullptr;
QCheckBox *m_bindStarToIdentifier = nullptr;
QCheckBox *m_bindStarToTypeName = nullptr;
QCheckBox *m_bindStarToLeftSpecifier = nullptr;
QCheckBox *m_bindStarToRightSpecifier = nullptr;
QList<SnippetEditorWidget *> m_previews;
QList<QWidget *> m_controllers;
QTabWidget *m_categoryTab = nullptr;
TabSettingsWidget *m_tabSettingsWidget = nullptr;
};
CppCodeStylePreferencesWidget::CppCodeStylePreferencesWidget(QWidget *parent) CppCodeStylePreferencesWidget::CppCodeStylePreferencesWidget(QWidget *parent)
: TextEditor::CodeStyleEditorWidget(parent), : TextEditor::CodeStyleEditorWidget(parent),
m_ui(new Ui::CppCodeStyleSettingsPage) d(new CppCodeStylePreferencesWidgetPrivate(this))
{ {
m_ui->setupUi(this);
m_ui->categoryTab->setProperty("_q_custom_style_disabled", true);
m_previews << m_ui->previewTextEditGeneral << m_ui->previewTextEditContent
<< m_ui->previewTextEditBraces << m_ui->previewTextEditSwitch
<< m_ui->previewTextEditPadding << m_ui->previewTextEditPointerReferences;
for (int i = 0; i < m_previews.size(); ++i)
m_previews[i]->setPlainText(QLatin1String(Constants::DEFAULT_CODE_STYLE_SNIPPETS[i]));
decorateEditors(TextEditorSettings::fontSettings()); decorateEditors(TextEditorSettings::fontSettings());
connect(TextEditorSettings::instance(), &TextEditorSettings::fontSettingsChanged, connect(TextEditorSettings::instance(), &TextEditorSettings::fontSettingsChanged,
this, &CppCodeStylePreferencesWidget::decorateEditors); this, &CppCodeStylePreferencesWidget::decorateEditors);
setVisualizeWhitespace(true); setVisualizeWhitespace(true);
connect(m_ui->tabSettingsWidget, &TabSettingsWidget::settingsChanged, // m_ui->categoryTab->setCurrentIndex(0);
this, &CppCodeStylePreferencesWidget::slotTabSettingsChanged);
connect(m_ui->indentBlockBraces, &QCheckBox::toggled,
this, &CppCodeStylePreferencesWidget::slotCodeStyleSettingsChanged);
connect(m_ui->indentBlockBody, &QCheckBox::toggled,
this, &CppCodeStylePreferencesWidget::slotCodeStyleSettingsChanged);
connect(m_ui->indentClassBraces, &QCheckBox::toggled,
this, &CppCodeStylePreferencesWidget::slotCodeStyleSettingsChanged);
connect(m_ui->indentNamespaceBraces, &QCheckBox::toggled,
this, &CppCodeStylePreferencesWidget::slotCodeStyleSettingsChanged);
connect(m_ui->indentEnumBraces, &QCheckBox::toggled,
this, &CppCodeStylePreferencesWidget::slotCodeStyleSettingsChanged);
connect(m_ui->indentNamespaceBody, &QCheckBox::toggled,
this, &CppCodeStylePreferencesWidget::slotCodeStyleSettingsChanged);
connect(m_ui->indentSwitchLabels, &QCheckBox::toggled,
this, &CppCodeStylePreferencesWidget::slotCodeStyleSettingsChanged);
connect(m_ui->indentCaseStatements, &QCheckBox::toggled,
this, &CppCodeStylePreferencesWidget::slotCodeStyleSettingsChanged);
connect(m_ui->indentCaseBlocks, &QCheckBox::toggled,
this, &CppCodeStylePreferencesWidget::slotCodeStyleSettingsChanged);
connect(m_ui->indentCaseBreak, &QCheckBox::toggled,
this, &CppCodeStylePreferencesWidget::slotCodeStyleSettingsChanged);
connect(m_ui->indentAccessSpecifiers, &QCheckBox::toggled,
this, &CppCodeStylePreferencesWidget::slotCodeStyleSettingsChanged);
connect(m_ui->indentDeclarationsRelativeToAccessSpecifiers, &QCheckBox::toggled,
this, &CppCodeStylePreferencesWidget::slotCodeStyleSettingsChanged);
connect(m_ui->indentFunctionBody, &QCheckBox::toggled,
this, &CppCodeStylePreferencesWidget::slotCodeStyleSettingsChanged);
connect(m_ui->indentFunctionBraces, &QCheckBox::toggled,
this, &CppCodeStylePreferencesWidget::slotCodeStyleSettingsChanged);
connect(m_ui->extraPaddingConditions, &QCheckBox::toggled,
this, &CppCodeStylePreferencesWidget::slotCodeStyleSettingsChanged);
connect(m_ui->alignAssignments, &QCheckBox::toggled,
this, &CppCodeStylePreferencesWidget::slotCodeStyleSettingsChanged);
connect(m_ui->bindStarToIdentifier, &QCheckBox::toggled,
this, &CppCodeStylePreferencesWidget::slotCodeStyleSettingsChanged);
connect(m_ui->bindStarToTypeName, &QCheckBox::toggled,
this, &CppCodeStylePreferencesWidget::slotCodeStyleSettingsChanged);
connect(m_ui->bindStarToLeftSpecifier, &QCheckBox::toggled,
this, &CppCodeStylePreferencesWidget::slotCodeStyleSettingsChanged);
connect(m_ui->bindStarToRightSpecifier, &QCheckBox::toggled,
this, &CppCodeStylePreferencesWidget::slotCodeStyleSettingsChanged);
m_ui->categoryTab->setCurrentIndex(0);
} }
CppCodeStylePreferencesWidget::~CppCodeStylePreferencesWidget() CppCodeStylePreferencesWidget::~CppCodeStylePreferencesWidget()
{ {
delete m_ui; delete d;
} }
void CppCodeStylePreferencesWidget::setCodeStyle(CppCodeStylePreferences *codeStylePreferences) void CppCodeStylePreferencesWidget::setCodeStyle(CppCodeStylePreferences *codeStylePreferences)
@@ -172,64 +365,64 @@ CppCodeStyleSettings CppCodeStylePreferencesWidget::cppCodeStyleSettings() const
{ {
CppCodeStyleSettings set; CppCodeStyleSettings set;
set.indentBlockBraces = m_ui->indentBlockBraces->isChecked(); set.indentBlockBraces = d->m_indentBlockBraces->isChecked();
set.indentBlockBody = m_ui->indentBlockBody->isChecked(); set.indentBlockBody = d->m_indentBlockBody->isChecked();
set.indentClassBraces = m_ui->indentClassBraces->isChecked(); set.indentClassBraces = d->m_indentClassBraces->isChecked();
set.indentEnumBraces = m_ui->indentEnumBraces->isChecked(); set.indentEnumBraces = d->m_indentEnumBraces->isChecked();
set.indentNamespaceBraces = m_ui->indentNamespaceBraces->isChecked(); set.indentNamespaceBraces = d->m_indentNamespaceBraces->isChecked();
set.indentNamespaceBody = m_ui->indentNamespaceBody->isChecked(); set.indentNamespaceBody = d->m_indentNamespaceBody->isChecked();
set.indentAccessSpecifiers = m_ui->indentAccessSpecifiers->isChecked(); set.indentAccessSpecifiers = d->m_indentAccessSpecifiers->isChecked();
set.indentDeclarationsRelativeToAccessSpecifiers = m_ui->indentDeclarationsRelativeToAccessSpecifiers->isChecked(); set.indentDeclarationsRelativeToAccessSpecifiers = d->m_indentDeclarationsRelativeToAccessSpecifiers->isChecked();
set.indentFunctionBody = m_ui->indentFunctionBody->isChecked(); set.indentFunctionBody = d->m_indentFunctionBody->isChecked();
set.indentFunctionBraces = m_ui->indentFunctionBraces->isChecked(); set.indentFunctionBraces = d->m_indentFunctionBraces->isChecked();
set.indentSwitchLabels = m_ui->indentSwitchLabels->isChecked(); set.indentSwitchLabels = d->m_indentSwitchLabels->isChecked();
set.indentStatementsRelativeToSwitchLabels = m_ui->indentCaseStatements->isChecked(); set.indentStatementsRelativeToSwitchLabels = d->m_indentCaseStatements->isChecked();
set.indentBlocksRelativeToSwitchLabels = m_ui->indentCaseBlocks->isChecked(); set.indentBlocksRelativeToSwitchLabels = d->m_indentCaseBlocks->isChecked();
set.indentControlFlowRelativeToSwitchLabels = m_ui->indentCaseBreak->isChecked(); set.indentControlFlowRelativeToSwitchLabels = d->m_indentCaseBreak->isChecked();
set.bindStarToIdentifier = m_ui->bindStarToIdentifier->isChecked(); set.bindStarToIdentifier = d->m_bindStarToIdentifier->isChecked();
set.bindStarToTypeName = m_ui->bindStarToTypeName->isChecked(); set.bindStarToTypeName = d->m_bindStarToTypeName->isChecked();
set.bindStarToLeftSpecifier = m_ui->bindStarToLeftSpecifier->isChecked(); set.bindStarToLeftSpecifier = d->m_bindStarToLeftSpecifier->isChecked();
set.bindStarToRightSpecifier = m_ui->bindStarToRightSpecifier->isChecked(); set.bindStarToRightSpecifier = d->m_bindStarToRightSpecifier->isChecked();
set.extraPaddingForConditionsIfConfusingAlign = m_ui->extraPaddingConditions->isChecked(); set.extraPaddingForConditionsIfConfusingAlign = d->m_extraPaddingConditions->isChecked();
set.alignAssignments = m_ui->alignAssignments->isChecked(); set.alignAssignments = d->m_alignAssignments->isChecked();
return set; return set;
} }
void CppCodeStylePreferencesWidget::setTabSettings(const TabSettings &settings) void CppCodeStylePreferencesWidget::setTabSettings(const TabSettings &settings)
{ {
m_ui->tabSettingsWidget->setTabSettings(settings); d->m_tabSettingsWidget->setTabSettings(settings);
} }
TextEditor::TabSettings CppCodeStylePreferencesWidget::tabSettings() const TextEditor::TabSettings CppCodeStylePreferencesWidget::tabSettings() const
{ {
return m_ui->tabSettingsWidget->tabSettings(); return d->m_tabSettingsWidget->tabSettings();
} }
void CppCodeStylePreferencesWidget::setCodeStyleSettings(const CppCodeStyleSettings &s, bool preview) void CppCodeStylePreferencesWidget::setCodeStyleSettings(const CppCodeStyleSettings &s, bool preview)
{ {
const bool wasBlocked = m_blockUpdates; const bool wasBlocked = m_blockUpdates;
m_blockUpdates = true; m_blockUpdates = true;
m_ui->indentBlockBraces->setChecked(s.indentBlockBraces); d->m_indentBlockBraces->setChecked(s.indentBlockBraces);
m_ui->indentBlockBody->setChecked(s.indentBlockBody); d->m_indentBlockBody->setChecked(s.indentBlockBody);
m_ui->indentClassBraces->setChecked(s.indentClassBraces); d->m_indentClassBraces->setChecked(s.indentClassBraces);
m_ui->indentEnumBraces->setChecked(s.indentEnumBraces); d->m_indentEnumBraces->setChecked(s.indentEnumBraces);
m_ui->indentNamespaceBraces->setChecked(s.indentNamespaceBraces); d->m_indentNamespaceBraces->setChecked(s.indentNamespaceBraces);
m_ui->indentNamespaceBody->setChecked(s.indentNamespaceBody); d->m_indentNamespaceBody->setChecked(s.indentNamespaceBody);
m_ui->indentAccessSpecifiers->setChecked(s.indentAccessSpecifiers); d->m_indentAccessSpecifiers->setChecked(s.indentAccessSpecifiers);
m_ui->indentDeclarationsRelativeToAccessSpecifiers->setChecked(s.indentDeclarationsRelativeToAccessSpecifiers); d->m_indentDeclarationsRelativeToAccessSpecifiers->setChecked(s.indentDeclarationsRelativeToAccessSpecifiers);
m_ui->indentFunctionBody->setChecked(s.indentFunctionBody); d->m_indentFunctionBody->setChecked(s.indentFunctionBody);
m_ui->indentFunctionBraces->setChecked(s.indentFunctionBraces); d->m_indentFunctionBraces->setChecked(s.indentFunctionBraces);
m_ui->indentSwitchLabels->setChecked(s.indentSwitchLabels); d->m_indentSwitchLabels->setChecked(s.indentSwitchLabels);
m_ui->indentCaseStatements->setChecked(s.indentStatementsRelativeToSwitchLabels); d->m_indentCaseStatements->setChecked(s.indentStatementsRelativeToSwitchLabels);
m_ui->indentCaseBlocks->setChecked(s.indentBlocksRelativeToSwitchLabels); d->m_indentCaseBlocks->setChecked(s.indentBlocksRelativeToSwitchLabels);
m_ui->indentCaseBreak->setChecked(s.indentControlFlowRelativeToSwitchLabels); d->m_indentCaseBreak->setChecked(s.indentControlFlowRelativeToSwitchLabels);
m_ui->bindStarToIdentifier->setChecked(s.bindStarToIdentifier); d->m_bindStarToIdentifier->setChecked(s.bindStarToIdentifier);
m_ui->bindStarToTypeName->setChecked(s.bindStarToTypeName); d->m_bindStarToTypeName->setChecked(s.bindStarToTypeName);
m_ui->bindStarToLeftSpecifier->setChecked(s.bindStarToLeftSpecifier); d->m_bindStarToLeftSpecifier->setChecked(s.bindStarToLeftSpecifier);
m_ui->bindStarToRightSpecifier->setChecked(s.bindStarToRightSpecifier); d->m_bindStarToRightSpecifier->setChecked(s.bindStarToRightSpecifier);
m_ui->extraPaddingConditions->setChecked(s.extraPaddingForConditionsIfConfusingAlign); d->m_extraPaddingConditions->setChecked(s.extraPaddingForConditionsIfConfusingAlign);
m_ui->alignAssignments->setChecked(s.alignAssignments); d->m_alignAssignments->setChecked(s.alignAssignments);
m_blockUpdates = wasBlocked; m_blockUpdates = wasBlocked;
if (preview) if (preview)
updatePreview(); updatePreview();
@@ -238,12 +431,9 @@ void CppCodeStylePreferencesWidget::setCodeStyleSettings(const CppCodeStyleSetti
void CppCodeStylePreferencesWidget::slotCurrentPreferencesChanged(ICodeStylePreferences *preferences, bool preview) void CppCodeStylePreferencesWidget::slotCurrentPreferencesChanged(ICodeStylePreferences *preferences, bool preview)
{ {
const bool enable = !preferences->isReadOnly(); const bool enable = !preferences->isReadOnly();
m_ui->tabSettingsWidget->setEnabled(enable); for (QWidget *widget : d->m_controllers)
m_ui->contentGroupBox->setEnabled(enable); widget->setEnabled(enable);
m_ui->bracesGroupBox->setEnabled(enable);
m_ui->switchGroupBox->setEnabled(enable);
m_ui->alignmentGroupBox->setEnabled(enable);
m_ui->pointerReferencesGroupBox->setEnabled(enable);
if (preview) if (preview)
updatePreview(); updatePreview();
} }
@@ -285,7 +475,7 @@ void CppCodeStylePreferencesWidget::updatePreview()
const CppCodeStyleSettings ccss = cppCodeStylePreferences->currentCodeStyleSettings(); const CppCodeStyleSettings ccss = cppCodeStylePreferences->currentCodeStyleSettings();
const TabSettings ts = cppCodeStylePreferences->currentTabSettings(); const TabSettings ts = cppCodeStylePreferences->currentTabSettings();
QtStyleCodeFormatter formatter(ts, ccss); QtStyleCodeFormatter formatter(ts, ccss);
for (SnippetEditorWidget *preview : std::as_const(m_previews)) { for (SnippetEditorWidget *preview : std::as_const(d->m_previews)) {
preview->textDocument()->setTabSettings(ts); preview->textDocument()->setTabSettings(ts);
preview->setCodeStyle(cppCodeStylePreferences); preview->setCodeStyle(cppCodeStylePreferences);
@@ -307,7 +497,7 @@ void CppCodeStylePreferencesWidget::updatePreview()
void CppCodeStylePreferencesWidget::decorateEditors(const FontSettings &fontSettings) void CppCodeStylePreferencesWidget::decorateEditors(const FontSettings &fontSettings)
{ {
for (SnippetEditorWidget *editor : std::as_const(m_previews)) { for (SnippetEditorWidget *editor : std::as_const(d->m_previews)) {
editor->textDocument()->setFontSettings(fontSettings); editor->textDocument()->setFontSettings(fontSettings);
SnippetProvider::decorateEditor(editor, CppEditor::Constants::CPP_SNIPPETS_GROUP_ID); SnippetProvider::decorateEditor(editor, CppEditor::Constants::CPP_SNIPPETS_GROUP_ID);
} }
@@ -315,7 +505,7 @@ void CppCodeStylePreferencesWidget::decorateEditors(const FontSettings &fontSett
void CppCodeStylePreferencesWidget::setVisualizeWhitespace(bool on) void CppCodeStylePreferencesWidget::setVisualizeWhitespace(bool on)
{ {
for (SnippetEditorWidget *editor : std::as_const(m_previews)) { for (SnippetEditorWidget *editor : std::as_const(d->m_previews)) {
DisplaySettings displaySettings = editor->displaySettings(); DisplaySettings displaySettings = editor->displaySettings();
displaySettings.m_visualizeWhitespace = on; displaySettings.m_visualizeWhitespace = on;
editor->setDisplaySettings(displaySettings); editor->setDisplaySettings(displaySettings);
@@ -327,8 +517,8 @@ void CppCodeStylePreferencesWidget::addTab(CppCodeStyleWidget *page, QString tab
if (!page) if (!page)
return; return;
m_ui->categoryTab->insertTab(0, page, tabName); d->m_categoryTab->insertTab(0, page, tabName);
m_ui->categoryTab->setCurrentIndex(0); d->m_categoryTab->setCurrentIndex(0);
connect(page, &CppEditor::CppCodeStyleWidget::codeStyleSettingsChanged, connect(page, &CppEditor::CppCodeStyleWidget::codeStyleSettingsChanged,
this, [this](const CppEditor::CppCodeStyleSettings &settings) { this, [this](const CppEditor::CppCodeStyleSettings &settings) {

View File

@@ -4,7 +4,6 @@
#pragma once #pragma once
#include "cppcodestylesettings.h" #include "cppcodestylesettings.h"
#include "cppcodeformatter.h"
#include <coreplugin/dialogs/ioptionspage.h> #include <coreplugin/dialogs/ioptionspage.h>
#include <texteditor/icodestylepreferencesfactory.h> #include <texteditor/icodestylepreferencesfactory.h>
@@ -42,7 +41,7 @@ signals:
namespace Internal { namespace Internal {
namespace Ui { class CppCodeStyleSettingsPage; } class CppCodeStylePreferencesWidgetPrivate;
class CppCodeStylePreferencesWidget : public TextEditor::CodeStyleEditorWidget class CppCodeStylePreferencesWidget : public TextEditor::CodeStyleEditorWidget
{ {
@@ -70,9 +69,9 @@ private:
CppCodeStyleSettings cppCodeStyleSettings() const; CppCodeStyleSettings cppCodeStyleSettings() const;
CppCodeStylePreferences *m_preferences = nullptr; CppCodeStylePreferences *m_preferences = nullptr;
Ui::CppCodeStyleSettingsPage *m_ui; CppCodeStylePreferencesWidgetPrivate *d = nullptr;
QList<TextEditor::SnippetEditorWidget *> m_previews;
bool m_blockUpdates = false; bool m_blockUpdates = false;
friend class CppCodeStylePreferencesWidgetPrivate;
signals: signals:
void codeStyleSettingsChanged(const CppEditor::CppCodeStyleSettings &); void codeStyleSettingsChanged(const CppEditor::CppCodeStyleSettings &);
void tabSettingsChanged(const TextEditor::TabSettings &); void tabSettingsChanged(const TextEditor::TabSettings &);

View File

@@ -1,455 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>CppEditor::Internal::CppCodeStyleSettingsPage</class>
<widget class="QWidget" name="CppEditor::Internal::CppCodeStyleSettingsPage">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>463</width>
<height>317</height>
</rect>
</property>
<property name="windowTitle">
<string/>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QTabWidget" name="categoryTab">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="generalTab">
<attribute name="title">
<string>General</string>
</attribute>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="TextEditor::TabSettingsWidget" name="tabSettingsWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::TabFocus</enum>
</property>
</widget>
</item>
<item row="0" column="1" rowspan="2">
<widget class="TextEditor::SnippetEditorWidget" name="previewTextEditGeneral">
<property name="plainText">
<string/>
</property>
</widget>
</item>
<item row="1" column="0">
<spacer name="verticalSpacer_5">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>347</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="contentTab">
<attribute name="title">
<string>Content</string>
</attribute>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QGroupBox" name="contentGroupBox">
<property name="title">
<string>Indent</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QCheckBox" name="indentAccessSpecifiers">
<property name="text">
<string>&quot;public&quot;, &quot;protected&quot; and
&quot;private&quot; within class body</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="indentDeclarationsRelativeToAccessSpecifiers">
<property name="text">
<string>Declarations relative to &quot;public&quot;,
&quot;protected&quot; and &quot;private&quot;</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="indentFunctionBody">
<property name="text">
<string>Statements within function body</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="indentBlockBody">
<property name="text">
<string>Statements within blocks</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="indentNamespaceBody">
<property name="text">
<string>Declarations within
&quot;namespace&quot; definition</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>17</width>
<height>114</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="TextEditor::SnippetEditorWidget" name="previewTextEditContent">
<property name="plainText">
<string/>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="bracesTab">
<attribute name="title">
<string>Braces</string>
</attribute>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QGroupBox" name="bracesGroupBox">
<property name="title">
<string>Indent Braces</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QCheckBox" name="indentClassBraces">
<property name="text">
<string>Class declarations</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="indentNamespaceBraces">
<property name="text">
<string>Namespace declarations</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="indentEnumBraces">
<property name="text">
<string>Enum declarations</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="indentFunctionBraces">
<property name="text">
<string>Function declarations</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="indentBlockBraces">
<property name="text">
<string>Blocks</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>195</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="TextEditor::SnippetEditorWidget" name="previewTextEditBraces">
<property name="plainText">
<string/>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="switchTab">
<attribute name="title">
<string>&quot;switch&quot;</string>
</attribute>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QGroupBox" name="switchGroupBox">
<property name="title">
<string>Indent within &quot;switch&quot;</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QCheckBox" name="indentSwitchLabels">
<property name="text">
<string>&quot;case&quot; or &quot;default&quot;</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="indentCaseStatements">
<property name="text">
<string>Statements relative to
&quot;case&quot; or &quot;default&quot;</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="indentCaseBlocks">
<property name="text">
<string>Blocks relative to
&quot;case&quot; or &quot;default&quot;</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="indentCaseBreak">
<property name="text">
<string>&quot;break&quot; statement relative to
&quot;case&quot; or &quot;default&quot;</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_4">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>143</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="TextEditor::SnippetEditorWidget" name="previewTextEditSwitch">
<property name="plainText">
<string/>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="alignmentTab">
<attribute name="title">
<string>Alignment</string>
</attribute>
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<widget class="QGroupBox" name="alignmentGroupBox">
<property name="title">
<string>Align</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<widget class="QCheckBox" name="alignAssignments">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;
Enables alignment to tokens after =, += etc. When the option is disabled, regular continuation line indentation will be used.&lt;br&gt;
&lt;br&gt;
With alignment:
&lt;pre&gt;
a = a +
b
&lt;/pre&gt;
Without alignment:
&lt;pre&gt;
a = a +
b
&lt;/pre&gt;
&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Align after assignments</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="extraPaddingConditions">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;
Adds an extra level of indentation to multiline conditions in the switch, if, while and foreach statements if they would otherwise have the same or less indentation than a nested statement.
For four-spaces indentation only if statement conditions are affected. Without extra padding:
&lt;pre&gt;
if (a &amp;&amp;
b)
c;
&lt;/pre&gt;
With extra padding:
&lt;pre&gt;
if (a &amp;&amp;
b)
c;
&lt;/pre&gt;
&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Add extra padding to conditions
if they would align to the next line</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="TextEditor::SnippetEditorWidget" name="previewTextEditPadding">
<property name="plainText">
<string/>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="typesTab">
<attribute name="title">
<string>Pointers and References</string>
</attribute>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QGroupBox" name="pointerReferencesGroupBox">
<property name="title">
<string>Bind '*' and '&amp;&amp;' in types/declarations to</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_6">
<item>
<widget class="QCheckBox" name="bindStarToIdentifier">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;This does not apply to the star and reference symbol in pointer/reference to functions and arrays, e.g.:
&lt;pre&gt; int (&amp;rf)() = ...;
int (*pf)() = ...;
int (&amp;ra)[2] = ...;
int (*pa)[2] = ...;
&lt;/pre&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Identifier</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="bindStarToTypeName">
<property name="text">
<string>Type name</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="bindStarToLeftSpecifier">
<property name="text">
<string>Left const/volatile</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="bindStarToRightSpecifier">
<property name="toolTip">
<string>This does not apply to references.</string>
</property>
<property name="text">
<string>Right const/volatile</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_6">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="TextEditor::SnippetEditorWidget" name="previewTextEditPointerReferences">
<property name="plainText">
<string/>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>TextEditor::TabSettingsWidget</class>
<extends>QWidget</extends>
<header location="global">texteditor/tabsettingswidget.h</header>
<container>1</container>
</customwidget>
<customwidget>
<class>TextEditor::SnippetEditorWidget</class>
<extends>QPlainTextEdit</extends>
<header location="global">texteditor/snippets/snippeteditor.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>

View File

@@ -6,169 +6,175 @@
namespace CppEditor { namespace CppEditor {
namespace Constants { namespace Constants {
static const char *DEFAULT_CODE_STYLE_SNIPPETS[] static const char *DEFAULT_CODE_STYLE_SNIPPETS[] = {
= {"#include <math.h>\n" R"==(#include <math.h>
"\n"
"class Complex\n" class Complex
" {\n" {
"public:\n" public:
" Complex(double re, double im)\n" Complex(double re, double im)
" : _re(re), _im(im)\n" : _re(re), _im(im)
" {}\n" {}
" double modulus() const\n" double modulus() const
" {\n" {
" return sqrt(_re * _re + _im * _im);\n" return sqrt(_re * _re + _im * _im);
" }\n" }
"private:\n" private:
" double _re;\n" double _re;
" double _im;\n" double _im;
" };\n" };
"\n"
"void bar(int i)\n" void bar(int i)
" {\n" {
" static int counter = 0;\n" static int counter = 0;
" counter += i;\n" counter += i;
" }\n" }
"\n"
"namespace Foo\n" namespace Foo
" {\n" {
" namespace Bar\n" namespace Bar
" {\n" {
" void foo(int a, int b)\n" void foo(int a, int b)
" {\n" {
" for (int i = 0; i < a; i++)\n" for (int i = 0; i < a; i++)
" {\n" {
" if (i < b)\n" if (i < b)
" bar(i);\n" bar(i);
" else\n" else
" {\n" {
" bar(i);\n" bar(i);
" bar(b);\n" bar(b);
" }\n" }
" }\n" }
" }\n" }
" } // namespace Bar\n" } // namespace Bar
" } // namespace Foo\n", } // namespace Foo
"#include <math.h>\n" )==",
"\n" R"==(#include <math.h>
"class Complex\n"
" {\n" class Complex
"public:\n" {
" Complex(double re, double im)\n" public:
" : _re(re), _im(im)\n" Complex(double re, double im)
" {}\n" : _re(re), _im(im)
" double modulus() const\n" {}
" {\n" double modulus() const
" return sqrt(_re * _re + _im * _im);\n" {
" }\n" return sqrt(_re * _re + _im * _im);
"private:\n" }
" double _re;\n" private:
" double _im;\n" double _re;
" };\n" double _im;
"\n" };
"void bar(int i)\n"
" {\n" void bar(int i)
" static int counter = 0;\n" {
" counter += i;\n" static int counter = 0;
" }\n" counter += i;
"\n" }
"namespace Foo\n"
" {\n" namespace Foo
" namespace Bar\n" {
" {\n" namespace Bar
" void foo(int a, int b)\n" {
" {\n" void foo(int a, int b)
" for (int i = 0; i < a; i++)\n" {
" {\n" for (int i = 0; i < a; i++)
" if (i < b)\n" {
" bar(i);\n" if (i < b)
" else\n" bar(i);
" {\n" else
" bar(i);\n" {
" bar(b);\n" bar(i);
" }\n" bar(b);
" }\n" }
" }\n" }
" } // namespace Bar\n" }
" } // namespace Foo\n", } // namespace Bar
"namespace Foo\n" } // namespace Foo
"{\n" )==",
"namespace Bar\n" R"==(namespace Foo
"{\n" {
"class FooBar\n" namespace Bar
" {\n" {
"public:\n" class FooBar
" FooBar(int a)\n" {
" : _a(a)\n" public:
" {}\n" FooBar(int a)
" int calculate() const\n" : _a(a)
" {\n" {}
" if (a > 10)\n" int calculate() const
" {\n" {
" int b = 2 * a;\n" if (a > 10)
" return a * b;\n" {
" }\n" int b = 2 * a;
" return -a;\n" return a * b;
" }\n" }
"private:\n" return -a;
" int _a;\n" }
" };\n" private:
"enum class E\n" int _a;
"{\n" };
" V1,\n" enum class E
" V2,\n" {
" V3\n" V1,
"};\n" V2,
"}\n" V3
"}\n", };
"#include \"bar.h\"\n" }
"\n" }
"int foo(int a)\n" )==",
" {\n" R"==(#include "bar.h"
" switch (a)\n"
" {\n" int foo(int a)
" case 1:\n" {
" bar(1);\n" switch (a)
" break;\n" {
" case 2:\n" case 1:
" {\n" bar(1);
" bar(2);\n" break;
" break;\n" case 2:
" }\n" {
" case 3:\n" bar(2);
" default:\n" break;
" bar(3);\n" }
" break;\n" case 3:
" }\n" default:
" return 0;\n" bar(3);
" }\n", break;
"void foo() {\n" }
" if (a &&\n" return 0;
" b)\n" }
" c;\n" )==",
"\n" R"==(void foo() {
" while (a ||\n" if (a &&
" b)\n" b)
" break;\n" c;
" a = b +\n"
" c;\n" while (a ||
" myInstance.longMemberName +=\n" b)
" foo;\n" break;
" myInstance.longMemberName += bar +\n" a = b +
" foo;\n" c;
"}\n", myInstance.longMemberName +=
"int *foo(const Bar &b1, Bar &&b2, int*, int *&rpi)\n" foo;
"{\n" myInstance.longMemberName += bar +
" int*pi = 0;\n" foo;
" int*const*const cpcpi = &pi;\n" }
" int*const*pcpi = &pi;\n" )==",
" int**const cppi = &pi;\n" R"==(int *foo(const Bar &b1, Bar &&b2, int*, int *&rpi)
"\n" {
" void (*foo)(char *s) = 0;\n" int*pi = 0;
" int (*bar)[] = 0;\n" int*const*const cpcpi = &pi;
"\n" int*const*pcpi = &pi;
" return pi;\n" int**const cppi = &pi;
"}\n"};
void (*foo)(char *s) = 0;
int (*bar)[] = 0;
return pi;
}
)=="};
} // namespace Constants } // namespace Constants
} // namespace CppEditor } // namespace CppEditor

View File

@@ -78,7 +78,6 @@ QtcPlugin {
"cppcodestylesettings.h", "cppcodestylesettings.h",
"cppcodestylesettingspage.cpp", "cppcodestylesettingspage.cpp",
"cppcodestylesettingspage.h", "cppcodestylesettingspage.h",
"cppcodestylesettingspage.ui",
"cppcodestylesnippets.h", "cppcodestylesnippets.h",
"cppcompletionassist.cpp", "cppcompletionassist.cpp",
"cppcompletionassist.h", "cppcompletionassist.h",