summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhjk <hjk121@nokiamail.com>2014-09-13 00:25:03 +0200
committerhjk <hjk121@nokiamail.com>2014-09-17 10:59:08 +0200
commit3be2c9dfb8857fa320364483040ca81a23ecc001 (patch)
treef246d02b62dfcaa8070b66f8fca93fe5f77246bf
parent282864bdb9b933156a24d0a55dc50e1399c95bce (diff)
downloadqt-creator-3be2c9dfb8857fa320364483040ca81a23ecc001.tar.gz
CppEditor: Simplify CppAutoCompleter header
Change-Id: Ie6c01ca4fb11b4b4c5e66618c9f8f0cb67e7845b Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
-rw-r--r--src/plugins/cppeditor/cppautocompleter.cpp91
-rw-r--r--src/plugins/cppeditor/cppautocompleter.h9
2 files changed, 44 insertions, 56 deletions
diff --git a/src/plugins/cppeditor/cppautocompleter.cpp b/src/plugins/cppeditor/cppautocompleter.cpp
index 23c546004f..0b6deca9ea 100644
--- a/src/plugins/cppeditor/cppautocompleter.cpp
+++ b/src/plugins/cppeditor/cppautocompleter.cpp
@@ -39,11 +39,50 @@ using namespace CppEditor;
using namespace Internal;
using namespace CPlusPlus;
-CppAutoCompleter::CppAutoCompleter()
-{}
+static const Token tokenAtPosition(const QList<Token> &tokens, const unsigned pos)
+{
+ for (int i = tokens.size() - 1; i >= 0; --i) {
+ const Token tk = tokens.at(i);
+ if (pos >= tk.utf16charsBegin() && pos < tk.utf16charsEnd())
+ return tk;
+ }
+ return Token();
+}
+
+static bool isInCommentHelper(const QTextCursor &cursor, Token *retToken = 0)
+{
+ LanguageFeatures features;
+ features.qtEnabled = false;
+ features.qtKeywordsEnabled = false;
+ features.qtMocRunEnabled = false;
+ features.cxx11Enabled = true;
+ features.c99Enabled = true;
+
+ SimpleLexer tokenize;
+ tokenize.setLanguageFeatures(features);
+
+ const int prevState = BackwardsScanner::previousBlockState(cursor.block()) & 0xFF;
+ const QList<Token> tokens = tokenize(cursor.block().text(), prevState);
+
+ const unsigned pos = cursor.selectionEnd() - cursor.block().position();
-CppAutoCompleter::~CppAutoCompleter()
-{}
+ if (tokens.isEmpty() || pos < tokens.first().utf16charsBegin())
+ return prevState > 0;
+
+ if (pos >= tokens.last().utf16charsEnd()) {
+ const Token tk = tokens.last();
+ if (tk.is(T_CPP_COMMENT) || tk.is(T_CPP_DOXY_COMMENT))
+ return true;
+ return tk.isComment() && (cursor.block().userState() & 0xFF);
+ }
+
+ Token tk = tokenAtPosition(tokens, pos);
+
+ if (retToken)
+ *retToken = tk;
+
+ return tk.isComment();
+}
bool CppAutoCompleter::contextAllowsAutoParentheses(const QTextCursor &cursor,
const QString &textToInsert) const
@@ -99,47 +138,3 @@ QString CppAutoCompleter::insertParagraphSeparator(const QTextCursor &cursor) co
return m.insertParagraphSeparator(cursor);
}
-bool CppAutoCompleter::isInCommentHelper(const QTextCursor &cursor, Token *retToken) const
-{
- LanguageFeatures features;
- features.qtEnabled = false;
- features.qtKeywordsEnabled = false;
- features.qtMocRunEnabled = false;
- features.cxx11Enabled = true;
- features.c99Enabled = true;
-
- SimpleLexer tokenize;
- tokenize.setLanguageFeatures(features);
-
- const int prevState = BackwardsScanner::previousBlockState(cursor.block()) & 0xFF;
- const QList<Token> tokens = tokenize(cursor.block().text(), prevState);
-
- const unsigned pos = cursor.selectionEnd() - cursor.block().position();
-
- if (tokens.isEmpty() || pos < tokens.first().utf16charsBegin())
- return prevState > 0;
-
- if (pos >= tokens.last().utf16charsEnd()) {
- const Token tk = tokens.last();
- if (tk.is(T_CPP_COMMENT) || tk.is(T_CPP_DOXY_COMMENT))
- return true;
- return tk.isComment() && (cursor.block().userState() & 0xFF);
- }
-
- Token tk = tokenAtPosition(tokens, pos);
-
- if (retToken)
- *retToken = tk;
-
- return tk.isComment();
-}
-
-const Token CppAutoCompleter::tokenAtPosition(const QList<Token> &tokens, const unsigned pos) const
-{
- for (int i = tokens.size() - 1; i >= 0; --i) {
- const Token tk = tokens.at(i);
- if (pos >= tk.utf16charsBegin() && pos < tk.utf16charsEnd())
- return tk;
- }
- return Token();
-}
diff --git a/src/plugins/cppeditor/cppautocompleter.h b/src/plugins/cppeditor/cppautocompleter.h
index 867c4cf25b..1dd434915e 100644
--- a/src/plugins/cppeditor/cppautocompleter.h
+++ b/src/plugins/cppeditor/cppautocompleter.h
@@ -32,16 +32,13 @@
#include <texteditor/autocompleter.h>
-#include <cplusplus/Token.h>
-
namespace CppEditor {
namespace Internal {
class CppAutoCompleter : public TextEditor::AutoCompleter
{
public:
- CppAutoCompleter();
- virtual ~CppAutoCompleter();
+ CppAutoCompleter() {}
virtual bool contextAllowsAutoParentheses(const QTextCursor &cursor,
const QString &textToInsert = QString()) const;
@@ -52,10 +49,6 @@ public:
QChar la,
int *skippedChars) const;
virtual QString insertParagraphSeparator(const QTextCursor &cursor) const;
-
-private:
- bool isInCommentHelper(const QTextCursor &cursor, CPlusPlus::Token *retToken = 0) const;
- const CPlusPlus::Token tokenAtPosition(const QList<CPlusPlus::Token> &tokens, const unsigned pos) const;
};
} // Internal