tailwind-typescript-plugin 1.4.1-beta.2 → 1.4.1-beta.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +123 -0
- package/README.md +375 -77
- package/lib/core/interfaces.d.ts +23 -12
- package/lib/core/interfaces.d.ts.map +1 -1
- package/lib/core/types.d.ts +112 -1
- package/lib/core/types.d.ts.map +1 -1
- package/lib/extractors/BaseExtractor.d.ts +49 -2
- package/lib/extractors/BaseExtractor.d.ts.map +1 -1
- package/lib/extractors/BaseExtractor.js +184 -5
- package/lib/extractors/BaseExtractor.js.map +1 -1
- package/lib/extractors/CvaExtractor.js +1 -1
- package/lib/extractors/CvaExtractor.js.map +1 -1
- package/lib/extractors/ExpressionExtractor.d.ts.map +1 -1
- package/lib/extractors/ExpressionExtractor.js +35 -5
- package/lib/extractors/ExpressionExtractor.js.map +1 -1
- package/lib/extractors/JsxAttributeExtractor.d.ts +2 -1
- package/lib/extractors/JsxAttributeExtractor.d.ts.map +1 -1
- package/lib/extractors/JsxAttributeExtractor.js +15 -8
- package/lib/extractors/JsxAttributeExtractor.js.map +1 -1
- package/lib/extractors/SvelteAttributeExtractor.d.ts +17 -0
- package/lib/extractors/SvelteAttributeExtractor.d.ts.map +1 -0
- package/lib/extractors/SvelteAttributeExtractor.js +27 -0
- package/lib/extractors/SvelteAttributeExtractor.js.map +1 -0
- package/lib/extractors/TailwindVariantsExtractor.d.ts.map +1 -1
- package/lib/extractors/TailwindVariantsExtractor.js +1 -5
- package/lib/extractors/TailwindVariantsExtractor.js.map +1 -1
- package/lib/extractors/VariableReferenceExtractor.d.ts.map +1 -1
- package/lib/extractors/VariableReferenceExtractor.js +21 -0
- package/lib/extractors/VariableReferenceExtractor.js.map +1 -1
- package/lib/extractors/VueAttributeExtractor.d.ts +119 -0
- package/lib/extractors/VueAttributeExtractor.d.ts.map +1 -0
- package/lib/extractors/VueAttributeExtractor.js +911 -0
- package/lib/extractors/VueAttributeExtractor.js.map +1 -0
- package/lib/extractors/VueExpressionExtractor.d.ts +21 -0
- package/lib/extractors/VueExpressionExtractor.d.ts.map +1 -0
- package/lib/extractors/VueExpressionExtractor.js +51 -0
- package/lib/extractors/VueExpressionExtractor.js.map +1 -0
- package/lib/infrastructure/TailwindConflictDetector.d.ts +28 -18
- package/lib/infrastructure/TailwindConflictDetector.d.ts.map +1 -1
- package/lib/infrastructure/TailwindConflictDetector.js +216 -486
- package/lib/infrastructure/TailwindConflictDetector.js.map +1 -1
- package/lib/infrastructure/TailwindValidator.css-vars.spec.js +1 -11
- package/lib/infrastructure/TailwindValidator.css-vars.spec.js.map +1 -1
- package/lib/infrastructure/TailwindValidator.d.ts +16 -3
- package/lib/infrastructure/TailwindValidator.d.ts.map +1 -1
- package/lib/infrastructure/TailwindValidator.js +83 -24
- package/lib/infrastructure/TailwindValidator.js.map +1 -1
- package/lib/infrastructure/TailwindValidator.spec.js +50 -17
- package/lib/infrastructure/TailwindValidator.spec.js.map +1 -1
- package/lib/plugin/TailwindTypescriptPlugin.d.ts +18 -1
- package/lib/plugin/TailwindTypescriptPlugin.d.ts.map +1 -1
- package/lib/plugin/TailwindTypescriptPlugin.js +124 -55
- package/lib/plugin/TailwindTypescriptPlugin.js.map +1 -1
- package/lib/services/ClassNameExtractionService.d.ts +21 -5
- package/lib/services/ClassNameExtractionService.d.ts.map +1 -1
- package/lib/services/ClassNameExtractionService.js +76 -14
- package/lib/services/ClassNameExtractionService.js.map +1 -1
- package/lib/services/ClassNameExtractionService.spec.d.ts +2 -0
- package/lib/services/ClassNameExtractionService.spec.d.ts.map +1 -0
- package/lib/services/ClassNameExtractionService.spec.js +222 -0
- package/lib/services/ClassNameExtractionService.spec.js.map +1 -0
- package/lib/services/CodeActionService.spec.js +1 -2
- package/lib/services/CodeActionService.spec.js.map +1 -1
- package/lib/services/CompletionService.d.ts +121 -0
- package/lib/services/CompletionService.d.ts.map +1 -0
- package/lib/services/CompletionService.js +573 -0
- package/lib/services/CompletionService.js.map +1 -0
- package/lib/services/CompletionService.spec.d.ts +2 -0
- package/lib/services/CompletionService.spec.d.ts.map +1 -0
- package/lib/services/CompletionService.spec.js +1182 -0
- package/lib/services/CompletionService.spec.js.map +1 -0
- package/lib/services/ConflictClassDetection.spec.js +26 -21
- package/lib/services/ConflictClassDetection.spec.js.map +1 -1
- package/lib/services/DiagnosticService.d.ts +8 -8
- package/lib/services/DiagnosticService.d.ts.map +1 -1
- package/lib/services/DiagnosticService.js +29 -13
- package/lib/services/DiagnosticService.js.map +1 -1
- package/lib/services/DuplicateClassDetection.spec.js +61 -81
- package/lib/services/DuplicateClassDetection.spec.js.map +1 -1
- package/lib/services/PluginConfigService.d.ts +47 -15
- package/lib/services/PluginConfigService.d.ts.map +1 -1
- package/lib/services/PluginConfigService.js +203 -75
- package/lib/services/PluginConfigService.js.map +1 -1
- package/lib/services/PluginConfigService.spec.d.ts +2 -0
- package/lib/services/PluginConfigService.spec.d.ts.map +1 -0
- package/lib/services/PluginConfigService.spec.js +93 -0
- package/lib/services/PluginConfigService.spec.js.map +1 -0
- package/lib/services/ValidationService.d.ts +8 -5
- package/lib/services/ValidationService.d.ts.map +1 -1
- package/lib/services/ValidationService.js +49 -49
- package/lib/services/ValidationService.js.map +1 -1
- package/lib/utils/FrameworkDetector.d.ts +24 -0
- package/lib/utils/FrameworkDetector.d.ts.map +1 -0
- package/lib/utils/FrameworkDetector.js +52 -0
- package/lib/utils/FrameworkDetector.js.map +1 -0
- package/lib/utils/FrameworkDetector.spec.d.ts +2 -0
- package/lib/utils/FrameworkDetector.spec.d.ts.map +1 -0
- package/lib/utils/FrameworkDetector.spec.js +75 -0
- package/lib/utils/FrameworkDetector.spec.js.map +1 -0
- package/package.json +4 -2
- package/lib/extractors/StringLiteralExtractor.d.ts +0 -12
- package/lib/extractors/StringLiteralExtractor.d.ts.map +0 -1
- package/lib/extractors/StringLiteralExtractor.js +0 -21
- package/lib/extractors/StringLiteralExtractor.js.map +0 -1
- package/lib/services/ClassNameExtractionService.original.d.ts +0 -20
- package/lib/services/ClassNameExtractionService.original.d.ts.map +0 -1
- package/lib/services/ClassNameExtractionService.original.js +0 -48
- package/lib/services/ClassNameExtractionService.original.js.map +0 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as ts from 'typescript/lib/tsserverlibrary';
|
|
2
2
|
export declare class TailwindTypescriptPlugin {
|
|
3
3
|
private readonly typescript;
|
|
4
|
-
private logger;
|
|
5
4
|
private validator;
|
|
6
5
|
private validationService;
|
|
7
6
|
private configService;
|
|
8
7
|
private diagnosticCache;
|
|
9
8
|
private codeActionService;
|
|
9
|
+
private completionService;
|
|
10
10
|
private initializationPromise;
|
|
11
11
|
private cssFileWatcher;
|
|
12
12
|
private cssFilePath;
|
|
@@ -60,5 +60,22 @@ export declare class TailwindTypescriptPlugin {
|
|
|
60
60
|
* Create the getEditsForRefactor method to handle Tailwind refactor actions
|
|
61
61
|
*/
|
|
62
62
|
private createGetEditsForRefactor;
|
|
63
|
+
/**
|
|
64
|
+
* Create the getCompletionsAtPosition method with Tailwind class completions
|
|
65
|
+
*/
|
|
66
|
+
private createGetCompletionsAtPosition;
|
|
67
|
+
/**
|
|
68
|
+
* Create the getCompletionEntryDetails method with CSS documentation
|
|
69
|
+
*/
|
|
70
|
+
private createGetCompletionEntryDetails;
|
|
71
|
+
/**
|
|
72
|
+
* Create the getQuickInfoAtPosition method with Tailwind hover information
|
|
73
|
+
*/
|
|
74
|
+
private createGetQuickInfoAtPosition;
|
|
75
|
+
/**
|
|
76
|
+
* Clean up resources when the plugin is disposed
|
|
77
|
+
* This closes file watchers and other resources that would otherwise keep the process alive
|
|
78
|
+
*/
|
|
79
|
+
dispose(): void;
|
|
63
80
|
}
|
|
64
81
|
//# sourceMappingURL=TailwindTypescriptPlugin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TailwindTypescriptPlugin.d.ts","sourceRoot":"","sources":["../../src/plugin/TailwindTypescriptPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"TailwindTypescriptPlugin.d.ts","sourceRoot":"","sources":["../../src/plugin/TailwindTypescriptPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAcrD,qBAAa,wBAAwB;IAWxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAVvC,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,qBAAqB,CAA8B;IAC3D,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,WAAW,CAAuB;gBAEb,UAAU,EAAE,OAAO,EAAE;IAElD;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,gBAAgB,GAAG,EAAE,CAAC,eAAe;IAc5D;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA2D3B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAoC3B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA+D1B;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAoDlC;;;OAGG;IACH,OAAO,CAAC,4BAA4B,CA0CjC;IAEH;;OAEG;IACH,OAAO,CAAC,4BAA4B,CAkDjC;IAEH;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACH,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAIhD;;;OAGG;IACH,OAAO,CAAC,4BAA4B,CA2GjC;IAEH;;OAEG;IACH,OAAO,CAAC,yBAAyB,CAsG9B;IAEH;;OAEG;IACH,OAAO,CAAC,8BAA8B,CA2CnC;IAEH;;OAEG;IACH,OAAO,CAAC,+BAA+B,CAkEpC;IAEH;;OAEG;IACH,OAAO,CAAC,4BAA4B,CAiCjC;IAEH;;;OAGG;IACH,OAAO,IAAI,IAAI;CAMf"}
|
|
@@ -9,11 +9,12 @@ const path_1 = __importDefault(require("path"));
|
|
|
9
9
|
const TailwindValidator_1 = require("../infrastructure/TailwindValidator");
|
|
10
10
|
const ClassNameExtractionService_1 = require("../services/ClassNameExtractionService");
|
|
11
11
|
const CodeActionService_1 = require("../services/CodeActionService");
|
|
12
|
+
const CompletionService_1 = require("../services/CompletionService");
|
|
12
13
|
const DiagnosticService_1 = require("../services/DiagnosticService");
|
|
13
14
|
const FileDiagnosticCache_1 = require("../services/FileDiagnosticCache");
|
|
14
15
|
const PluginConfigService_1 = require("../services/PluginConfigService");
|
|
15
16
|
const ValidationService_1 = require("../services/ValidationService");
|
|
16
|
-
const
|
|
17
|
+
const FrameworkDetector_1 = require("../utils/FrameworkDetector");
|
|
17
18
|
class TailwindTypescriptPlugin {
|
|
18
19
|
constructor(typescript) {
|
|
19
20
|
this.typescript = typescript;
|
|
@@ -25,7 +26,6 @@ class TailwindTypescriptPlugin {
|
|
|
25
26
|
* PERFORMANCE OPTIMIZED with file-level caching
|
|
26
27
|
*/
|
|
27
28
|
this.createGetSemanticDiagnostics = (info) => (fileName) => {
|
|
28
|
-
this.logger.log(`[getSemanticDiagnostics] Getting semantic diagnostics for ${fileName}`);
|
|
29
29
|
// Get original TypeScript diagnostics
|
|
30
30
|
const prior = info.languageService.getSemanticDiagnostics(fileName);
|
|
31
31
|
// Skip if validator not initialized or not a JSX/TSX file
|
|
@@ -42,10 +42,8 @@ class TailwindTypescriptPlugin {
|
|
|
42
42
|
const fileContent = sourceFile.getFullText();
|
|
43
43
|
const cachedDiagnostics = this.diagnosticCache.get(fileName, fileContent);
|
|
44
44
|
if (cachedDiagnostics !== undefined) {
|
|
45
|
-
this.logger.log(`[CACHE HIT] Returning cached diagnostics for ${fileName}`);
|
|
46
45
|
return [...prior, ...cachedDiagnostics];
|
|
47
46
|
}
|
|
48
|
-
this.logger.log(`[CACHE MISS] Validating ${fileName}`);
|
|
49
47
|
// Get fresh type checker from current program (always up-to-date)
|
|
50
48
|
const typeChecker = program.getTypeChecker();
|
|
51
49
|
// Validate and get diagnostics
|
|
@@ -58,21 +56,12 @@ class TailwindTypescriptPlugin {
|
|
|
58
56
|
* Create the getCodeFixesAtPosition method with Tailwind quick fixes
|
|
59
57
|
*/
|
|
60
58
|
this.createGetCodeFixesAtPosition = (info) => (fileName, start, end, errorCodes, formatOptions, preferences) => {
|
|
61
|
-
this.logger.log(`[getCodeFixesAtPosition] fileName=${fileName}, start=${start}, end=${end}, errorCodes=${errorCodes.join(',')}`);
|
|
62
59
|
// Get original TypeScript code fixes
|
|
63
60
|
const prior = info.languageService.getCodeFixesAtPosition(fileName, start, end, errorCodes, formatOptions, preferences);
|
|
64
61
|
// Skip if code action service not initialized or not a supported file
|
|
65
62
|
if (!this.codeActionService || !this.shouldValidateFile(fileName)) {
|
|
66
|
-
this.logger.log('[getCodeFixesAtPosition] Skipping - service not initialized or unsupported file');
|
|
67
63
|
return prior;
|
|
68
64
|
}
|
|
69
|
-
// Check if any of our error codes are requested
|
|
70
|
-
const supportedCodes = this.codeActionService.getSupportedErrorCodes();
|
|
71
|
-
const hasOurErrorCode = errorCodes.some(code => supportedCodes.includes(code));
|
|
72
|
-
if (!hasOurErrorCode) {
|
|
73
|
-
this.logger.log(`[getCodeFixesAtPosition] No matching error codes. Requested: ${errorCodes.join(',')}, Supported: ${supportedCodes.join(',')}`);
|
|
74
|
-
// Still try to provide fixes - the error code check might not be necessary for all IDEs
|
|
75
|
-
}
|
|
76
65
|
// Get source file
|
|
77
66
|
const program = info.languageService.getProgram();
|
|
78
67
|
if (!program) {
|
|
@@ -84,10 +73,8 @@ class TailwindTypescriptPlugin {
|
|
|
84
73
|
}
|
|
85
74
|
// Get all diagnostics for this file (including cached Tailwind diagnostics)
|
|
86
75
|
const allDiagnostics = this.diagnosticCache.get(fileName, sourceFile.getFullText()) || [];
|
|
87
|
-
this.logger.log(`[getCodeFixesAtPosition] Found ${allDiagnostics.length} cached diagnostics`);
|
|
88
76
|
// Get Tailwind quick fixes
|
|
89
77
|
const tailwindFixes = this.codeActionService.getCodeActions(this.typescript, fileName, start, end, allDiagnostics, sourceFile);
|
|
90
|
-
this.logger.log(`[getCodeFixesAtPosition] Generated ${tailwindFixes.length} Tailwind fixes`);
|
|
91
78
|
return [...prior, ...tailwindFixes];
|
|
92
79
|
};
|
|
93
80
|
/**
|
|
@@ -251,17 +238,91 @@ class TailwindTypescriptPlugin {
|
|
|
251
238
|
}
|
|
252
239
|
return undefined;
|
|
253
240
|
};
|
|
241
|
+
/**
|
|
242
|
+
* Create the getCompletionsAtPosition method with Tailwind class completions
|
|
243
|
+
*/
|
|
244
|
+
this.createGetCompletionsAtPosition = (info) => (fileName, position, options) => {
|
|
245
|
+
// Get original TypeScript completions
|
|
246
|
+
const prior = info.languageService.getCompletionsAtPosition(fileName, position, options);
|
|
247
|
+
// Skip if completion service not initialized, not a supported file, or editor/autocomplete disabled
|
|
248
|
+
if (!this.completionService ||
|
|
249
|
+
!this.shouldValidateFile(fileName) ||
|
|
250
|
+
!this.configService.isAutocompleteEnabled()) {
|
|
251
|
+
return prior;
|
|
252
|
+
}
|
|
253
|
+
// Get source file
|
|
254
|
+
const program = info.languageService.getProgram();
|
|
255
|
+
if (!program) {
|
|
256
|
+
return prior;
|
|
257
|
+
}
|
|
258
|
+
const sourceFile = program.getSourceFile(fileName);
|
|
259
|
+
if (!sourceFile) {
|
|
260
|
+
return prior;
|
|
261
|
+
}
|
|
262
|
+
// Get Tailwind completions
|
|
263
|
+
const tailwindCompletions = this.completionService.getCompletionsAtPosition(this.typescript, sourceFile, position, prior);
|
|
264
|
+
if (!tailwindCompletions) {
|
|
265
|
+
return prior;
|
|
266
|
+
}
|
|
267
|
+
return tailwindCompletions;
|
|
268
|
+
};
|
|
269
|
+
/**
|
|
270
|
+
* Create the getCompletionEntryDetails method with CSS documentation
|
|
271
|
+
*/
|
|
272
|
+
this.createGetCompletionEntryDetails = (info) => (fileName, position, entryName, formatOptions, source, preferences, data) => {
|
|
273
|
+
// Get source file
|
|
274
|
+
const program = info.languageService.getProgram();
|
|
275
|
+
if (!program) {
|
|
276
|
+
return info.languageService.getCompletionEntryDetails(fileName, position, entryName, formatOptions, source, preferences, data);
|
|
277
|
+
}
|
|
278
|
+
const sourceFile = program.getSourceFile(fileName);
|
|
279
|
+
if (!sourceFile) {
|
|
280
|
+
return info.languageService.getCompletionEntryDetails(fileName, position, entryName, formatOptions, source, preferences, data);
|
|
281
|
+
}
|
|
282
|
+
// Try to get Tailwind completion details first
|
|
283
|
+
if (this.completionService &&
|
|
284
|
+
this.shouldValidateFile(fileName) &&
|
|
285
|
+
this.configService.isAutocompleteEnabled()) {
|
|
286
|
+
const tailwindDetails = this.completionService.getCompletionEntryDetails(this.typescript, sourceFile, position, entryName);
|
|
287
|
+
if (tailwindDetails) {
|
|
288
|
+
return tailwindDetails;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
// Fall back to original TypeScript completion details
|
|
292
|
+
return info.languageService.getCompletionEntryDetails(fileName, position, entryName, formatOptions, source, preferences, data);
|
|
293
|
+
};
|
|
294
|
+
/**
|
|
295
|
+
* Create the getQuickInfoAtPosition method with Tailwind hover information
|
|
296
|
+
*/
|
|
297
|
+
this.createGetQuickInfoAtPosition = (info) => (fileName, position) => {
|
|
298
|
+
// Get source file
|
|
299
|
+
const program = info.languageService.getProgram();
|
|
300
|
+
if (!program) {
|
|
301
|
+
return info.languageService.getQuickInfoAtPosition(fileName, position);
|
|
302
|
+
}
|
|
303
|
+
const sourceFile = program.getSourceFile(fileName);
|
|
304
|
+
if (!sourceFile) {
|
|
305
|
+
return info.languageService.getQuickInfoAtPosition(fileName, position);
|
|
306
|
+
}
|
|
307
|
+
// Try to get Tailwind hover info first (only if hover is enabled)
|
|
308
|
+
if (this.completionService &&
|
|
309
|
+
this.shouldValidateFile(fileName) &&
|
|
310
|
+
this.configService.isHoverEnabled()) {
|
|
311
|
+
const tailwindInfo = this.completionService.getQuickInfoAtPosition(this.typescript, sourceFile, position);
|
|
312
|
+
if (tailwindInfo) {
|
|
313
|
+
return tailwindInfo;
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
// Fall back to original TypeScript quick info
|
|
317
|
+
return info.languageService.getQuickInfoAtPosition(fileName, position);
|
|
318
|
+
};
|
|
254
319
|
}
|
|
255
320
|
/**
|
|
256
321
|
* Create the plugin proxy for TypeScript Language Service
|
|
257
322
|
*/
|
|
258
323
|
create(info) {
|
|
259
|
-
// PERFORMANCE: Use NoOpLogger by default, only enable if configured
|
|
260
|
-
const enableLogging = (info.config || {}).enableLogging === true;
|
|
261
|
-
this.logger = enableLogging ? new Logger_1.LoggerImpl(info, true) : new Logger_1.NoOpLogger();
|
|
262
|
-
this.logger.log('============= Plugin Starting =============');
|
|
263
324
|
// Initialize configuration service
|
|
264
|
-
this.configService = new PluginConfigService_1.PluginConfigService(info.config || {}
|
|
325
|
+
this.configService = new PluginConfigService_1.PluginConfigService(info.config || {});
|
|
265
326
|
// PERFORMANCE: Initialize file-level diagnostic cache
|
|
266
327
|
this.diagnosticCache = new FileDiagnosticCache_1.FileDiagnosticCache(100);
|
|
267
328
|
// Initialize validator if CSS file is configured
|
|
@@ -274,25 +335,30 @@ class TailwindTypescriptPlugin {
|
|
|
274
335
|
*/
|
|
275
336
|
initializeValidator(info) {
|
|
276
337
|
if (!this.configService.hasValidCssPath()) {
|
|
277
|
-
this.logger.log('No CSS file configured');
|
|
278
338
|
return;
|
|
279
339
|
}
|
|
280
340
|
const projectRoot = info.project.getCurrentDirectory();
|
|
281
341
|
const relativeCssPath = this.configService.getCssFilePath();
|
|
282
342
|
const absoluteCssPath = path_1.default.resolve(projectRoot, relativeCssPath);
|
|
283
343
|
if (!fs_1.default.existsSync(absoluteCssPath)) {
|
|
284
|
-
this.logger.log(`CSS file not found at: ${absoluteCssPath}`);
|
|
285
344
|
return;
|
|
286
345
|
}
|
|
287
346
|
this.cssFilePath = absoluteCssPath;
|
|
288
|
-
this.
|
|
289
|
-
this.validator = new TailwindValidator_1.TailwindValidator(absoluteCssPath, this.logger);
|
|
347
|
+
this.validator = new TailwindValidator_1.TailwindValidator(absoluteCssPath);
|
|
290
348
|
// Initialize services with config flags
|
|
291
349
|
const extractionService = new ClassNameExtractionService_1.ClassNameExtractionService(this.configService.isTailwindVariantsEnabled(), this.configService.isClassVarianceAuthorityEnabled());
|
|
292
350
|
const diagnosticService = new DiagnosticService_1.DiagnosticService();
|
|
293
|
-
this.validationService = new ValidationService_1.ValidationService(extractionService, diagnosticService, this.validator, this.
|
|
351
|
+
this.validationService = new ValidationService_1.ValidationService(extractionService, diagnosticService, this.validator, this.configService, this.validator // Pass as CSS provider for conflict detection
|
|
352
|
+
);
|
|
294
353
|
// Initialize code action service for quick fixes
|
|
295
354
|
this.codeActionService = new CodeActionService_1.CodeActionService(this.validator);
|
|
355
|
+
// Initialize completion service for Tailwind class autocompletion
|
|
356
|
+
const completionConfig = {
|
|
357
|
+
utilityFunctions: this.configService.getUtilityFunctions(),
|
|
358
|
+
tailwindVariantsEnabled: this.configService.isTailwindVariantsEnabled(),
|
|
359
|
+
classVarianceAuthorityEnabled: this.configService.isClassVarianceAuthorityEnabled()
|
|
360
|
+
};
|
|
361
|
+
this.completionService = new CompletionService_1.CompletionService(this.validator, completionConfig);
|
|
296
362
|
// Set allowed classes from config
|
|
297
363
|
const allowedClasses = this.configService.getAllowedClasses();
|
|
298
364
|
if (allowedClasses.length > 0) {
|
|
@@ -302,12 +368,11 @@ class TailwindTypescriptPlugin {
|
|
|
302
368
|
this.initializationPromise = this.validator
|
|
303
369
|
.initialize()
|
|
304
370
|
.then(() => {
|
|
305
|
-
this.logger.log('Tailwind validator initialized');
|
|
306
371
|
// Set up file watcher after successful initialization
|
|
307
372
|
this.setupCssFileWatcher(info);
|
|
308
373
|
})
|
|
309
|
-
.catch(
|
|
310
|
-
|
|
374
|
+
.catch(() => {
|
|
375
|
+
// Initialization failed - validator won't be ready
|
|
311
376
|
});
|
|
312
377
|
}
|
|
313
378
|
/**
|
|
@@ -323,29 +388,26 @@ class TailwindTypescriptPlugin {
|
|
|
323
388
|
this.cssFileWatcher.close();
|
|
324
389
|
this.cssFileWatcher = null;
|
|
325
390
|
}
|
|
326
|
-
this.logger.log(`[CSSWatcher] Setting up file watcher for: ${this.cssFilePath}`);
|
|
327
391
|
// Debounce timer to avoid multiple reloads for rapid changes
|
|
328
392
|
let debounceTimer = null;
|
|
329
393
|
try {
|
|
330
|
-
this.cssFileWatcher = fs_1.default.watch(this.cssFilePath,
|
|
394
|
+
this.cssFileWatcher = fs_1.default.watch(this.cssFilePath, eventType => {
|
|
331
395
|
if (eventType === 'change') {
|
|
332
396
|
// Debounce: wait 300ms after last change before reloading
|
|
333
397
|
if (debounceTimer) {
|
|
334
398
|
clearTimeout(debounceTimer);
|
|
335
399
|
}
|
|
336
400
|
debounceTimer = setTimeout(() => {
|
|
337
|
-
this.logger.log(`[CSSWatcher] CSS file changed: ${filename}`);
|
|
338
401
|
this.reloadDesignSystem(info);
|
|
339
402
|
}, 300);
|
|
340
403
|
}
|
|
341
404
|
});
|
|
342
|
-
this.cssFileWatcher.on('error',
|
|
343
|
-
|
|
405
|
+
this.cssFileWatcher.on('error', () => {
|
|
406
|
+
// Watcher error - silently ignore
|
|
344
407
|
});
|
|
345
|
-
this.logger.log('[CSSWatcher] File watcher set up successfully');
|
|
346
408
|
}
|
|
347
|
-
catch
|
|
348
|
-
|
|
409
|
+
catch {
|
|
410
|
+
// Failed to set up file watcher - silently ignore
|
|
349
411
|
}
|
|
350
412
|
}
|
|
351
413
|
/**
|
|
@@ -353,15 +415,16 @@ class TailwindTypescriptPlugin {
|
|
|
353
415
|
* Clears all caches and re-initializes the validator
|
|
354
416
|
*/
|
|
355
417
|
reloadDesignSystem(info) {
|
|
356
|
-
this.logger.log('[CSSWatcher] Reloading design system...');
|
|
357
418
|
// Clear the diagnostic cache - all files need revalidation
|
|
358
419
|
this.diagnosticCache.clear();
|
|
359
|
-
|
|
420
|
+
// Clear the completion service cache
|
|
421
|
+
if (this.completionService) {
|
|
422
|
+
this.completionService.clearCache();
|
|
423
|
+
}
|
|
360
424
|
// Reload the validator (this clears its internal cache too)
|
|
361
425
|
this.validator
|
|
362
426
|
.reload()
|
|
363
427
|
.then(() => {
|
|
364
|
-
this.logger.log('[CSSWatcher] Design system reloaded successfully');
|
|
365
428
|
// Notify TypeScript that the project has changed to trigger re-validation
|
|
366
429
|
try {
|
|
367
430
|
// Use 'any' to access internal APIs that aren't in the public type definitions
|
|
@@ -370,12 +433,10 @@ class TailwindTypescriptPlugin {
|
|
|
370
433
|
// Mark project as dirty - this is the most reliable way to trigger updates
|
|
371
434
|
if (project && typeof project.markAsDirty === 'function') {
|
|
372
435
|
project.markAsDirty();
|
|
373
|
-
this.logger.log('[CSSWatcher] Marked project as dirty');
|
|
374
436
|
}
|
|
375
437
|
// Update the project graph to reflect changes
|
|
376
438
|
if (project && typeof project.updateGraph === 'function') {
|
|
377
439
|
project.updateGraph();
|
|
378
|
-
this.logger.log('[CSSWatcher] Updated project graph');
|
|
379
440
|
}
|
|
380
441
|
// Access the project service to trigger diagnostic refresh
|
|
381
442
|
// This is the internal API that actually notifies the editor
|
|
@@ -386,12 +447,10 @@ class TailwindTypescriptPlugin {
|
|
|
386
447
|
if (typeof projectService.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles ===
|
|
387
448
|
'function') {
|
|
388
449
|
projectService.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles();
|
|
389
|
-
this.logger.log('[CSSWatcher] Triggered delayed project update');
|
|
390
450
|
}
|
|
391
451
|
// Send custom event to trigger diagnostic refresh in some editors
|
|
392
452
|
if (typeof projectService.sendProjectsUpdatedInBackgroundEvent === 'function') {
|
|
393
453
|
projectService.sendProjectsUpdatedInBackgroundEvent();
|
|
394
|
-
this.logger.log('[CSSWatcher] Sent projects updated event');
|
|
395
454
|
}
|
|
396
455
|
}
|
|
397
456
|
// Try refreshDiagnostics if available (may work in some TS versions)
|
|
@@ -399,15 +458,14 @@ class TailwindTypescriptPlugin {
|
|
|
399
458
|
if (project && typeof project.refreshDiagnostics === 'function') {
|
|
400
459
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
401
460
|
project.refreshDiagnostics();
|
|
402
|
-
this.logger.log('[CSSWatcher] Called refreshDiagnostics');
|
|
403
461
|
}
|
|
404
462
|
}
|
|
405
|
-
catch
|
|
406
|
-
|
|
463
|
+
catch {
|
|
464
|
+
// Error notifying project of changes - silently ignore
|
|
407
465
|
}
|
|
408
466
|
})
|
|
409
|
-
.catch(
|
|
410
|
-
|
|
467
|
+
.catch(() => {
|
|
468
|
+
// Failed to reload design system - silently ignore
|
|
411
469
|
});
|
|
412
470
|
}
|
|
413
471
|
/**
|
|
@@ -445,6 +503,12 @@ class TailwindTypescriptPlugin {
|
|
|
445
503
|
proxy.getApplicableRefactors = this.createGetApplicableRefactors(info);
|
|
446
504
|
// Override getEditsForRefactor to handle our refactors
|
|
447
505
|
proxy.getEditsForRefactor = this.createGetEditsForRefactor(info);
|
|
506
|
+
// Override getCompletionsAtPosition to provide Tailwind class completions
|
|
507
|
+
proxy.getCompletionsAtPosition = this.createGetCompletionsAtPosition(info);
|
|
508
|
+
// Override getCompletionEntryDetails to provide CSS documentation for completions
|
|
509
|
+
proxy.getCompletionEntryDetails = this.createGetCompletionEntryDetails(info);
|
|
510
|
+
// Override getQuickInfoAtPosition to provide hover information for Tailwind classes
|
|
511
|
+
proxy.getQuickInfoAtPosition = this.createGetQuickInfoAtPosition(info);
|
|
448
512
|
return proxy;
|
|
449
513
|
}
|
|
450
514
|
/**
|
|
@@ -452,15 +516,10 @@ class TailwindTypescriptPlugin {
|
|
|
452
516
|
*/
|
|
453
517
|
shouldValidateFile(fileName) {
|
|
454
518
|
if (!this.validator || !this.validator.isInitialized()) {
|
|
455
|
-
this.logger.log(`[shouldValidateFile] Validator not initialized yet for ${fileName}`);
|
|
456
519
|
return false;
|
|
457
520
|
}
|
|
458
|
-
// Process .ts, .tsx, .js,
|
|
459
|
-
|
|
460
|
-
fileName.endsWith('.tsx') ||
|
|
461
|
-
fileName.endsWith('.js') ||
|
|
462
|
-
fileName.endsWith('.jsx');
|
|
463
|
-
if (!isSupportedFile) {
|
|
521
|
+
// Process supported framework files (.ts, .tsx, .js, .jsx, .vue, .svelte)
|
|
522
|
+
if (!(0, FrameworkDetector_1.isSupportedFile)(fileName)) {
|
|
464
523
|
return false;
|
|
465
524
|
}
|
|
466
525
|
return true;
|
|
@@ -471,6 +530,16 @@ class TailwindTypescriptPlugin {
|
|
|
471
530
|
getInitializationPromise() {
|
|
472
531
|
return this.initializationPromise;
|
|
473
532
|
}
|
|
533
|
+
/**
|
|
534
|
+
* Clean up resources when the plugin is disposed
|
|
535
|
+
* This closes file watchers and other resources that would otherwise keep the process alive
|
|
536
|
+
*/
|
|
537
|
+
dispose() {
|
|
538
|
+
if (this.cssFileWatcher) {
|
|
539
|
+
this.cssFileWatcher.close();
|
|
540
|
+
this.cssFileWatcher = null;
|
|
541
|
+
}
|
|
542
|
+
}
|
|
474
543
|
}
|
|
475
544
|
exports.TailwindTypescriptPlugin = TailwindTypescriptPlugin;
|
|
476
545
|
//# sourceMappingURL=TailwindTypescriptPlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TailwindTypescriptPlugin.js","sourceRoot":"","sources":["../../src/plugin/TailwindTypescriptPlugin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TailwindTypescriptPlugin.js","sourceRoot":"","sources":["../../src/plugin/TailwindTypescriptPlugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +1,45 @@
|
|
|
1
1
|
import * as ts from 'typescript/lib/tsserverlibrary';
|
|
2
2
|
import { IClassNameExtractor } from '../core/interfaces';
|
|
3
|
-
import { ClassNameInfo } from '../core/types';
|
|
3
|
+
import { ClassNameInfo, UtilityFunction } from '../core/types';
|
|
4
4
|
/**
|
|
5
5
|
* OPTIMIZED: Service responsible for orchestrating class name extraction
|
|
6
6
|
*
|
|
7
7
|
* Performance improvements:
|
|
8
|
-
* 1. Fast path for
|
|
8
|
+
* 1. Fast path for framework-specific elements (skip non-matching nodes early)
|
|
9
9
|
* 2. Fast path for tv() calls (check only call expressions)
|
|
10
10
|
* 3. Fast path for cva() calls (check only call expressions)
|
|
11
|
-
* 4.
|
|
11
|
+
* 4. Lazy initialization - only creates extractors when needed (memory efficient)
|
|
12
12
|
* 5. Direct node type checking (faster than polymorphic calls)
|
|
13
13
|
* 6. Reduced function call overhead
|
|
14
14
|
* 7. Conditional extractor execution (skip disabled extractors)
|
|
15
|
+
* 8. Framework detection per file (route to appropriate extractor)
|
|
16
|
+
*
|
|
17
|
+
* SOLID Principles:
|
|
18
|
+
* - Single Responsibility: Only orchestrates extraction, doesn't own all extractors
|
|
19
|
+
* - Open/Closed: Can add new frameworks without modifying constructor
|
|
20
|
+
* - Dependency Inversion: Uses IClassNameExtractor interface
|
|
15
21
|
*/
|
|
16
22
|
export declare class ClassNameExtractionService {
|
|
17
23
|
private readonly enableTailwindVariants;
|
|
18
24
|
private readonly enableClassVarianceAuthority;
|
|
19
|
-
private
|
|
25
|
+
private frameworkExtractors;
|
|
20
26
|
private tvExtractor;
|
|
21
27
|
private cvaExtractor;
|
|
22
28
|
constructor(enableTailwindVariants?: boolean, enableClassVarianceAuthority?: boolean);
|
|
29
|
+
/**
|
|
30
|
+
* Factory method to create the appropriate extractor for a framework
|
|
31
|
+
* Follows Factory Pattern for object creation
|
|
32
|
+
*/
|
|
33
|
+
private createFrameworkExtractor;
|
|
34
|
+
/**
|
|
35
|
+
* Gets the extractor for a framework, creating it lazily if needed
|
|
36
|
+
* This ensures we only instantiate extractors we actually use
|
|
37
|
+
*/
|
|
38
|
+
private getFrameworkExtractor;
|
|
23
39
|
/**
|
|
24
40
|
* Extract all class names from a source file (OPTIMIZED)
|
|
25
41
|
*/
|
|
26
|
-
extractFromSourceFile(typescript: typeof ts, sourceFile: ts.SourceFile, utilityFunctions:
|
|
42
|
+
extractFromSourceFile(typescript: typeof ts, sourceFile: ts.SourceFile, utilityFunctions: UtilityFunction[], typeChecker?: ts.TypeChecker, classAttributes?: string[]): ClassNameInfo[];
|
|
27
43
|
/**
|
|
28
44
|
* Add a custom extractor (for extensibility)
|
|
29
45
|
* Note: This is kept for API compatibility but not used in optimized path
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClassNameExtractionService.d.ts","sourceRoot":"","sources":["../../src/services/ClassNameExtractionService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAqB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"ClassNameExtractionService.d.ts","sourceRoot":"","sources":["../../src/services/ClassNameExtractionService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAqB,eAAe,EAAE,MAAM,eAAe,CAAC;AAQlF;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,0BAA0B;IASrC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,4BAA4B;IAR9C,OAAO,CAAC,mBAAmB,CAA6C;IAGxE,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,YAAY,CAAsB;gBAGxB,sBAAsB,GAAE,OAAc,EACtC,4BAA4B,GAAE,OAAc;IAQ9D;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAahC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAO7B;;OAEG;IACH,qBAAqB,CACpB,UAAU,EAAE,OAAO,EAAE,EACrB,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,gBAAgB,EAAE,eAAe,EAAE,EACnC,WAAW,CAAC,EAAE,EAAE,CAAC,WAAW,EAC5B,eAAe,CAAC,EAAE,MAAM,EAAE,GACxB,aAAa,EAAE;IA8ElB;;;OAGG;IAEH,YAAY,CAAC,UAAU,EAAE,mBAAmB,GAAG,IAAI;IAMnD;;OAEG;IACH,WAAW,IAAI,IAAI;CAQnB"}
|