From 4fc87af2dbaae9975ffc02e1f9f0e35d8b1adbd2 Mon Sep 17 00:00:00 2001 From: evosoft-ie Date: Sun, 28 Dec 2025 10:42:18 +0000 Subject: [PATCH] Implement StatusBarUI for analysis results display --- vscode-extension/src/ui/statusBar.ts | 46 ++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 vscode-extension/src/ui/statusBar.ts diff --git a/vscode-extension/src/ui/statusBar.ts b/vscode-extension/src/ui/statusBar.ts new file mode 100644 index 0000000..a7c72cf --- /dev/null +++ b/vscode-extension/src/ui/statusBar.ts @@ -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'; + } +}