summaryrefslogtreecommitdiffstats
path: root/tools/qdoc3/jscodemarker.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/qdoc3/jscodemarker.cpp')
-rw-r--r--tools/qdoc3/jscodemarker.cpp20
1 files changed, 17 insertions, 3 deletions
diff --git a/tools/qdoc3/jscodemarker.cpp b/tools/qdoc3/jscodemarker.cpp
index 84a28c6..5a513f7 100644
--- a/tools/qdoc3/jscodemarker.cpp
+++ b/tools/qdoc3/jscodemarker.cpp
@@ -101,16 +101,24 @@ bool JsCodeMarker::recognizeLanguage(const QString &language)
return language == "JavaScript" || language == "ECMAScript";
}
+/*!
+ Returns the type of atom used to represent JavaScript code in the documentation.
+*/
+Atom::Type JsCodeMarker::atomType() const
+{
+ return Atom::JavaScript;
+}
+
QString JsCodeMarker::markedUpCode(const QString &code,
const Node *relative,
- const QString &dirPath)
+ const Location &location)
{
- return addMarkUp(code, relative, dirPath);
+ return addMarkUp(code, relative, location);
}
QString JsCodeMarker::addMarkUp(const QString &code,
const Node * /* relative */,
- const QString & /* dirPath */)
+ const Location &location)
{
QDeclarativeJS::Engine engine;
QDeclarativeJS::Lexer lexer(&engine);
@@ -130,7 +138,13 @@ QString JsCodeMarker::addMarkUp(const QString &code,
QmlMarkupVisitor visitor(code, pragmas, &engine);
QDeclarativeJS::AST::Node::accept(ast, &visitor);
output = visitor.markedUpCode();
+ } else {
+ location.warning(tr("Unable to parse JavaScript: \"%1\" at line %2, column %3").arg(
+ parser.errorMessage()).arg(parser.errorLineNumber()).arg(
+ parser.errorColumnNumber()));
+ output = protect(code);
}
+
return output;
}