diff options
| author | Nikolai Kosjar <nikolai.kosjar@theqtcompany.com> | 2015-04-24 10:51:25 +0200 |
|---|---|---|
| committer | Nikolai Kosjar <nikolai.kosjar@theqtcompany.com> | 2015-04-29 12:05:29 +0000 |
| commit | f283964602af05ec4c8d59d84c746084e9c2c2aa (patch) | |
| tree | 78c011f073bf8e7a3a796f12e25643fd16236da7 | |
| parent | 8f9d84062e77310e767640da44749ee62c85f1fb (diff) | |
| download | qt-creator-f283964602af05ec4c8d59d84c746084e9c2c2aa.tar.gz | |
CppTools/Clang: Refactoring: Extract skipPrecedingWhitespace()
Change-Id: Iddcdfb65c8b6ed367baf4b1f3046d661731f487b
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
4 files changed, 21 insertions, 12 deletions
diff --git a/src/plugins/clangcodemodel/clangcompletion.cpp b/src/plugins/clangcodemodel/clangcompletion.cpp index 6f2a28eb4c..93fe351ad4 100644 --- a/src/plugins/clangcodemodel/clangcompletion.cpp +++ b/src/plugins/clangcodemodel/clangcompletion.cpp @@ -598,12 +598,7 @@ int ClangCompletionAssistProcessor::startCompletionHelper() m_startPosition = startOfName; m_model->m_completionOperator = T_EOF_SYMBOL; - int endOfOperator = m_startPosition; - - // Skip whitespace preceding this position - while (m_interface->characterAt(endOfOperator - 1).isSpace()) - --endOfOperator; - + int endOfOperator = skipPrecedingWhitespace(m_interface.data(), m_startPosition); int endOfExpression = startOfOperator(endOfOperator, &m_model->m_completionOperator, /*want function call =*/ true); diff --git a/src/plugins/cpptools/cppcompletionassist.cpp b/src/plugins/cpptools/cppcompletionassist.cpp index bb482038ec..24d1fc52b1 100644 --- a/src/plugins/cpptools/cppcompletionassist.cpp +++ b/src/plugins/cpptools/cppcompletionassist.cpp @@ -1064,12 +1064,7 @@ int InternalCppCompletionAssistProcessor::startCompletionHelper() m_startPosition = startOfName; m_model->m_completionOperator = T_EOF_SYMBOL; - int endOfOperator = m_startPosition; - - // Skip whitespace preceding this position - while (m_interface->characterAt(endOfOperator - 1).isSpace()) - --endOfOperator; - + int endOfOperator = skipPrecedingWhitespace(m_interface.data(), m_startPosition); int endOfExpression = startOfOperator(endOfOperator, &m_model->m_completionOperator, /*want function call =*/ true); diff --git a/src/plugins/cpptools/cppcompletionassistprocessor.cpp b/src/plugins/cpptools/cppcompletionassistprocessor.cpp index d6ce5e6a14..cae7ae804f 100644 --- a/src/plugins/cpptools/cppcompletionassistprocessor.cpp +++ b/src/plugins/cpptools/cppcompletionassistprocessor.cpp @@ -31,6 +31,10 @@ #include "cppcompletionassistprocessor.h" #include <cppeditor/cppeditorconstants.h> +#include <texteditor/codeassist/assistinterface.h> + +#include <utils/qtcassert.h> + namespace CppTools { @@ -70,6 +74,16 @@ CppCompletionAssistProcessor::CppCompletionAssistProcessor() { } +int CppCompletionAssistProcessor::skipPrecedingWhitespace( + const TextEditor::AssistInterface *assistInterface, + int startPosition) +{ + QTC_ASSERT(assistInterface && startPosition >= 0, return startPosition); + while (assistInterface->characterAt(startPosition - 1).isSpace()) + --startPosition; + return startPosition; +} + void CppCompletionAssistProcessor::addSnippets() { m_completions.append(m_snippetCollector.collect()); diff --git a/src/plugins/cpptools/cppcompletionassistprocessor.h b/src/plugins/cpptools/cppcompletionassistprocessor.h index 294c5011ca..2a4b20ecf1 100644 --- a/src/plugins/cpptools/cppcompletionassistprocessor.h +++ b/src/plugins/cpptools/cppcompletionassistprocessor.h @@ -38,6 +38,8 @@ #include <cplusplus/Icons.h> +namespace TextEditor { class AssistInterface; } + namespace CppTools { class CPPTOOLS_EXPORT CppCompletionAssistProcessor : public TextEditor::IAssistProcessor @@ -46,6 +48,9 @@ public: CppCompletionAssistProcessor(); protected: + static int skipPrecedingWhitespace(const TextEditor::AssistInterface *assistInterface, + int startPosition); + void addSnippets(); int m_startPosition; |
