w1-system-font-validator
Version:
VS Code extension for validating W1 System font variables (both fontConfig.json and localFontConfig.json)
128 lines • 3.71 kB
TypeScript
import * as vscode from "vscode";
export declare class UnifiedFontValidator {
private diagnosticCollection;
private configDetector;
private validationTimeouts;
private projectConfigs;
private readonly FONT_FAMILY_PATTERN;
private readonly CUSTOM_FONT_PATTERN;
private readonly FONT_FAMILY_PROPERTY_PATTERN;
private readonly CSS_VAR_DEFINITION_PATTERN;
private readonly VALID_FONT_WEIGHTS;
private readonly FONT_WEIGHT_PATTERN;
private readonly FONT_STYLE_PATTERN;
constructor();
/**
* Validate a document with debouncing
*/
validateDocumentDebounced(document: vscode.TextDocument): void;
/**
* Main validation method
*/
validateDocument(document: vscode.TextDocument): Promise<void>;
/**
* NEW SYSTEM: Validate font-family variables (--fontfamily_*)
*/
private validateFontFamilyVariables;
/**
* NEW: Validate ANY var() usage in font-family properties (catches non-W1 variables)
*/
private validateFontFamilyProperties;
/**
* NEW: Validate custom font variables by checking their definitions in global CSS files
*/
private validateCustomFontVariables;
/**
* Check if a custom variable is defined using valid fontConfig variables
*/
private isCustomVariableValidlyDefined;
/**
* Find global CSS files in the workspace
*/
private findGlobalCssFiles;
/**
* Read file content safely
*/
private readFileContent;
/**
* Find a variable definition in CSS content
*/
private findVariableDefinition;
/**
* Check if a CSS value uses valid fontConfig variables
*/
private definitionUsesValidFont;
/**
* ENHANCED: Validate font-weight and font-style combinations against available font data
*/
private validateFontWeightAndStyle;
/**
* Find font-family variable in the current CSS rule context
*/
private findFontFamilyInRule;
/**
* Find font-style value in the current CSS rule context
*/
private findFontStyleInRule;
/**
* Check if weight/style combination is valid for a specific font
*/
private isValidWeightStyleCombination;
/**
* Get detailed available weights with style information
*/
private getDetailedAvailableWeights;
/**
* Get available weights for display in error messages
*/
private getAvailableWeightsForFont;
/**
* Convert CSS weight keywords to numeric values
*/
private convertWeightToNumeric;
/**
* Check if a font-weight value is valid
*/
private isValidFontWeight;
/**
* Get or load project configuration for a file
*/
private getProjectConfig;
/**
* Generate cache key for project configuration
*/
private getProjectCacheKey;
/**
* Check if document should be validated
*/
private shouldValidateDocument;
/**
* Generate suggestions for invalid font-family variables
*/
private getSuggestions;
/**
* Calculate similarity between two strings
*/
private calculateSimilarity;
/**
* Calculate Levenshtein distance
*/
private levenshteinDistance;
/**
* Provide hover information
*/
provideHover(document: vscode.TextDocument, position: vscode.Position): Promise<vscode.Hover | undefined>;
/**
* Clear cache and refresh configurations
*/
refreshConfig(): void;
/**
* Cleanup document validation
*/
cleanupDocument(document: vscode.TextDocument): void;
/**
* Dispose validator resources
*/
dispose(): void;
}
//# sourceMappingURL=unifiedValidator.d.ts.map