UNPKG

rhamt-vscode-extension

Version:

RHAMT VSCode extension

143 lines (113 loc) 5.09 kB
// 'use strict'; // import * as vscode from "vscode"; // import { window, ProgressLocation } from 'vscode'; // import { Utils } from "./Utils"; // import { RhamtClient } from 'rhamt-client'; // import { RuntimeConfiguration, RhamtConfiguration } from "rhamt-core"; // export class RhamtService { // private rhamtClient?: RhamtClient; // public async startServer() { // Utils.createConfiguration() // .then(config => { // let runtime = new RuntimeConfiguration(); // runtime.javaHome = config.javaHome; // runtime.rhamtCli = config.rhamtCli; // runtime.port = Number(process.env.PORT) || 8080; // this.rhamtClient = new RhamtClient(); // let options = { // location: ProgressLocation.Window, // cancellable: false // }; // window.withProgress(options, async (progress, token) => { // token.onCancellationRequested(() => { // console.log('cancelled'); // }); // progress.report({message: 'Starting analysis engine'}); // this.initServerListeners(config); // var p = new Promise(resolve => { // this.rhamtClient!.start(runtime).then(() => { // progress.report({message: 'Started'}); // setTimeout(() => { // resolve(); // }, 1500); // }); // }); // return p; // }); // }) // .catch(() => { // console.log('unable to create run configuration.'); // }); // } // private initServerListeners(config: RhamtConfiguration): void { // config.stoppedCallback = () => { // vscode.window.showInformationMessage('analysis engine stopped'); // }; // config.timeoutCallback = () => { // vscode.window.showErrorMessage('analysis engine start timeout'); // }; // } // public stopServer() { // console.log('attempting to stop the rhamt-client'); // if (this.rhamtClient && this.rhamtClient.isRunning()) { // window.withProgress({ // location: ProgressLocation.Notification, // title: "Stopping analysis engine", // cancellable: true // }, (progress, token) => { // console.log('vscode rhamt-client server is running. attempting to terminate...'); // return new Promise((resolve, reject) => { // this.rhamtClient!.stop() // .then(() => { // progress.report({ increment: 100, message: 'stopped' }); // resolve(); // }) // .catch(err => { // reject(); // vscode.window.showErrorMessage(err); // }); // }); // }); // } // else { // vscode.window.showInformationMessage('Analysis engine not running'); // } // } // public isRunning() : boolean { // return this.rhamtClient!.isRunning(); // } // public analyzeWorkspace() { // if (vscode.workspace.workspaceFolders) { // let locations = vscode.workspace.workspaceFolders.map(folder => folder.uri.fsPath); // this.analyze(locations); // } // } // public analyze(input: string[]) { // console.log('attempting to start rhamt-client analysis'); // console.log('input: ' + input); // let source = input[0]; // let out = source + '/../rhamt'; // const config = new RunConfiguration('mytester', source, out); // this.rhamtClient!.analyze(config).then(() => { // this.startProgress(config); // }) // .catch(() => vscode.window.showInformationMessage('Unable to prepare analysis configuration')); // } // private startProgress(config: RunConfiguration): void { // let options = { // location: ProgressLocation.Window, // cancellable: true // }; // window.withProgress(options, (progress, token) => { // token.onCancellationRequested(() => { // console.log('cancelled'); // }); // progress.report({message: 'Preparing analysis configuration...'}); // var p = new Promise<any>(resolve => { // let monitor = new ProgressMonitor(progress, () => resolve()); // config.handleMessage = monitor.handleMessage.bind(monitor); // }); // return p; // }); // } // }