Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(137)

Unified Diff: frog/minfrog

Issue 8823010: frog: life is better with colors :) (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: '' Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « frog/frog_options.dart ('k') | frog/minfrog.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: frog/minfrog
diff --git a/frog/minfrog b/frog/minfrog
index 69cd4ef05de2e902d6d249d0f978b177e4436ca7..bec1e7b771fbcfc91d8d4b18b964d7c98c7f1210 100755
--- a/frog/minfrog
+++ b/frog/minfrog
@@ -6268,15 +6268,26 @@ SourceFile.prototype.getLocationMessage = function(message, start, end, includeT
else {
textLine = this.get$text().substring(this._lineStarts.$index(line)) + '\n';
}
- buf.add$1(textLine);
+ var toColumn = Math.min(column + (end - start), textLine.length);
+ 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(' ');
}
- var toColumn = Math.min(column + (end - start), textLine.length);
+ if ($globals.options.useColors) buf.add$1($globals._RED_COLOR);
for (; i < toColumn; i++) {
buf.add$1('^');
}
+ if ($globals.options.useColors) buf.add$1($globals._NO_COLOR);
}
return buf.toString$0();
}
@@ -12528,25 +12539,26 @@ World.prototype.generateCode = function(lib) {
this.gen.run();
this.jsBytesWritten = codeWriter.get$text().length;
}
-World.prototype._message = function(message, span, span1, span2, throwing) {
- var text = message;
+World.prototype._message = function(color, prefix, message, span, span1, span2, throwing) {
+ var messageWithPrefix = $globals.options.useColors ? (color + prefix + $globals._NO_COLOR + message) : (prefix + message);
+ var text = messageWithPrefix;
if (span != null) {
- text = span.toMessageString(message);
+ text = span.toMessageString(messageWithPrefix);
}
print(text);
if (span1 != null) {
- print(span1.toMessageString(message));
+ print(span1.toMessageString(messageWithPrefix));
}
if (span2 != null) {
- print(span2.toMessageString(message));
+ print(span2.toMessageString(messageWithPrefix));
}
if (throwing) {
- $throw(new CompilerException(message, span));
+ $throw(new CompilerException(messageWithPrefix, span));
}
}
World.prototype.error = function(message, span, span1, span2) {
this.errors++;
- this._message(('error: ' + message), span, span1, span2, $globals.options.throwOnErrors);
+ this._message($globals._RED_COLOR, 'error: ', message, span, span1, span2, $globals.options.throwOnErrors);
}
World.prototype.warning = function(message, span, span1, span2) {
if ($globals.options.warningsAsErrors) {
@@ -12555,20 +12567,20 @@ 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._MAGENTA_COLOR, '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._RED_COLOR, '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);
+ this._message($globals._NO_COLOR, 'We are sorry, but...', message, span, span1, span2, true);
}
World.prototype.info = function(message, span, span1, span2) {
if ($globals.options.showInfo) {
- this._message(('info: ' + message), span, span1, span2, false);
+ this._message($globals._GREEN_COLOR, 'info: ', message, span, span1, span2, false);
}
}
World.prototype.withoutForceDynamic = function(fn) {
@@ -12623,6 +12635,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');
@@ -12645,79 +12658,84 @@ function FrogOptions(homedir, args, files) {
case '--enable_leg':
this.enableLeg = true;
- continue loop;
+ break;
case '--leg_only':
this.enableLeg = true;
this.legOnly = true;
- continue loop;
+ break;
case '--enable_asserts':
this.enableAsserts = true;
- continue loop;
+ break;
case '--enable_type_checks':
this.enableTypeChecks = true;
this.enableAsserts = true;
- continue loop;
+ break;
case '--verify_implements':
this.verifyImplements = true;
- continue loop;
+ break;
case '--compile_all':
this.compileAll = true;
- continue loop;
+ break;
case '--diet-parse':
this.dietParse = true;
- continue loop;
+ break;
case '--ignore-unrecognized-flags':
ignoreUnrecognizedFlags = true;
- continue loop;
+ break;
case '--verbose':
this.showInfo = true;
- continue loop;
+ break;
case '--suppress_warnings':
this.showWarnings = false;
- continue loop;
+ break;
case '--warnings_as_errors':
this.warningsAsErrors = true;
- continue loop;
+ break;
case '--throw_on_errors':
this.throwOnErrors = true;
- continue loop;
+ break;
case '--throw_on_warnings':
this.throwOnWarnings = true;
- continue loop;
+ break;
case '--compile-only':
this.compileOnly = true;
- continue loop;
+ break;
case '--force_dynamic':
this.forceDynamic = true;
- continue loop;
+ break;
+
+ case '--no_colors':
+
+ this.useColors = false;
+ break;
default:
@@ -13072,7 +13090,15 @@ function main() {
var argv = ListFactory.ListFactory$from$factory(process.argv);
if (compile(homedir, argv, new NodeFileSystem())) {
var code = $globals.world.getGeneratedCode();
- if (!$globals.options.compileOnly) {
+ if ($globals.options.compileOnly) {
+ if ($globals.options.outfile != null) {
+ print(('Compilation succeded. Code generated in: ' + $globals.options.outfile));
+ }
+ else {
+ print('Compilation succeded.');
+ }
+ }
+ else {
process.argv = [argv.$index(0), argv.$index(1)];
process.argv.addAll($globals.options.childArgs);
vm.runInNewContext(code, createSandbox());
@@ -13095,6 +13121,10 @@ $inheritsMembers(_DoubleLinkedQueueEntrySentinel_E, DoubleLinkedQueueEntry_E);
$inheritsMembers(_DoubleLinkedQueueEntrySentinel_KeyValuePair_K$V, DoubleLinkedQueueEntry_KeyValuePair_K$V);
// ********** Globals **************
function $static_init(){
+ $globals._GREEN_COLOR = '\u001b[32m';
+ $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()*/;
« no previous file with comments | « frog/frog_options.dart ('k') | frog/minfrog.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698