Files
spring-tools/vscode-extensions/commons-vscode/src/java-data.ts
2024-06-03 20:07:44 -04:00

89 lines
3.7 KiB
TypeScript

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<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>("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>("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>("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>("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>("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>("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>("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>('sts/javaCodeComplete');
client.onRequest(javaCodeCompletion, async (params: JavaCodeCompleteParams) =>
<any> await VSCode.commands.executeCommand("java.execute.workspaceCommand", "sts.java.code.completions", params)
);
const projectGav = new RequestType<ProjectGavParams, any, void>("sts/project/gav");
client.onRequest(projectGav, async (params: ProjectGavParams) =>
<any> 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[];
}