diff options
author | George Fraser <george@fivetran.com> | 2017-05-12 10:49:29 -0700 |
---|---|---|
committer | George Fraser <george@fivetran.com> | 2017-05-12 10:49:29 -0700 |
commit | b3d21bd31fe7200084bf09c49d08eb0b9df7949c (patch) | |
tree | 2c4f3e44bb610a4b21fb5dafe808a410f7271222 /lib | |
parent | 5fd95bc52661ff7c15a8c0d935a2c63fde7eee00 (diff) | |
download | java-language-server-b3d21bd31fe7200084bf09c49d08eb0b9df7949c.zip |
Report precompile progress
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Main.ts | 28 |
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) => { |