summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@theqtcompany.com>2015-04-24 10:51:25 +0200
committerNikolai Kosjar <nikolai.kosjar@theqtcompany.com>2015-04-29 12:05:29 +0000
commitf283964602af05ec4c8d59d84c746084e9c2c2aa (patch)
tree78c011f073bf8e7a3a796f12e25643fd16236da7
parent8f9d84062e77310e767640da44749ee62c85f1fb (diff)
downloadqt-creator-f283964602af05ec4c8d59d84c746084e9c2c2aa.tar.gz
CppTools/Clang: Refactoring: Extract skipPrecedingWhitespace()
Change-Id: Iddcdfb65c8b6ed367baf4b1f3046d661731f487b Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
-rw-r--r--src/plugins/clangcodemodel/clangcompletion.cpp7
-rw-r--r--src/plugins/cpptools/cppcompletionassist.cpp7
-rw-r--r--src/plugins/cpptools/cppcompletionassistprocessor.cpp14
-rw-r--r--src/plugins/cpptools/cppcompletionassistprocessor.h5
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;