import * as VSCode from "vscode"; import {RequestType} from "vscode-languageclient"; import {LanguageClient} from 'vscode-languageclient/node'; export function registerJavaDataService(client : LanguageClient) : void { const javaTypeRequest = new RequestType("sts/javaType"); client.onRequest(javaTypeRequest, async (params: JavaDataParams) => await VSCode.commands.executeCommand("java.execute.workspaceCommand", "sts.java.type", params) ); const javadocHoverLinkRequest = new RequestType("sts/javadocHoverLink"); client.onRequest(javadocHoverLinkRequest, async (params: JavaDataParams) => await VSCode.commands.executeCommand("java.execute.workspaceCommand", "sts.java.javadocHoverLink", params) ); const javaLocationRequest = new RequestType("sts/javaLocation"); client.onRequest(javaLocationRequest, async (params: JavaDataParams) => await VSCode.commands.executeCommand("java.execute.workspaceCommand", "sts.java.location", params) ); const javadocRequest = new RequestType("sts/javadoc"); client.onRequest(javadocRequest, async (params: JavaDataParams) => await VSCode.commands.executeCommand("java.execute.workspaceCommand", "sts.java.javadoc", params) ); const javaSearchTypes = new RequestType("sts/javaSearchTypes"); client.onRequest(javaSearchTypes, async (params: JavaSearchParams) => await VSCode.commands.executeCommand("java.execute.workspaceCommand", "sts.java.search.types", params) ); const javaSearchPackages = new RequestType("sts/javaSearchPackages"); client.onRequest(javaSearchPackages, async (params: JavaSearchParams) => await VSCode.commands.executeCommand("java.execute.workspaceCommand", "sts.java.search.packages", params) ); const javaSubTypes = new RequestType("sts/javaSubTypes"); client.onRequest(javaSubTypes, async (params: JavaTypeHierarchyParams) => await VSCode.commands.executeCommand("java.execute.workspaceCommand", "sts.java.hierarchy.subtypes", params) ); const javaSuperTypes = new RequestType("sts/javaSuperTypes"); client.onRequest(javaSuperTypes, async (params: JavaTypeHierarchyParams) => await VSCode.commands.executeCommand("java.execute.workspaceCommand", "sts.java.hierarchy.supertypes", params) ); const javaCodeCompletion = new RequestType('sts/javaCodeComplete'); client.onRequest(javaCodeCompletion, async (params: JavaCodeCompleteParams) => await VSCode.commands.executeCommand("java.execute.workspaceCommand", "sts.java.code.completions", params) ); const projectGav = new RequestType("sts/project/gav"); client.onRequest(projectGav, async (params: ProjectGavParams) => await VSCode.commands.executeCommand("java.execute.workspaceCommand", "sts.project.gav", params) ); } interface JavaDataParams { projectUri: string; bindingKey: string; lookInOtherProjects?: boolean; } interface JavaSearchParams { projectUri: string; term: string; searchType: string; includeBinaries: boolean; includeSystemLibs: boolean; timeLimit: number; } interface JavaTypeHierarchyParams { projectUri?: string; fqName: string; includeFocusType: boolean; } interface JavaCodeCompleteParams { projectUri: string; prefix: string; includeTypes: boolean; includePackages: boolean; } interface ProjectGavParams { projectUris: string[]; }