| Index: frog/minfrog
|
| diff --git a/frog/minfrog b/frog/minfrog
|
| index 69cd4ef05de2e902d6d249d0f978b177e4436ca7..39a6082ae7f77659c4f869eccf109fa3bacb3561 100755
|
| --- a/frog/minfrog
|
| +++ b/frog/minfrog
|
| @@ -6268,14 +6268,23 @@ SourceFile.prototype.getLocationMessage = function(message, start, end, includeT
|
| else {
|
| textLine = this.get$text().substring(this._lineStarts.$index(line)) + '\n';
|
| }
|
| - buf.add$1(textLine);
|
| - var i = 0;
|
| - for (; i < column; i++) {
|
| - buf.add$1(' ');
|
| - }
|
| var toColumn = Math.min(column + (end - start), textLine.length);
|
| - for (; i < toColumn; i++) {
|
| - buf.add$1('^');
|
| + if ($globals.options.useColors) {
|
| + buf.add$1(textLine.substring$2(0, column));
|
| + buf.add$1($globals._RED_COLOR);
|
| + buf.add$1(textLine.substring$2(column, toColumn));
|
| + buf.add$1($globals._NO_COLOR);
|
| + buf.add$1(textLine.substring$1(toColumn));
|
| + }
|
| + else {
|
| + buf.add$1(textLine);
|
| + var i = 0;
|
| + for (; i < column; i++) {
|
| + buf.add$1(' ');
|
| + }
|
| + for (; i < toColumn; i++) {
|
| + buf.add$1('^');
|
| + }
|
| }
|
| }
|
| return buf.toString$0();
|
| @@ -12546,7 +12555,7 @@ World.prototype._message = function(message, span, span1, span2, throwing) {
|
| }
|
| World.prototype.error = function(message, span, span1, span2) {
|
| this.errors++;
|
| - this._message(('error: ' + message), span, span1, span2, $globals.options.throwOnErrors);
|
| + this._message($globals.options.useColors ? ('' + $globals._RED_COLOR + 'error' + $globals._NO_COLOR + ': ' + message) : ('error: ' + message), span, span1, span2, $globals.options.throwOnErrors);
|
| }
|
| World.prototype.warning = function(message, span, span1, span2) {
|
| if ($globals.options.warningsAsErrors) {
|
| @@ -12555,13 +12564,13 @@ World.prototype.warning = function(message, span, span1, span2) {
|
| }
|
| this.warnings++;
|
| if ($globals.options.showWarnings) {
|
| - this._message(('warning: ' + message), span, span1, span2, $globals.options.throwOnWarnings);
|
| + this._message($globals.options.useColors ? ('' + $globals._MAGENTA_COLOR + 'warning' + $globals._NO_COLOR + ': ' + message) : ('warning: ' + message), span, span1, span2, $globals.options.throwOnWarnings);
|
| }
|
| }
|
| World.prototype.fatal = function(message, span, span1, span2) {
|
| this.errors++;
|
| this.seenFatal = true;
|
| - this._message(('fatal: ' + message), span, span1, span2, $globals.options.throwOnFatal || $globals.options.throwOnErrors);
|
| + this._message($globals.options.useColors ? ('' + $globals._RED_COLOR + 'fatal' + $globals._NO_COLOR + ': ' + message) : ('fatal: ' + message), span, span1, span2, $globals.options.throwOnFatal || $globals.options.throwOnErrors);
|
| }
|
| World.prototype.internalError = function(message, span, span1, span2) {
|
| this._message(('We are sorry, but... ' + message), span, span1, span2, true);
|
| @@ -12623,6 +12632,7 @@ function FrogOptions(homedir, args, files) {
|
| this.throwOnFatal = false
|
| this.showInfo = false
|
| this.showWarnings = true
|
| + this.useColors = true
|
| // Initializers done
|
| if ($eq(this.config, 'dev')) {
|
| this.libDir = joinPaths(homedir, '/lib');
|
| @@ -12719,6 +12729,11 @@ function FrogOptions(homedir, args, files) {
|
| this.forceDynamic = true;
|
| continue loop;
|
|
|
| + case '--no_colors':
|
| +
|
| + this.useColors = false;
|
| + continue loop;
|
| +
|
| default:
|
|
|
| if (arg.endsWith$1('.dart')) {
|
| @@ -13071,6 +13086,12 @@ function main() {
|
| var homedir = path.dirname(fs.realpathSync(process.argv.$index(1)));
|
| var argv = ListFactory.ListFactory$from$factory(process.argv);
|
| if (compile(homedir, argv, new NodeFileSystem())) {
|
| + if ($globals.options.outfile != null) {
|
| + print(('Compilation succeded. Code generated in ' + $globals.options.outfile));
|
| + }
|
| + else {
|
| + print('Compilation succeded.');
|
| + }
|
| var code = $globals.world.getGeneratedCode();
|
| if (!$globals.options.compileOnly) {
|
| process.argv = [argv.$index(0), argv.$index(1)];
|
| @@ -13095,6 +13116,9 @@ $inheritsMembers(_DoubleLinkedQueueEntrySentinel_E, DoubleLinkedQueueEntry_E);
|
| $inheritsMembers(_DoubleLinkedQueueEntrySentinel_KeyValuePair_K$V, DoubleLinkedQueueEntry_KeyValuePair_K$V);
|
| // ********** Globals **************
|
| function $static_init(){
|
| + $globals._MAGENTA_COLOR = '\u001b[35m';
|
| + $globals._NO_COLOR = '\u001b[0m';
|
| + $globals._RED_COLOR = '\u001b[31m';
|
| }
|
| var const$0 = new NoMoreElementsException()/*const NoMoreElementsException()*/;
|
| var const$2 = new EmptyQueueException()/*const EmptyQueueException()*/;
|
|
|