diff --git a/src/configuration.ts b/src/configuration.ts index 3b9b752..c49ce34 100644 --- a/src/configuration.ts +++ b/src/configuration.ts @@ -117,18 +117,21 @@ export class ConfigurationManager { * Gets the complexity status for a given complexity score. * * @param complexity - The complexity score to evaluate - * @param resource - Optional URI for workspace-specific configuration + * @param resourceOrConfig - Optional URI for workspace-specific configuration, or a pre-fetched config * @returns Object containing status information */ public static getComplexityStatus( complexity: number, - resource?: vscode.Uri + resourceOrConfig?: vscode.Uri | CodeMetricsConfig ): { level: "low" | "warning" | "error"; icon: string; text: string; } { - const config = this.getConfiguration(resource); + const config = + resourceOrConfig instanceof vscode.Uri || resourceOrConfig === undefined + ? this.getConfiguration(resourceOrConfig) + : resourceOrConfig; if (complexity >= config.errorThreshold) { return { diff --git a/src/providers/codeLensProvider.ts b/src/providers/codeLensProvider.ts index c7b4c2b..79e89f1 100644 --- a/src/providers/codeLensProvider.ts +++ b/src/providers/codeLensProvider.ts @@ -134,7 +134,7 @@ export class MetricsCodeLensProvider implements vscode.CodeLensProvider { functions.forEach((func) => { // Only show code lens for functions with complexity > 0 if (func.complexity > 0) { - const codeLens = this.createCodeLens(func, document); + const codeLens = this.createCodeLens(func, document, config); if (codeLens) { codeLenses.push(codeLens); } @@ -146,7 +146,8 @@ export class MetricsCodeLensProvider implements vscode.CodeLensProvider { private createCodeLens( func: UnifiedFunctionMetrics, - document: vscode.TextDocument + document: vscode.TextDocument, + config: CodeMetricsConfig ): vscode.CodeLens | undefined { const complexity = func.complexity; @@ -154,10 +155,10 @@ export class MetricsCodeLensProvider implements vscode.CodeLensProvider { const line = func.startLine; const range = new vscode.Range(line, 0, line, 0); - // Get status information using configuration manager + // Get status information using the already-resolved config const status = ConfigurationManager.getComplexityStatus( complexity, - document.uri + config ); // Create the code lens title