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) ...@@ -225,22 +225,20 @@ Snippet::ParsedSnippet Snippet::parse(const QString &snippet)
break; break;
} }
if (current == QLatin1Char(':')) { if (current == QLatin1Char(':') && start >= 0) {
if (start >= 0) { if (mangler != 0) {
if (mangler != 0) { success = false;
success = false; break;
break; }
} if (next == QLatin1Char('l')) {
if (next == QLatin1Char('l')) { mangler = &lcMangler;
mangler = &lcMangler; } else if (next == QLatin1Char('u')) {
} else if (next == QLatin1Char('u')) { mangler = &ucMangler;
mangler = &ucMangler; } else if (next == QLatin1Char('c')) {
} else if (next == QLatin1Char('c')) { mangler = &tcMangler;
mangler = &tcMangler; } else {
} else { success = false;
success = false; break;
break;
}
} }
++i; ++i;
continue; continue;
...@@ -338,6 +336,22 @@ void Internal::TextEditorPlugin::testSnippetParsing_data() ...@@ -338,6 +336,22 @@ void Internal::TextEditorPlugin::testSnippetParsing_data()
<< QString::fromLatin1("$test:X$") << QString::fromLatin1("$test:X$") << false << QString::fromLatin1("$test:X$") << QString::fromLatin1("$test:X$") << false
<< (QList<int>()) << (QList<int>()) << (QList<int>()) << (QList<int>())
<< (QList<Core::Id>()); << (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() 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