summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorGeorge Fraser <george@fivetran.com>2017-05-12 10:49:29 -0700
committerGeorge Fraser <george@fivetran.com>2017-05-12 10:49:29 -0700
commitb3d21bd31fe7200084bf09c49d08eb0b9df7949c (patch)
tree2c4f3e44bb610a4b21fb5dafe808a410f7271222 /lib
parent5fd95bc52661ff7c15a8c0d935a2c63fde7eee00 (diff)
downloadjava-language-server-b3d21bd31fe7200084bf09c49d08eb0b9df7949c.zip
Report precompile progress
Diffstat (limited to 'lib')
-rw-r--r--lib/Main.ts28
1 files changed, 27 insertions, 1 deletions
diff --git a/lib/Main.ts b/lib/Main.ts
index 75ceed9..73ff8f9 100644
--- a/lib/Main.ts
+++ b/lib/Main.ts
@@ -89,7 +89,8 @@ export function activate(context: VSCode.ExtensionContext) {
}
// Create the language client and start the client.
- let disposable = new LanguageClient('vscode-javac', 'Java Language Server', createServer, clientOptions).start();
+ let languageClient = new LanguageClient('vscode-javac', 'Java Language Server', createServer, clientOptions);
+ let disposable = languageClient.start();
// Push the disposable to the context's subscriptions so that the
// client can be deactivated on extension deactivation
@@ -142,9 +143,34 @@ export function activate(context: VSCode.ExtensionContext) {
// docComment: { scope: 'comment.documentation', open: '/**', lineStart: ' * ', close: ' */' }
// }
});
+
+ // Show progress of pre-compiling each .java source
+ VSCode.window.withProgress({location: VSCode.ProgressLocation.Window, title: 'Indexing'}, progress => {
+ return new Promise((resolve, reject) => {
+ languageClient.onTelemetry((eventJson: string) => {
+ let event = JSON.parse(eventJson) as CustomTelemetryEvent;
+
+ switch (event.event) {
+ case 'Progress':
+ progress.report({message: event.file});
+
+ break;
+ case 'Done':
+ resolve();
+
+ break;
+ }
+ });
+ });
+ });
});
}
+interface CustomTelemetryEvent {
+ event: 'Progress'|'Done';
+ file?: string;
+}
+
function isJava8(javaExecutablePath: string): Promise<boolean> {
return new Promise((resolve, reject) => {
let result = ChildProcess.execFile(javaExecutablePath, ['-version'], { }, (error, stdout, stderr) => {