/** * @fileoverview VS Code Integration for Security Scanning * @module @nahisaho/musubix-security/integrations/vscode-integration * * Provides API for VS Code extension integration with diagnostic * and code action capabilities. */ import type { ScanResult, Vulnerability, Severity, Fix } from '../types/index.js'; /** * VS Code diagnostic severity (mirrors vscode.DiagnosticSeverity) */ export declare enum DiagnosticSeverity { Error = 0, Warning = 1, Information = 2, Hint = 3 } /** * VS Code position */ export interface Position { line: number; character: number; } /** * VS Code range */ export interface Range { start: Position; end: Position; } /** * VS Code diagnostic */ export interface Diagnostic { /** Range where the diagnostic applies */ range: Range; /** Human-readable message */ message: string; /** Severity level */ severity: DiagnosticSeverity; /** Diagnostic code */ code?: string | number; /** Source of the diagnostic */ source: string; /** Related information */ relatedInformation?: DiagnosticRelatedInformation[]; /** Tags for special handling */ tags?: DiagnosticTag[]; } /** * Diagnostic related information */ export interface DiagnosticRelatedInformation { location: { uri: string; range: Range; }; message: string; } /** * Diagnostic tag */ export declare enum DiagnosticTag { Unnecessary = 1, Deprecated = 2 } /** * Code action */ export interface CodeAction { /** Title shown in UI */ title: string; /** Kind of code action */ kind: CodeActionKind; /** Diagnostics this action resolves */ diagnostics?: Diagnostic[]; /** Workspace edit to apply */ edit?: WorkspaceEdit; /** Command to execute */ command?: Command; /** Whether this is preferred action */ isPreferred?: boolean; } /** * Code action kind */ export type CodeActionKind = 'quickfix' | 'quickfix.security' | 'refactor' | 'refactor.security' | 'source' | 'source.fixAll.security'; /** * Workspace edit */ export interface WorkspaceEdit { /** Map of URI to text edits */ changes: Map; } /** * Text edit */ export interface TextEdit { range: Range; newText: string; } /** * Command */ export interface Command { title: string; command: string; arguments?: unknown[]; } /** * Status bar item */ export interface StatusBarItem { text: string; tooltip: string; color?: string; backgroundColor?: string; command?: string; } /** * Tree item for explorer view */ export interface TreeItem { label: string; description?: string; tooltip?: string; iconPath?: string; collapsibleState: 'none' | 'collapsed' | 'expanded'; children?: TreeItem[]; command?: Command; contextValue?: string; } /** * Hover content */ export interface HoverContent { contents: string[]; range?: Range; } /** * Decoration */ export interface Decoration { range: Range; renderOptions: { after?: { contentText: string; color?: string; backgroundColor?: string; }; before?: { contentText: string; color?: string; backgroundColor?: string; }; }; } /** * VS Code integration options */ export interface VSCodeIntegrationOptions { /** Source name for diagnostics */ diagnosticSource?: string; /** Collection name for diagnostics */ diagnosticCollection?: string; /** Enable inline decorations */ enableDecorations?: boolean; /** Enable code lens */ enableCodeLens?: boolean; /** Severity mapping override */ severityMapping?: Partial>; } /** * VS Code integration adapter for security scanning * * @example * ```typescript * const integration = createVSCodeIntegration(); * * // Convert scan result to diagnostics * const diagnostics = integration.toDiagnostics(scanResult); * * // Generate code actions for fixes * const actions = integration.toCodeActions(vulnerability, fixes); * ``` */ export declare class VSCodeIntegration { private options; private severityMap; constructor(options?: VSCodeIntegrationOptions); /** * Convert vulnerability to VS Code diagnostic */ toDiagnostic(vulnerability: Vulnerability): Diagnostic; /** * Convert scan result to VS Code diagnostics grouped by file */ toDiagnostics(scanResult: ScanResult): Map; /** * Convert fix to VS Code code action */ toCodeAction(vulnerability: Vulnerability, fix: Fix): CodeAction; /** * Convert multiple fixes to code actions */ toCodeActions(vulnerability: Vulnerability, fixes: Fix[]): CodeAction[]; /** * Generate "Fix All" code action */ toFixAllAction(scanResult: ScanResult, fixes: Map): CodeAction; /** * Generate status bar item */ toStatusBarItem(scanResult: ScanResult): StatusBarItem; /** * Generate tree items for explorer view */ toTreeItems(scanResult: ScanResult): TreeItem[]; /** * Generate hover content for a vulnerability */ toHoverContent(vulnerability: Vulnerability): HoverContent; /** * Generate inline decorations for vulnerabilities */ toDecorations(vulnerabilities: Vulnerability[]): Decoration[]; /** * Generate webview HTML content */ toWebviewHTML(scanResult: ScanResult): string; private locationToRange; private formatDiagnosticMessage; private getRelatedInformation; private formatStatusTooltip; private getSeverityIcon; private getSeverityColor; private getSeverityBadge; private vulnerabilityToTreeItem; } /** * Create VS Code integration instance */ export declare function createVSCodeIntegration(options?: VSCodeIntegrationOptions): VSCodeIntegration; //# sourceMappingURL=vscode-integration.d.ts.map