forked from redhat-developer/vscode-java
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserverStatusBarProvider.ts
More file actions
92 lines (79 loc) · 2.96 KB
/
serverStatusBarProvider.ts
File metadata and controls
92 lines (79 loc) · 2.96 KB
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
89
90
91
92
'use strict';
import { StatusBarItem, window, StatusBarAlignment, ThemeColor, commands, QuickPickItem, QuickPickItemKind } from "vscode";
import { Disposable } from "vscode-languageclient";
import { StatusCommands } from "./languageStatusItemFactory";
import { Commands } from "./commands";
import { ServerStatusKind } from "./serverStatus";
class ServerStatusBarProvider implements Disposable {
private statusBarItem: StatusBarItem;
constructor() {
this.statusBarItem = window.createStatusBarItem("java.serverStatus", StatusBarAlignment.Left);
this.statusBarItem.show();
}
public showLightWeightStatus(): void {
this.statusBarItem.name = "Java Server Mode";
this.statusBarItem.text = `${StatusIcon.lightWeight} Java: Lightweight Mode`;
this.statusBarItem.command = StatusCommands.switchToStandardCommand;
this.statusBarItem.tooltip = "Java language server is running in LightWeight mode, click to switch to Standard mode";
}
public showNotImportedStatus(): void {
this.statusBarItem.name = "No projects are imported";
this.statusBarItem.text = `${StatusIcon.notImported} Java: No Projects Imported`;
this.statusBarItem.command = StatusCommands.startStandardServerCommand;
this.statusBarItem.tooltip = "No projects are imported, click to load projects";
}
public setBusy(process: string): void {
this.statusBarItem.text = `${StatusIcon.busy} Java: ${process}`;
this.statusBarItem.tooltip = process;
this.statusBarItem.command = {
title: "Show Java status menu",
command: Commands.OPEN_STATUS_SHORTCUT,
tooltip: "Show Java status menu",
arguments: [ServerStatusKind.busy],
};
}
public setError(): void {
this.statusBarItem.text = `${StatusIcon.java} Java: Error`;
this.statusBarItem.tooltip = "Show Java status menu";
this.statusBarItem.command = {
title: "Show Java status menu",
command: Commands.OPEN_STATUS_SHORTCUT,
tooltip: "Show Java status menu",
arguments: [ServerStatusKind.error],
};
}
public setWarning(): void {
this.statusBarItem.text = `${StatusIcon.java} Java: Warning`;
this.statusBarItem.tooltip = "Show Java status menu";
this.statusBarItem.command = {
title: "Show Java status menu",
command: Commands.OPEN_STATUS_SHORTCUT,
tooltip: "Show Java status menu",
arguments: [ServerStatusKind.warning],
};
}
public setReady(): void {
this.statusBarItem.text = `${StatusIcon.java} Java: Ready`;
this.statusBarItem.tooltip = "Show Java status menu";
this.statusBarItem.command = {
title: "Show Java status menu",
command: Commands.OPEN_STATUS_SHORTCUT,
tooltip: "Show Java status menu",
arguments: ["Ready"],
};
}
public dispose(): void {
this.statusBarItem?.dispose();
}
}
export enum StatusIcon {
lightWeight = "$(rocket)",
notImported = "$(info)",
busy = "$(sync~spin)",
java = "$(coffee)",
}
export interface ShortcutQuickPickItem extends QuickPickItem {
command: string;
args?: any[];
}
export const serverStatusBarProvider: ServerStatusBarProvider = new ServerStatusBarProvider();