diff options
author | Orgad Shaneh <orgad.shaneh@audiocodes.com> | 2017-02-08 21:51:43 +0200 |
---|---|---|
committer | Orgad Shaneh <orgads@gmail.com> | 2017-02-17 08:13:02 +0000 |
commit | 2a297593d627a441816443584fecfb5c9972e84f (patch) | |
tree | c6e300102dde976d7e3123c5d7150c809c392765 | |
parent | 23398229e9b947eb2370ca75604f71e7bdf1ccb4 (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.cpp | 12 |
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)); } |