-
Notifications
You must be signed in to change notification settings - Fork 210
/
Copy pathjava-data.ts
88 lines (72 loc) · 3.72 KB
/
java-data.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
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[];
}