diff options
Diffstat (limited to 'src/plugins/texteditor/snippets/snippet.cpp')
-rw-r--r-- | src/plugins/texteditor/snippets/snippet.cpp | 46 |
1 files changed, 30 insertions, 16 deletions
diff --git a/src/plugins/texteditor/snippets/snippet.cpp b/src/plugins/texteditor/snippets/snippet.cpp index 31482eab3e..23c94fa6f1 100644 --- a/src/plugins/texteditor/snippets/snippet.cpp +++ b/src/plugins/texteditor/snippets/snippet.cpp @@ -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() |