From df0102df495bb080d1dffef046590108ea7ec447 Mon Sep 17 00:00:00 2001 From: Leandro Melo Date: Tue, 7 Dec 2010 09:26:39 +0100 Subject: [PATCH] Gen. highlighter: Improve performance (delimiters) Make lookup for a delimiter a bit faster. --- .../texteditor/generichighlighter/highlightdefinition.cpp | 9 ++++++--- src/plugins/texteditor/generichighlighter/highlightdefinition.h | 5 +++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/plugins/texteditor/generichighlighter/highlightdefinition.cpp b/src/plugins/texteditor/generichighlighter/highlightdefinition.cpp index c06b49d1e0..8777b6f432 100644 --- a/src/plugins/texteditor/generichighlighter/highlightdefinition.cpp +++ b/src/plugins/texteditor/generichighlighter/highlightdefinition.cpp @@ -40,11 +40,14 @@ using namespace TextEditor; using namespace Internal; HighlightDefinition::HighlightDefinition() : - m_delimiters(QLatin1String(".():!+,-<=>%&/;?[]^{|}~\\*, \t")), m_singleLineCommentAfterWhiteSpaces(false), m_keywordCaseSensitivity(Qt::CaseSensitive), m_indentationBasedFolding(false) -{} +{ + QString s(QLatin1String(".():!+,-<=>%&/;?[]^{|}~\\*, \t")); + foreach (const QChar &c, s) + m_delimiters.insert(c); +} HighlightDefinition::~HighlightDefinition() {} @@ -147,7 +150,7 @@ void HighlightDefinition::addDelimiters(const QString &characters) { for (int i = 0; i < characters.length(); ++i) { if (!m_delimiters.contains(characters.at(i))) - m_delimiters.append(characters.at(i)); + m_delimiters.insert(characters.at(i)); } } diff --git a/src/plugins/texteditor/generichighlighter/highlightdefinition.h b/src/plugins/texteditor/generichighlighter/highlightdefinition.h index ca7afd9376..586025e2c4 100644 --- a/src/plugins/texteditor/generichighlighter/highlightdefinition.h +++ b/src/plugins/texteditor/generichighlighter/highlightdefinition.h @@ -32,6 +32,7 @@ #include #include +#include #include namespace TextEditor { @@ -102,8 +103,6 @@ private: QString m_initialContext; - QString m_delimiters; - QString m_singleLineComment; bool m_singleLineCommentAfterWhiteSpaces; @@ -114,6 +113,8 @@ private: Qt::CaseSensitivity m_keywordCaseSensitivity; bool m_indentationBasedFolding; + + QSet m_delimiters; }; } // namespace Internal -- 2.11.0