From e5a8958e31f287adc56b3afcd1bb9167b774defc Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Sun, 1 Jul 2018 11:03:09 +0300 Subject: GenericHighlighter: Support WordDetect Added in Kate 3.5 (KDE 4.5). Similar to StringDetect, but only matches whole word (\b\b) Already used in some of the built-in highlighters. Change-Id: I03ae5e1db917e777a21bb96d9a31cc7771287f39 Reviewed-by: Eike Ziller Reviewed-by: David Schulz --- .../texteditor/generichighlighter/specificrules.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/plugins/texteditor/generichighlighter/specificrules.cpp') 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() { -- cgit v1.2.3