Minimum Java 11 for all spring LS. Upgrade vscode dependencies.

This commit is contained in:
BoykoAlex
2021-03-19 12:21:10 -04:00
parent 436510acaf
commit a4513b87ae
149 changed files with 5998 additions and 1317 deletions

View File

@@ -2,16 +2,17 @@
import * as VSCode from 'vscode';
import { LanguageClient, RequestType } from 'vscode-languageclient';
import { RequestType } from 'vscode-languageclient';
import { LanguageClient } from 'vscode-languageclient/node';
export function registerClasspathService(client : LanguageClient) : void {
let addRequest = new RequestType<ClasspathListenerParams, ClasspathListenerResponse, void, void>("sts/addClasspathListener");
let addRequest = new RequestType<ClasspathListenerParams, ClasspathListenerResponse, void>("sts/addClasspathListener");
client.onRequest(addRequest, async (params: ClasspathListenerParams) => {
return <ClasspathListenerResponse> await VSCode.commands.executeCommand("java.execute.workspaceCommand", "sts.java.addClasspathListener", params.callbackCommandId);
});
let removeRequest = new RequestType<ClasspathListenerParams, ClasspathListenerResponse, void, void>("sts/removeClasspathListener");
let removeRequest = new RequestType<ClasspathListenerParams, ClasspathListenerResponse, void>("sts/removeClasspathListener");
client.onRequest(removeRequest, async (params: ClasspathListenerParams) => {
return <ClasspathListenerResponse> await VSCode.commands.executeCommand("java.execute.workspaceCommand", "sts.java.removeClasspathListener", params.callbackCommandId);
});

View File

@@ -1,49 +1,50 @@
import * as VSCode from "vscode";
import {LanguageClient, RequestType} from "vscode-languageclient";
import {RequestType} from "vscode-languageclient";
import {LanguageClient} from 'vscode-languageclient/node';
export function registerJavaDataService(client : LanguageClient) : void {
const javaTypeRequest = new RequestType<JavaDataParams, any, void, void>("sts/javaType");
const javaTypeRequest = new RequestType<JavaDataParams, any, void>("sts/javaType");
client.onRequest(javaTypeRequest, async (params: JavaDataParams) =>
<any> await VSCode.commands.executeCommand("java.execute.workspaceCommand", "sts.java.type", params)
);
const javadocHoverLinkRequest = new RequestType<JavaDataParams, any, void, void>("sts/javadocHoverLink");
const javadocHoverLinkRequest = new RequestType<JavaDataParams, any, void>("sts/javadocHoverLink");
client.onRequest(javadocHoverLinkRequest, async (params: JavaDataParams) =>
<any> await VSCode.commands.executeCommand("java.execute.workspaceCommand", "sts.java.javadocHoverLink", params)
);
const javaLocationRequest = new RequestType<JavaDataParams, any, void, void>("sts/javaLocation");
const javaLocationRequest = new RequestType<JavaDataParams, any, void>("sts/javaLocation");
client.onRequest(javaLocationRequest, async (params: JavaDataParams) =>
<any> await VSCode.commands.executeCommand("java.execute.workspaceCommand", "sts.java.location", params)
);
const javadocRequest = new RequestType<JavaDataParams, any, void, void>("sts/javadoc");
const javadocRequest = new RequestType<JavaDataParams, any, void>("sts/javadoc");
client.onRequest(javadocRequest, async (params: JavaDataParams) =>
<any> await VSCode.commands.executeCommand("java.execute.workspaceCommand", "sts.java.javadoc", params)
);
const javaSearchTypes = new RequestType<JavaSearchParams, any, void, void>("sts/javaSearchTypes");
const javaSearchTypes = new RequestType<JavaSearchParams, any, void>("sts/javaSearchTypes");
client.onRequest(javaSearchTypes, async (params: JavaSearchParams) =>
<any> await VSCode.commands.executeCommand("java.execute.workspaceCommand", "sts.java.search.types", params)
);
const javaSearchPackages = new RequestType<JavaSearchParams, any, void, void>("sts/javaSearchPackages");
const javaSearchPackages = new RequestType<JavaSearchParams, any, void>("sts/javaSearchPackages");
client.onRequest(javaSearchPackages, async (params: JavaSearchParams) =>
<any> await VSCode.commands.executeCommand("java.execute.workspaceCommand", "sts.java.search.packages", params)
);
const javaSubTypes = new RequestType<JavaTypeHierarchyParams, any, void, void>("sts/javaSubTypes");
const javaSubTypes = new RequestType<JavaTypeHierarchyParams, any, void>("sts/javaSubTypes");
client.onRequest(javaSubTypes, async (params: JavaTypeHierarchyParams) =>
<any> await VSCode.commands.executeCommand("java.execute.workspaceCommand", "sts.java.hierarchy.subtypes", params)
);
const javaSuperTypes = new RequestType<JavaTypeHierarchyParams, any, void, void>("sts/javaSuperTypes");
const javaSuperTypes = new RequestType<JavaTypeHierarchyParams, any, void>("sts/javaSuperTypes");
client.onRequest(javaSuperTypes, async (params: JavaTypeHierarchyParams) =>
<any> await VSCode.commands.executeCommand("java.execute.workspaceCommand", "sts.java.hierarchy.supertypes", params)
);
const javaCodeCompletion = new RequestType<JavaCodeCompleteParams, any, void, void>('sts/javaCodeComplete');
const javaCodeCompletion = new RequestType<JavaCodeCompleteParams, any, void>('sts/javaCodeComplete');
client.onRequest(javaCodeCompletion, async (params: JavaCodeCompleteParams) =>
<any> await VSCode.commands.executeCommand("java.execute.workspaceCommand", "sts.java.code.completions", params)
);
@@ -75,4 +76,4 @@ interface JavaCodeCompleteParams {
prefix: string;
includeTypes: boolean;
includePackages: boolean;
}
}

View File

@@ -7,7 +7,8 @@ import PortFinder = require('portfinder');
import * as Net from 'net';
import * as ChildProcess from 'child_process';
import * as CommonsCommands from './commands';
import { TextDocumentIdentifier, RequestType, LanguageClient, LanguageClientOptions, SettingMonitor, ServerOptions, StreamInfo, Position } from 'vscode-languageclient';
import { RequestType, LanguageClientOptions, Position } from 'vscode-languageclient';
import {LanguageClient, StreamInfo, ServerOptions} from 'vscode-languageclient/node';
import {
Disposable,
window,
@@ -17,7 +18,7 @@ import {
Progress,
} from 'vscode';
import { Trace, NotificationType } from 'vscode-jsonrpc';
import * as P2C from 'vscode-languageclient/lib/protocolConverter';
import * as P2C from 'vscode-languageclient/lib/common/protocolConverter';
import {HighlightService, HighlightParams} from './highlight-service';
import { log } from 'util';
import { JVM, findJvm, findJdk } from '@pivotal-tools/jvm-launch-utils';
@@ -25,7 +26,7 @@ import { registerClasspathService } from './classpath';
import {HighlightCodeLensProvider} from "./code-lens-service";
import {registerJavaDataService} from "./java-data";
let p2c = P2C.createConverter();
const p2c = P2C.createConverter(undefined, undefined);
PortFinder.basePort = 45556;
@@ -128,14 +129,14 @@ export function activate(options: ActivatorOptions, context: VSCode.ExtensionCon
}
let javaExecutablePath = jvm.getJavaExecutable();
log("Found java exe: " + javaExecutablePath);
let version = jvm.getMajorVersion();
if (version<8) {
VSCode.window.showErrorMessage('Java-based Language Server requires Java 8 or higher (using ' + javaExecutablePath + ')');
if (version<11) {
VSCode.window.showErrorMessage('Java-based Language Server requires Java 11 or higher (using ' + javaExecutablePath + ')', {});
return;
}
log("isJavaEightOrHigher => true");
function createServer(): Promise<StreamInfo> {
return new Promise((resolve, reject) => {
PortFinder.getPort((err, port) => {
@@ -220,7 +221,7 @@ function hasHeapArg(vmargs?: string[]) : boolean {
}
function findServerJar(jarsDir) : string {
let serverJars = FS.readdirSync(jarsDir).filter(jar =>
let serverJars = FS.readdirSync(jarsDir).filter(jar =>
jar.indexOf('language-server')>=0 &&
jar.endsWith(".jar")
);
@@ -261,9 +262,9 @@ function setupLanguageClient(context: VSCode.ExtensionContext, createServer: Ser
client.trace = Trace.Verbose;
}
let progressNotification = new NotificationType<ProgressParams,void>("sts/progress");
let highlightNotification = new NotificationType<HighlightParams,void>("sts/highlight");
let moveCursorRequest = new RequestType<MoveCursorParams,MoveCursorResponse,void,void>("sts/moveCursor");
let progressNotification = new NotificationType<ProgressParams>("sts/progress");
let highlightNotification = new NotificationType<HighlightParams>("sts/highlight");
let moveCursorRequest = new RequestType<MoveCursorParams,MoveCursorResponse,void>("sts/moveCursor");
let disposable = client.start();
@@ -385,7 +386,7 @@ class ProgressService {
title: "",
cancellable: false
}, progress => new Promise(resolve => {
this.status.set(params.id, new ProgressHandle(progress, resolve));
this.status.set(params.id, new ProgressHandle(progress, <() => void>resolve));
progress.report({
message: params.statusMsg,
increment: -1