Files
spring-tools/vscode-extensions/vscode-boot-java/lib/Main.ts
Kris De Volder 476dc27e0b More tweaks to vscode-boot-java jvm finding.
Look for a sibling JDK if the found java exe belongs to a jre.
2018-02-05 14:57:53 -08:00

49 lines
1.8 KiB
TypeScript

'use strict';
import * as net from 'net';
import * as VSCode from 'vscode';
import * as Path from 'path';
import * as FS from 'fs';
import * as Net from 'net';
import * as ChildProcess from 'child_process';
import { LanguageClient, LanguageClientOptions, SettingMonitor, ServerOptions, StreamInfo } from 'vscode-languageclient';
import { workspace, TextDocument } from 'vscode';
import { Trace } from 'vscode-jsonrpc';
import * as commons from 'commons-vscode';
import { connect } from 'tls';
export function activate(context: VSCode.ExtensionContext) {
let options: commons.ActivatorOptions = {
DEBUG: false,
CONNECT_TO_LS: false,
extensionId: 'boot-java',
preferJdk: true,
launcher: (context: VSCode.ExtensionContext) => 'org.springframework.boot.loader.JarLauncher',
classpath: (context: VSCode.ExtensionContext, jvm: commons.JVM) => {
const classpath = [
Path.resolve(context.extensionPath, 'jars/language-server.jar')
];
if (!jvm.isJdk()) {
VSCode.window.showWarningMessage('JAVA_HOME or PATH environment variable seems to point to a JRE. A JDK is required, hence Boot Hints are unavailable.');
}
const toolsJar = jvm.getToolsJar();
if (toolsJar) {
classpath.unshift(toolsJar);
}
return classpath;
},
clientOptions: {
documentSelector: ['java'],
synchronize: {
configurationSection: 'boot-java'
},
initializationOptions: {
workspaceFolders: workspace.workspaceFolders ? workspace.workspaceFolders.map(f => f.uri.toString()) : null
},
}
};
commons.activate(options, context);
}