Pass the lookahead character to matching text.

This commit is contained in:
Roberto Raggi
2009-09-17 18:39:10 +02:00
parent 82b80b9e39
commit da4fcd22ef
3 changed files with 28 additions and 4 deletions

View File

@@ -71,10 +71,31 @@ static bool isCompleteCharLiteral(const BackwardsScanner &tk, int index, int sta
return false;
}
static bool shouldInsertMatchingText(const QChar &lookAhead)
{
if (lookAhead.isSpace())
return true;
else if (lookAhead == QLatin1Char('{'))
return true;
else if (lookAhead == QLatin1Char('}'))
return true;
else if (lookAhead == QLatin1Char(']'))
return true;
else if (lookAhead == QLatin1Char(')'))
return true;
else if (lookAhead == QLatin1Char(';'))
return true;
else if (lookAhead == QLatin1Char(','))
return true;
return false;
}
MatchingText::MatchingText()
{ }
QString MatchingText::insertMatchingBrace(const QTextCursor &cursor, const QString &textToProcess, int *skippedChars) const
QString MatchingText::insertMatchingBrace(const QTextCursor &cursor, const QString &textToProcess,
const QChar &la, int *skippedChars) const
{
*skippedChars = 0;
@@ -101,7 +122,7 @@ QString MatchingText::insertMatchingBrace(const QTextCursor &cursor, const QStri
text = textToProcess.mid(*skippedChars);
}
if (text.isEmpty())
if (text.isEmpty() || !shouldInsertMatchingText(la))
return QString();
BackwardsScanner tk(tc, textToProcess.left(*skippedChars), MAX_NUM_LINES);

View File

@@ -41,7 +41,8 @@ class CPLUSPLUS_EXPORT MatchingText
public:
MatchingText();
QString insertMatchingBrace(const QTextCursor &tc, const QString &text, int *skippedChars) const;
QString insertMatchingBrace(const QTextCursor &tc, const QString &text,
const QChar &la, int *skippedChars) const;
QString insertParagraphSeparator(const QTextCursor &tc) const;
};