dhaumann added a comment.

  I wonder if the `?:` optimizations make sense. QRegularExpression has the 
option `QRegularExpression::DontCaptureOption` to not capture anything. Looking 
into our code we have:
  
    561 bool RegExpr::doLoad(QXmlStreamReader& reader)
    562 {
    563     
m_regexp.setPattern(reader.attributes().value(QStringLiteral("String")).toString());
                       // here we set the pattern -> OK
    564
    565     const auto isMinimal = 
Xml::attrToBool(reader.attributes().value(QStringLiteral("minimal")));
    566     const auto isCaseInsensitive = 
Xml::attrToBool(reader.attributes().value(QStringLiteral("insensitive")));
    567     m_regexp.setPatternOptions(                                         
                                       // if (m_dynamic == false), we could add 
the
    568        (isMinimal ? QRegularExpression::InvertedGreedinessOption : 
QRegularExpression::NoPatternOption) |      // flag 
QRegularExpression::DontCaptureOption
    569        (isCaseInsensitive ? QRegularExpression::CaseInsensitiveOption : 
QRegularExpression::NoPatternOption));
    570
    571    // optimize the pattern for the non-dynamic case, we use them OFTEN
    572    m_dynamic = 
Xml::attrToBool(reader.attributes().value(QStringLiteral("dynamic")));
    573    if (!m_dynamic) {
    574        m_regexp.optimize();
    575    }
    576    // [...]
  
  In other words: The current patch adds many `?:` which also makes the RegExps 
harder to read. So: Do we really get a performance gain here? Wouldn't it be 
possible to get an even better performance gain by using the flag 
`DontCaptureOption`?
  
  Currently, I am not yet convinced, can you give this a try? :-)

REPOSITORY
  R216 Syntax Highlighting

REVISION DETAIL
  https://phabricator.kde.org/D24982

To: nibags, #framework_syntax_highlighting, dhaumann, cullmann
Cc: kwrite-devel, kde-frameworks-devel, LeGast00n, GB_2, domson, michaelh, 
ngraham, bruns, demsking, cullmann, sars, dhaumann

Reply via email to