diff options
author | Orgad Shaneh <orgad.shaneh@audiocodes.com> | 2018-07-01 11:03:09 +0300 |
---|---|---|
committer | Orgad Shaneh <orgads@gmail.com> | 2018-07-02 07:50:29 +0000 |
commit | e5a8958e31f287adc56b3afcd1bb9167b774defc (patch) | |
tree | dc2077bc33df59bc55d050db526d6dfbe8ff8050 /src/plugins/texteditor/generichighlighter/specificrules.cpp | |
parent | 58df07bc76bcc10c94f3f310bdefb4c914fcb831 (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.cpp | 15 |
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() { |