2023-05-31 16:10:53 +08:00
|
|
|
import * as vscode from 'vscode';
|
|
|
|
|
2023-05-31 16:10:53 +08:00
|
|
|
import { dependencyCheck } from './statusBarViewBase';
|
2023-05-31 16:10:53 +08:00
|
|
|
|
|
|
|
|
|
|
|
export function createStatusBarItem(context: vscode.ExtensionContext): vscode.StatusBarItem {
|
|
|
|
const statusBarItem = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Right, 100);
|
|
|
|
|
|
|
|
// Set the status bar item properties
|
|
|
|
statusBarItem.text = `$(warning)DevChat`;
|
|
|
|
statusBarItem.tooltip = 'DevChat checking ..., please wait.';
|
|
|
|
statusBarItem.command = '';
|
|
|
|
|
|
|
|
// add a timer to update the status bar item
|
2023-05-31 16:10:53 +08:00
|
|
|
setInterval(async () => {
|
|
|
|
const [devchatStatus, apiKeyStatus] = await dependencyCheck();
|
2023-05-31 16:10:53 +08:00
|
|
|
if (devchatStatus !== 'ready') {
|
|
|
|
statusBarItem.text = `$(warning)DevChat`;
|
|
|
|
statusBarItem.tooltip = `${devchatStatus}`;
|
2023-05-31 16:10:53 +08:00
|
|
|
statusBarItem.command = undefined;
|
2023-05-31 16:10:53 +08:00
|
|
|
// set statusBarItem warning color
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (apiKeyStatus !== 'ready') {
|
|
|
|
statusBarItem.text = `$(warning)DevChat`;
|
|
|
|
statusBarItem.tooltip = `${apiKeyStatus}`;
|
|
|
|
statusBarItem.command = 'DevChat.OPENAI_API_KEY';
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
statusBarItem.text = `$(pass)DevChat`;
|
|
|
|
statusBarItem.tooltip = `ready to chat`;
|
|
|
|
statusBarItem.command = 'devcaht.onStatusBarClick';
|
|
|
|
}, 3000);
|
|
|
|
|
|
|
|
// Add the status bar item to the status bar
|
|
|
|
statusBarItem.show();
|
|
|
|
|
|
|
|
context.subscriptions.push(statusBarItem);
|
|
|
|
return statusBarItem;
|
|
|
|
}
|