Implement StatusBarUI for analysis results display

This commit is contained in:
evosoft-ie 2025-12-28 10:42:18 +00:00 committed by GitHub
parent 63bcbd6785
commit 4fc87af2db
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -0,0 +1,46 @@
import * as vscode from 'vscode';
import { AnalysisResult } from '../analysis/analyzer';
export class StatusBarUI {
private statusBarItem: vscode.StatusBarItem;
constructor() {
this.statusBarItem = vscode.window.createStatusBarItem(
vscode.StatusBarAlignment.Right,
100
);
this.statusBarItem.show();
}
public update(analysis: AnalysisResult | null) {
if (!analysis) {
this.statusBarItem.text = '$(check) AILint: Ready';
this.statusBarItem.tooltip = 'No AI influence detected';
this.statusBarItem.backgroundColor = undefined;
return;
}
const percentage = (analysis.confidence * 100).toFixed(0);
if (analysis.confidence < 0.3) {
// Low likelihood
this.statusBarItem.text = `$(check) AI: ${percentage}%`;
this.statusBarItem.backgroundColor = undefined;
} else if (analysis.confidence < 0.7) {
// Medium likelihood
this.statusBarItem.text = `$(warning) AI: ${percentage}%`;
this.statusBarItem.backgroundColor = new vscode.ThemeColor(
'statusBarItem.warningBackground'
);
} else {
// High likelihood
this.statusBarItem.text = `$(alert) AI: ${percentage}%`;
this.statusBarItem.backgroundColor = new vscode.ThemeColor(
'statusBarItem.errorBackground'
);
}
this.statusBarItem.tooltip = analysis.explanation;
this.statusBarItem.command = 'ailint.showDetails';
}
}