fix: use non-capturing group for highlight boundaries (#5784)

This commit is contained in:
nerix
2025-01-12 14:12:31 +01:00
committed by GitHub
parent 3cf56669c5
commit 7f9b33051e
2 changed files with 7 additions and 4 deletions
+1
View File
@@ -10,6 +10,7 @@
- Bugfix: Fixed a crash that could occur on Linux and macOS when clicking "Install" from the update prompt. (#5818)
- Bugfix: Fixed missing word wrap in update popup. (#5811)
- Bugfix: Fixed tabs not scaling to the default scale when changing the scale from a non-default value. (#5794)
- Dev: Highlight checks now use non-capturing groups for the boundaries. (#5784)
- Dev: Updated Conan dependencies. (#5776)
## 2.5.2
@@ -1,11 +1,13 @@
#include "controllers/highlights/HighlightPhrase.hpp"
#include <QStringBuilder>
namespace chatterino {
namespace {
const QString REGEX_START_BOUNDARY("(\\b|\\s|^)");
const QString REGEX_END_BOUNDARY("(\\b|\\s|$)");
constexpr QStringView REGEX_START_BOUNDARY(u"(?:\\b|\\s|^)");
constexpr QStringView REGEX_END_BOUNDARY(u"(?:\\b|\\s|$)");
} // namespace
@@ -46,7 +48,7 @@ HighlightPhrase::HighlightPhrase(const QString &pattern, bool showInMentions,
, soundUrl_(soundUrl)
, regex_(isRegex_
? pattern
: REGEX_START_BOUNDARY + QRegularExpression::escape(pattern) +
: REGEX_START_BOUNDARY % QRegularExpression::escape(pattern) %
REGEX_END_BOUNDARY,
QRegularExpression::UseUnicodePropertiesOption |
(isCaseSensitive_ ? QRegularExpression::NoPatternOption
@@ -69,7 +71,7 @@ HighlightPhrase::HighlightPhrase(const QString &pattern, bool showInMentions,
, color_(std::move(color))
, regex_(isRegex_
? pattern
: REGEX_START_BOUNDARY + QRegularExpression::escape(pattern) +
: REGEX_START_BOUNDARY % QRegularExpression::escape(pattern) %
REGEX_END_BOUNDARY,
QRegularExpression::UseUnicodePropertiesOption |
(isCaseSensitive_ ? QRegularExpression::NoPatternOption