diff --git a/src/plugins/cpptools/completionsettingspage.cpp b/src/plugins/cpptools/completionsettingspage.cpp index 79729b7215b2682f74f241ab965c2e871ec24caa..8a3b93a0613e2c414e7cff3ee2d6bc52644e74c5 100644 --- a/src/plugins/cpptools/completionsettingspage.cpp +++ b/src/plugins/cpptools/completionsettingspage.cpp @@ -96,10 +96,12 @@ QWidget *CompletionSettingsPage::createPage(QWidget *parent) m_page->caseSensitivity->setCurrentIndex(caseSensitivityIndex); m_page->autoInsertBrackets->setChecked(m_completion->autoInsertBrackets()); m_page->partiallyComplete->setChecked(m_completion->isPartialCompletionEnabled()); + m_page->spaceAfterFunctionName->setChecked(m_completion->isSpaceAfterFunctionName()); if (m_searchKeywords.isEmpty()) { QTextStream(&m_searchKeywords) << m_page->caseSensitivityLabel->text() << ' ' << m_page->autoInsertBrackets->text() - << ' ' << m_page->partiallyComplete->text(); + << ' ' << m_page->partiallyComplete->text() + << ' ' << m_page->spaceAfterFunctionName->text(); m_searchKeywords.remove(QLatin1Char('&')); } return w; @@ -110,6 +112,7 @@ void CompletionSettingsPage::apply() m_completion->setCaseSensitivity(caseSensitivity()); m_completion->setAutoInsertBrackets(m_page->autoInsertBrackets->isChecked()); m_completion->setPartialCompletionEnabled(m_page->partiallyComplete->isChecked()); + m_completion->setSpaceAfterFunctionName(m_page->spaceAfterFunctionName->isChecked()); } bool CompletionSettingsPage::matches(const QString &s) const diff --git a/src/plugins/cpptools/completionsettingspage.ui b/src/plugins/cpptools/completionsettingspage.ui index a884752910a9b275b497a0b7ad37a5fd573b6497..4167db7c3d5bdc7062bec4a49c69c2077f67521a 100644 --- a/src/plugins/cpptools/completionsettingspage.ui +++ b/src/plugins/cpptools/completionsettingspage.ui @@ -111,6 +111,16 @@ </property> </widget> </item> + <item> + <widget class="QCheckBox" name="spaceAfterFunctionName"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="text"> + <string>Insert &space after function name</string> + </property> + </widget> + </item> </layout> </widget> </item> diff --git a/src/plugins/cpptools/cppcodecompletion.cpp b/src/plugins/cpptools/cppcodecompletion.cpp index bbc63d9ee091ed52894213dd341ab861ce10bf56..2e72ef55004d10fbd36158bf591336b3275cfa46 100644 --- a/src/plugins/cpptools/cppcodecompletion.cpp +++ b/src/plugins/cpptools/cppcodecompletion.cpp @@ -479,6 +479,7 @@ CppCodeCompletion::CppCodeCompletion(CppModelManager *manager) m_caseSensitivity(FirstLetterCaseSensitive), m_autoInsertBrackets(true), m_partialCompletionEnabled(true), + m_spaceAfterFunctionName(false), m_forcedCompletion(false), m_completionOperator(T_EOF_SYMBOL), m_objcEnabled(true) @@ -520,6 +521,16 @@ void CppCodeCompletion::setPartialCompletionEnabled(bool partialCompletionEnable m_partialCompletionEnabled = partialCompletionEnabled; } +bool CppCodeCompletion::isSpaceAfterFunctionName() const +{ + return m_spaceAfterFunctionName; +} + +void CppCodeCompletion::setSpaceAfterFunctionName(bool spaceAfterFunctionName) +{ + m_spaceAfterFunctionName = spaceAfterFunctionName; +} + /* Searches backwards for an access operator. */ @@ -1580,6 +1591,8 @@ void CppCodeCompletion::complete(const TextEditor::CompletionItem &item) extraChars += QLatin1Char('<'); } } else if (! function->isAmbiguous()) { + if (m_spaceAfterFunctionName) + extraChars += QLatin1Char(' '); extraChars += QLatin1Char('('); // If the function doesn't return anything, automatically place the semicolon, diff --git a/src/plugins/cpptools/cppcodecompletion.h b/src/plugins/cpptools/cppcodecompletion.h index 6648c162ac3dff9ced7bbb06d910a40ce4810fd2..b3c8402ee27348e2e9837d40486b61d59d0eca01 100644 --- a/src/plugins/cpptools/cppcodecompletion.h +++ b/src/plugins/cpptools/cppcodecompletion.h @@ -88,6 +88,9 @@ public: bool isPartialCompletionEnabled() const; void setPartialCompletionEnabled(bool partialCompletionEnabled); + bool isSpaceAfterFunctionName() const; + void setSpaceAfterFunctionName(bool spaceAfterFunctionName); + private: void addKeywords(); void addMacros(const QString &fileName, const CPlusPlus::Snapshot &snapshot); @@ -152,6 +155,7 @@ private: CaseSensitivity m_caseSensitivity; bool m_autoInsertBrackets; bool m_partialCompletionEnabled; + bool m_spaceAfterFunctionName; bool m_forcedCompletion; unsigned m_completionOperator; bool m_objcEnabled; diff --git a/src/plugins/cpptools/cpptoolsplugin.cpp b/src/plugins/cpptools/cpptoolsplugin.cpp index 6af7f926cfd174f1d5b8dc774873ad5a0c0a0a11..fd6b4cd1d2d64d5352ad6f1c7f865712206ad1d1 100644 --- a/src/plugins/cpptools/cpptoolsplugin.cpp +++ b/src/plugins/cpptools/cpptoolsplugin.cpp @@ -147,6 +147,7 @@ bool CppToolsPlugin::initialize(const QStringList &arguments, QString *error) m_completion->setCaseSensitivity((CppCodeCompletion::CaseSensitivity) caseSensitivity); m_completion->setAutoInsertBrackets(settings->value(QLatin1String("AutoInsertBraces"), true).toBool()); m_completion->setPartialCompletionEnabled(settings->value(QLatin1String("PartiallyComplete"), true).toBool()); + m_completion->setSpaceAfterFunctionName(settings->value(QLatin1String("SpaceAfterFunctionName"), false).toBool()); settings->endGroup(); settings->endGroup(); @@ -176,6 +177,7 @@ void CppToolsPlugin::shutdown() settings->setValue(QLatin1String("CaseSensitivity"), (int) m_completion->caseSensitivity()); settings->setValue(QLatin1String("AutoInsertBraces"), m_completion->autoInsertBrackets()); settings->setValue(QLatin1String("PartiallyComplete"), m_completion->isPartialCompletionEnabled()); + settings->setValue(QLatin1String("SpaceAfterFunctionName"), m_completion->isSpaceAfterFunctionName()); settings->endGroup(); settings->endGroup(); }