aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/texteditor/generichighlighter/specificrules.cpp
diff options
context:
space:
mode:
authorOrgad Shaneh <orgad.shaneh@audiocodes.com>2018-07-01 11:03:09 +0300
committerOrgad Shaneh <orgads@gmail.com>2018-07-02 07:50:29 +0000
commite5a8958e31f287adc56b3afcd1bb9167b774defc (patch)
treedc2077bc33df59bc55d050db526d6dfbe8ff8050 /src/plugins/texteditor/generichighlighter/specificrules.cpp
parent58df07bc76bcc10c94f3f310bdefb4c914fcb831 (diff)
GenericHighlighter: Support WordDetect
Added in Kate 3.5 (KDE 4.5). Similar to StringDetect, but only matches whole word (\b<string>\b) Already used in some of the built-in highlighters. Change-Id: I03ae5e1db917e777a21bb96d9a31cc7771287f39 Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src/plugins/texteditor/generichighlighter/specificrules.cpp')
-rw-r--r--src/plugins/texteditor/generichighlighter/specificrules.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/plugins/texteditor/generichighlighter/specificrules.cpp b/src/plugins/texteditor/generichighlighter/specificrules.cpp
index 82a9de23ca..0963f62115 100644
--- a/src/plugins/texteditor/generichighlighter/specificrules.cpp
+++ b/src/plugins/texteditor/generichighlighter/specificrules.cpp
@@ -171,6 +171,21 @@ bool StringDetectRule::doMatchSucceed(const QString &text,
return false;
}
+bool WordDetectRule::doMatchSucceed(const QString &text, const int length, ProgressData *progress)
+{
+ const int offset = progress->offset();
+ if (length - offset < m_length)
+ return false;
+ if (offset > 0 && !definition()->isDelimiter(text.at(offset - 1)))
+ return false;
+ if (text.midRef(offset, m_string.size()).compare(m_string, m_caseSensitivity) != 0)
+ return false;
+ if (length > offset + m_string.size() && !definition()->isDelimiter(text.at(offset + m_string.size())))
+ return false;
+ progress->incrementOffset(m_length);
+ return true;
+}
+
// RegExpr
RegExprRule::~RegExprRule()
{