|
1 | 1 | import * as path from "path"; |
2 | | -import { workspace, ExtensionContext, window, commands } from "vscode"; |
| 2 | +import { |
| 3 | + workspace, |
| 4 | + ExtensionContext, |
| 5 | + window, |
| 6 | + commands, |
| 7 | + StatusBarAlignment, |
| 8 | + ThemeColor, |
| 9 | + StatusBarItem, |
| 10 | +} from "vscode"; |
3 | 11 |
|
4 | 12 | import { |
5 | 13 | LanguageClient, |
@@ -66,10 +74,54 @@ export function activate(context: ExtensionContext) { |
66 | 74 | }), |
67 | 75 | ); |
68 | 76 |
|
| 77 | + // ステータスバーの作成と表示 |
| 78 | + const statusBar = createStatusBar(); |
| 79 | + statusBar.show(); |
| 80 | + |
| 81 | + client.onReady().then(() => { |
| 82 | + // ステータスバーの背景色を黄色に変更 |
| 83 | + client.onRequest("custom/warning", () => { |
| 84 | + statusBar.backgroundColor = new ThemeColor( |
| 85 | + "statusBarItem.warningBackground", |
| 86 | + ); |
| 87 | + statusBar.text = "$(warning) Uroborosql-fmt"; |
| 88 | + }); |
| 89 | + |
| 90 | + // ステータスバーの背景色を赤色に変更 |
| 91 | + client.onRequest("custom/error", () => { |
| 92 | + statusBar.backgroundColor = new ThemeColor( |
| 93 | + "statusBarItem.errorBackground", |
| 94 | + ); |
| 95 | + statusBar.text = "$(alert) Uroborosql-fmt"; |
| 96 | + }); |
| 97 | + |
| 98 | + // ステータスバーの背景色を通常色に変更 |
| 99 | + client.onRequest("custom/normal", () => { |
| 100 | + statusBar.backgroundColor = new ThemeColor( |
| 101 | + "statusBarItem.fourgroundBackground", |
| 102 | + ); |
| 103 | + statusBar.text = "Uroborosql-fmt"; |
| 104 | + }); |
| 105 | + }); |
| 106 | + |
69 | 107 | // Start the client. This will also launch the server |
70 | 108 | client.start(); |
71 | 109 | } |
72 | 110 |
|
| 111 | +function createStatusBar(): StatusBarItem { |
| 112 | + commands.registerCommand("uroborosql-fmt.show-output", async () => { |
| 113 | + const output_channnel = client.outputChannel; |
| 114 | + output_channnel.show(); |
| 115 | + }); |
| 116 | + |
| 117 | + const statusBar = window.createStatusBarItem(StatusBarAlignment.Right, 100); |
| 118 | + statusBar.text = "Uroborosql-fmt"; |
| 119 | + statusBar.name = "Uroborosql-fmt"; |
| 120 | + statusBar.command = "uroborosql-fmt.show-output"; |
| 121 | + |
| 122 | + return statusBar; |
| 123 | +} |
| 124 | + |
73 | 125 | export function deactivate(): Thenable<void> | undefined { |
74 | 126 | if (!client) { |
75 | 127 | return undefined; |
|
0 commit comments