aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOrgad Shaneh <orgad.shaneh@audiocodes.com>2017-02-08 21:51:43 +0200
committerOrgad Shaneh <orgads@gmail.com>2017-02-17 08:13:02 +0000
commit2a297593d627a441816443584fecfb5c9972e84f (patch)
treec6e300102dde976d7e3123c5d7150c809c392765
parent23398229e9b947eb2370ca75604f71e7bdf1ccb4 (diff)
GenericHighlighter: Handle invalid keyword list references
makefile.xml has bmake_var_modifiers_noarg and bmake_var_modifiers_with_arg which are not defined. Change-Id: Ice5bcaf86e7dbe90d4e9b2c52babbc62f9491e05 Reviewed-by: David Schulz <david.schulz@qt.io>
-rw-r--r--src/plugins/texteditor/generichighlighter/highlightdefinitionhandler.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/plugins/texteditor/generichighlighter/highlightdefinitionhandler.cpp b/src/plugins/texteditor/generichighlighter/highlightdefinitionhandler.cpp
index be0db685c1..a47bc3ea64 100644
--- a/src/plugins/texteditor/generichighlighter/highlightdefinitionhandler.cpp
+++ b/src/plugins/texteditor/generichighlighter/highlightdefinitionhandler.cpp
@@ -25,12 +25,15 @@
#include "highlightdefinitionhandler.h"
#include "highlightdefinition.h"
+#include "highlighterexception.h"
#include "specificrules.h"
#include "itemdata.h"
#include "keywordlist.h"
#include "context.h"
#include "manager.h"
+#include <coreplugin/messagemanager.h>
+
#include <QLatin1String>
using namespace TextEditor;
@@ -342,7 +345,14 @@ void HighlightDefinitionHandler::regExprStarted(const QXmlAttributes &atts)
void HighlightDefinitionHandler::keywordStarted(const QXmlAttributes &atts)
{
KeywordRule *rule = new KeywordRule(m_definition);
- rule->setList(atts.value(kString));
+ try {
+ rule->setList(atts.value(kString));
+ } catch (const HighlighterException &e) {
+ // Handle broken files. makefile.xml references an invalid list.
+ Core::MessageManager::write(
+ QCoreApplication::translate("GenericHighlighter",
+ "Generic highlighter warning: ") + e.message());
+ }
rule->setInsensitive(atts.value(kInsensitive));
ruleElementStarted(atts, QSharedPointer<Rule>(rule));
}