X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=src%2FPalete%2FPalete.vala;h=10a39c765d988d5e73c554a9e3c0970e8d97bd3a;hb=3b622a1163fcca83a4b5614cf774796fbf6a29b3;hp=ab51c60434e33080f37f90aeea94b2230f9e0015;hpb=1ef5631414889d947f913c7377b3971c4e4ce335;p=app.Builder.js diff --git a/src/Palete/Palete.vala b/src/Palete/Palete.vala index ab51c6043..10a39c765 100644 --- a/src/Palete/Palete.vala +++ b/src/Palete/Palete.vala @@ -404,14 +404,36 @@ namespace Palete // this uses the roojspacker code to try and compress the code. // it should highlight errors before we actually push live the code. + // standard error format: file %s, line %s, Error + var p = new JSDOC.Packer(); p.keepWhite = false; p.skipScope = false; p.dumpTokens = false; - p.cleanup = false; - p.packFile(code, "ANONFILE",""); - + p.cleanup = false; + var estr = ""; var ret = new Gee.HashMap(); + try { + p.packFile(code, "ANONFILE",""); + } catch (JSDOC.TokenReaderError e) { + estr = e.message; + } catch (JSDOC.ScopeParserError e) { + estr = e.message; + } + if (estr.length > 0 ) { + + var bits = estr.split(","); + if (bits.length > 2) { + var linebits = bits[1].strip().split(" "); + if (linebits.length > 1) { + var line = int.parse(linebits[1]); + // line is correct - but our standard for error messages is to do it start at '0' + ret.set(line -1 , bits[2]); + } + + } + } + return ret; }