Commit 799bd460 authored by Tobias Hunger's avatar Tobias Hunger Committed by Nikolai Kosjar
Browse files

Snippet: Fix snippets with : in them



* Fix the parser
* Add a unit test for this

Change-Id: I202f845e12c9b6203444f3bb12d7a9229c8a2887
Reviewed-by: default avatarNikolai Kosjar <nikolai.kosjar@digia.com>
parent e829b973
......@@ -225,22 +225,20 @@ Snippet::ParsedSnippet Snippet::parse(const QString &snippet)
break;
}
if (current == QLatin1Char(':')) {
if (start >= 0) {
if (mangler != 0) {
success = false;
break;
}
if (next == QLatin1Char('l')) {
mangler = &lcMangler;
} else if (next == QLatin1Char('u')) {
mangler = &ucMangler;
} else if (next == QLatin1Char('c')) {
mangler = &tcMangler;
} else {
success = false;
break;
}
if (current == QLatin1Char(':') && start >= 0) {
if (mangler != 0) {
success = false;
break;
}
if (next == QLatin1Char('l')) {
mangler = &lcMangler;
} else if (next == QLatin1Char('u')) {
mangler = &ucMangler;
} else if (next == QLatin1Char('c')) {
mangler = &tcMangler;
} else {
success = false;
break;
}
++i;
continue;
......@@ -338,6 +336,22 @@ void Internal::TextEditorPlugin::testSnippetParsing_data()
<< QString::fromLatin1("$test:X$") << QString::fromLatin1("$test:X$") << false
<< (QList<int>()) << (QList<int>())
<< (QList<Core::Id>());
QTest::newRow("multiline with :")
<< QString::fromLatin1("class $name$\n"
"{\n"
"public:\n"
" $name$() {}\n"
"};")
<< QString::fromLatin1("class name\n"
"{\n"
"public:\n"
" name() {}\n"
"};")
<< true
<< (QList<int>() << 6 << 25)
<< (QList<int>() << 4 << 4)
<< (QList<Core::Id>() << NOMANGLER_ID << NOMANGLER_ID);
}
void Internal::TextEditorPlugin::testSnippetParsing()
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment