blob: 4b4bcd9dae57ef2c653c6c8d562f6a6bad138328 [file] [log] [blame]
// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
library trydart.poi;
import 'dart:async' show
Future;
import 'dart:io' show
Platform;
import 'package:dart2js_incremental/dart2js_incremental.dart' show
reuseCompiler;
import 'package:compiler/implementation/source_file_provider.dart' show
FormattingDiagnosticHandler,
SourceFileProvider;
import 'package:compiler/compiler.dart' as api show
Diagnostic;
Future doneFuture;
void main(List<String> arguments) {
Uri script = Uri.base.resolve(arguments.first);
int position = int.parse(arguments[1]);
FormattingDiagnosticHandler handler = new FormattingDiagnosticHandler();
handler
..verbose = true
..enableColors = true;
Uri libraryRoot = Uri.base.resolve('sdk/');
Uri packageRoot = Uri.base.resolveUri(
new Uri.file('${Platform.packageRoot}/'));
var options = [
'--analyze-main',
'--analyze-only',
'--no-source-maps',
'--verbose',
'--categories=Client,Server',
];
var cachedCompiler = null;
cachedCompiler = reuseCompiler(
diagnosticHandler: handler,
inputProvider: handler.provider,
options: options,
cachedCompiler: cachedCompiler,
libraryRoot: libraryRoot,
packageRoot: packageRoot,
packagesAreImmutable: true);
doneFuture = cachedCompiler.run(script).then((success) {
if (success != true) {
throw 'Compilation failed';
}
handler(
script, position, position + 1,
'Point of interest.', api.Diagnostic.HINT);
});
}