QmlDesigner: Use a static const QSet for keyword list

Makes the lookup faster.

Also sort the keywords.

Change-Id: I25ce0f2d1de7be572fecccc09b5ec12d81152e95
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Orgad Shaneh
2016-10-13 21:23:19 +03:00
committed by Orgad Shaneh
parent d75d94c8c0
commit a1876a8509

View File

@@ -29,8 +29,6 @@
#include <model.h> #include <model.h>
#include <nodemetainfo.h> #include <nodemetainfo.h>
#include "internalnode_p.h" #include "internalnode_p.h"
#include <QHash>
#include <QTextStream>
#include "invalidargumentexception.h" #include "invalidargumentexception.h"
#include "invalididexception.h" #include "invalididexception.h"
#include "invalidmodelnodeexception.h" #include "invalidmodelnodeexception.h"
@@ -44,6 +42,10 @@
#include "nodeproperty.h" #include "nodeproperty.h"
#include <rewriterview.h> #include <rewriterview.h>
#include <QHash>
#include <QSet>
#include <QTextStream>
namespace QmlDesigner { namespace QmlDesigner {
using namespace QmlDesigner::Internal; using namespace QmlDesigner::Internal;
@@ -143,34 +145,36 @@ QString ModelNode::validId()
static bool idIsQmlKeyWord(const QString& id) static bool idIsQmlKeyWord(const QString& id)
{ {
QStringList keywords = { "import", static const QSet<QString> keywords = {
"as", "as",
"break", "break",
"case", "case",
"catch", "catch",
"continue", "continue",
"debugger", "debugger",
"default", "default",
"delete", "delete",
"do", "do",
"else", "else",
"finally", "finally",
"for", "for",
"function", "function",
"if", "if",
"in", "import",
"instanceof", "in",
"new", "instanceof",
"return", "new",
"switch", "return",
"this", "switch",
"throw", "this",
"try", "throw",
"typeof", "try",
"var", "typeof",
"void", "var",
"while", "void",
"with" }; "while",
"with"
};
return keywords.contains(id); return keywords.contains(id);
} }