tailwind-typescript-plugin 1.4.1-beta.3 → 1.4.1-beta.31

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.
Files changed (152) hide show
  1. package/CHANGELOG.md +155 -0
  2. package/README.md +369 -71
  3. package/lib/core/interfaces.d.ts +40 -13
  4. package/lib/core/interfaces.d.ts.map +1 -1
  5. package/lib/core/types.d.ts +112 -1
  6. package/lib/core/types.d.ts.map +1 -1
  7. package/lib/extractors/BaseExtractor.d.ts +56 -3
  8. package/lib/extractors/BaseExtractor.d.ts.map +1 -1
  9. package/lib/extractors/BaseExtractor.js +194 -5
  10. package/lib/extractors/BaseExtractor.js.map +1 -1
  11. package/lib/extractors/BaseExtractor.spec.d.ts +2 -0
  12. package/lib/extractors/BaseExtractor.spec.d.ts.map +1 -0
  13. package/lib/extractors/BaseExtractor.spec.js +421 -0
  14. package/lib/extractors/BaseExtractor.spec.js.map +1 -0
  15. package/lib/extractors/CvaExtractor.js +1 -1
  16. package/lib/extractors/CvaExtractor.js.map +1 -1
  17. package/lib/extractors/CvaExtractor.spec.d.ts +2 -0
  18. package/lib/extractors/CvaExtractor.spec.d.ts.map +1 -0
  19. package/lib/extractors/CvaExtractor.spec.js +1177 -0
  20. package/lib/extractors/CvaExtractor.spec.js.map +1 -0
  21. package/lib/extractors/ExpressionExtractor.d.ts.map +1 -1
  22. package/lib/extractors/ExpressionExtractor.js +35 -5
  23. package/lib/extractors/ExpressionExtractor.js.map +1 -1
  24. package/lib/extractors/ExpressionExtractor.spec.d.ts +2 -0
  25. package/lib/extractors/ExpressionExtractor.spec.d.ts.map +1 -0
  26. package/lib/extractors/ExpressionExtractor.spec.js +316 -0
  27. package/lib/extractors/ExpressionExtractor.spec.js.map +1 -0
  28. package/lib/extractors/JsxAttributeExtractor.d.ts +7 -1
  29. package/lib/extractors/JsxAttributeExtractor.d.ts.map +1 -1
  30. package/lib/extractors/JsxAttributeExtractor.js +21 -8
  31. package/lib/extractors/JsxAttributeExtractor.js.map +1 -1
  32. package/lib/extractors/JsxAttributeExtractor.spec.d.ts +2 -0
  33. package/lib/extractors/JsxAttributeExtractor.spec.d.ts.map +1 -0
  34. package/lib/extractors/JsxAttributeExtractor.spec.js +430 -0
  35. package/lib/extractors/JsxAttributeExtractor.spec.js.map +1 -0
  36. package/lib/extractors/TailwindVariantsExtractor.d.ts.map +1 -1
  37. package/lib/extractors/TailwindVariantsExtractor.js +1 -5
  38. package/lib/extractors/TailwindVariantsExtractor.js.map +1 -1
  39. package/lib/extractors/TailwindVariantsExtractor.spec.d.ts +2 -0
  40. package/lib/extractors/TailwindVariantsExtractor.spec.d.ts.map +1 -0
  41. package/lib/extractors/TailwindVariantsExtractor.spec.js +1407 -0
  42. package/lib/extractors/TailwindVariantsExtractor.spec.js.map +1 -0
  43. package/lib/extractors/TemplateExpressionExtractor.spec.d.ts +2 -0
  44. package/lib/extractors/TemplateExpressionExtractor.spec.d.ts.map +1 -0
  45. package/lib/extractors/TemplateExpressionExtractor.spec.js +240 -0
  46. package/lib/extractors/TemplateExpressionExtractor.spec.js.map +1 -0
  47. package/lib/extractors/VariableReferenceExtractor.d.ts.map +1 -1
  48. package/lib/extractors/VariableReferenceExtractor.js +21 -0
  49. package/lib/extractors/VariableReferenceExtractor.js.map +1 -1
  50. package/lib/extractors/VariableReferenceExtractor.spec.d.ts +2 -0
  51. package/lib/extractors/VariableReferenceExtractor.spec.d.ts.map +1 -0
  52. package/lib/extractors/VariableReferenceExtractor.spec.js +138 -0
  53. package/lib/extractors/VariableReferenceExtractor.spec.js.map +1 -0
  54. package/lib/extractors/VueAttributeExtractor.d.ts +202 -0
  55. package/lib/extractors/VueAttributeExtractor.d.ts.map +1 -0
  56. package/lib/extractors/VueAttributeExtractor.js +1691 -0
  57. package/lib/extractors/VueAttributeExtractor.js.map +1 -0
  58. package/lib/extractors/VueExpressionExtractor.d.ts +34 -0
  59. package/lib/extractors/VueExpressionExtractor.d.ts.map +1 -0
  60. package/lib/extractors/VueExpressionExtractor.js +171 -0
  61. package/lib/extractors/VueExpressionExtractor.js.map +1 -0
  62. package/lib/infrastructure/TailwindValidator.css-vars.spec.js +1 -11
  63. package/lib/infrastructure/TailwindValidator.css-vars.spec.js.map +1 -1
  64. package/lib/infrastructure/TailwindValidator.d.ts +10 -3
  65. package/lib/infrastructure/TailwindValidator.d.ts.map +1 -1
  66. package/lib/infrastructure/TailwindValidator.js +68 -28
  67. package/lib/infrastructure/TailwindValidator.js.map +1 -1
  68. package/lib/infrastructure/TailwindValidator.spec.js +50 -17
  69. package/lib/infrastructure/TailwindValidator.spec.js.map +1 -1
  70. package/lib/plugin/TailwindTypescriptPlugin.d.ts +22 -1
  71. package/lib/plugin/TailwindTypescriptPlugin.d.ts.map +1 -1
  72. package/lib/plugin/TailwindTypescriptPlugin.js +133 -50
  73. package/lib/plugin/TailwindTypescriptPlugin.js.map +1 -1
  74. package/lib/services/ClassNameExtractionService.d.ts +27 -6
  75. package/lib/services/ClassNameExtractionService.d.ts.map +1 -1
  76. package/lib/services/ClassNameExtractionService.js +80 -17
  77. package/lib/services/ClassNameExtractionService.js.map +1 -1
  78. package/lib/services/ClassNameExtractionService.spec.d.ts +2 -0
  79. package/lib/services/ClassNameExtractionService.spec.d.ts.map +1 -0
  80. package/lib/services/ClassNameExtractionService.spec.js +215 -0
  81. package/lib/services/ClassNameExtractionService.spec.js.map +1 -0
  82. package/lib/services/CodeActionService.spec.js +1 -2
  83. package/lib/services/CodeActionService.spec.js.map +1 -1
  84. package/lib/services/CompletionService.d.ts +121 -0
  85. package/lib/services/CompletionService.d.ts.map +1 -0
  86. package/lib/services/CompletionService.js +573 -0
  87. package/lib/services/CompletionService.js.map +1 -0
  88. package/lib/services/CompletionService.spec.d.ts +2 -0
  89. package/lib/services/CompletionService.spec.d.ts.map +1 -0
  90. package/lib/services/CompletionService.spec.js +1182 -0
  91. package/lib/services/CompletionService.spec.js.map +1 -0
  92. package/lib/services/ConfigSchemaValidator.d.ts +40 -0
  93. package/lib/services/ConfigSchemaValidator.d.ts.map +1 -0
  94. package/lib/services/ConfigSchemaValidator.js +139 -0
  95. package/lib/services/ConfigSchemaValidator.js.map +1 -0
  96. package/lib/services/ConfigSchemaValidator.spec.d.ts +2 -0
  97. package/lib/services/ConfigSchemaValidator.spec.d.ts.map +1 -0
  98. package/lib/services/ConfigSchemaValidator.spec.js +344 -0
  99. package/lib/services/ConfigSchemaValidator.spec.js.map +1 -0
  100. package/lib/services/ConflictClassDetection.spec.js +53 -5
  101. package/lib/services/ConflictClassDetection.spec.js.map +1 -1
  102. package/lib/services/DiagnosticService.d.ts +8 -8
  103. package/lib/services/DiagnosticService.d.ts.map +1 -1
  104. package/lib/services/DiagnosticService.js +29 -13
  105. package/lib/services/DiagnosticService.js.map +1 -1
  106. package/lib/services/DiagnosticService.spec.d.ts +2 -0
  107. package/lib/services/DiagnosticService.spec.d.ts.map +1 -0
  108. package/lib/services/DiagnosticService.spec.js +259 -0
  109. package/lib/services/DiagnosticService.spec.js.map +1 -0
  110. package/lib/services/DuplicateClassDetection.spec.js +20 -21
  111. package/lib/services/DuplicateClassDetection.spec.js.map +1 -1
  112. package/lib/services/FileDiagnosticCache.spec.d.ts +2 -0
  113. package/lib/services/FileDiagnosticCache.spec.d.ts.map +1 -0
  114. package/lib/services/FileDiagnosticCache.spec.js +213 -0
  115. package/lib/services/FileDiagnosticCache.spec.js.map +1 -0
  116. package/lib/services/PerformanceCache.spec.d.ts +2 -0
  117. package/lib/services/PerformanceCache.spec.d.ts.map +1 -0
  118. package/lib/services/PerformanceCache.spec.js +168 -0
  119. package/lib/services/PerformanceCache.spec.js.map +1 -0
  120. package/lib/services/PluginConfigService.d.ts +66 -15
  121. package/lib/services/PluginConfigService.d.ts.map +1 -1
  122. package/lib/services/PluginConfigService.js +230 -73
  123. package/lib/services/PluginConfigService.js.map +1 -1
  124. package/lib/services/PluginConfigService.spec.d.ts +2 -0
  125. package/lib/services/PluginConfigService.spec.d.ts.map +1 -0
  126. package/lib/services/PluginConfigService.spec.js +93 -0
  127. package/lib/services/PluginConfigService.spec.js.map +1 -0
  128. package/lib/services/ValidationService.d.ts +7 -5
  129. package/lib/services/ValidationService.d.ts.map +1 -1
  130. package/lib/services/ValidationService.js +40 -43
  131. package/lib/services/ValidationService.js.map +1 -1
  132. package/lib/services/ValidationService.spec.d.ts +2 -0
  133. package/lib/services/ValidationService.spec.d.ts.map +1 -0
  134. package/lib/services/ValidationService.spec.js +289 -0
  135. package/lib/services/ValidationService.spec.js.map +1 -0
  136. package/lib/utils/FrameworkDetector.d.ts +23 -0
  137. package/lib/utils/FrameworkDetector.d.ts.map +1 -0
  138. package/lib/utils/FrameworkDetector.js +47 -0
  139. package/lib/utils/FrameworkDetector.js.map +1 -0
  140. package/lib/utils/FrameworkDetector.spec.d.ts +2 -0
  141. package/lib/utils/FrameworkDetector.spec.d.ts.map +1 -0
  142. package/lib/utils/FrameworkDetector.spec.js +67 -0
  143. package/lib/utils/FrameworkDetector.spec.js.map +1 -0
  144. package/package.json +11 -4
  145. package/lib/extractors/StringLiteralExtractor.d.ts +0 -12
  146. package/lib/extractors/StringLiteralExtractor.d.ts.map +0 -1
  147. package/lib/extractors/StringLiteralExtractor.js +0 -21
  148. package/lib/extractors/StringLiteralExtractor.js.map +0 -1
  149. package/lib/services/ClassNameExtractionService.original.d.ts +0 -20
  150. package/lib/services/ClassNameExtractionService.original.d.ts.map +0 -1
  151. package/lib/services/ClassNameExtractionService.original.js +0 -48
  152. package/lib/services/ClassNameExtractionService.original.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ClassNameExtractionService.js","sourceRoot":"","sources":["../../src/services/ClassNameExtractionService.ts"],"names":[],"mappings":";;;AAIA,6DAA0D;AAC1D,+EAA4E;AAC5E,uFAAoF;AAEpF;;;;;;;;;;;GAWG;AACH,MAAa,0BAA0B;IAKtC,YACkB,yBAAkC,IAAI,EACtC,+BAAwC,IAAI;QAD5C,2BAAsB,GAAtB,sBAAsB,CAAgB;QACtC,iCAA4B,GAA5B,4BAA4B,CAAgB;QAE7D,+DAA+D;QAC/D,IAAI,CAAC,YAAY,GAAG,IAAI,6CAAqB,EAAE,CAAC;QAChD,IAAI,CAAC,WAAW,GAAG,sBAAsB,CAAC,CAAC,CAAC,IAAI,qDAAyB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACnF,IAAI,CAAC,YAAY,GAAG,4BAA4B,CAAC,CAAC,CAAC,IAAI,2BAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9E,CAAC;IAED;;OAEG;IACH,qBAAqB,CACpB,UAAqB,EACrB,UAAyB,EACzB,gBAA0B,EAC1B,WAA4B;QAE5B,MAAM,UAAU,GAAoB,EAAE,CAAC;QACvC,MAAM,OAAO,GAAsB;YAClC,UAAU;YACV,UAAU;YACV,gBAAgB;YAChB,WAAW;SACX,CAAC;QAEF,4DAA4D;QAC5D,6CAA6C;QAC7C,MAAM,KAAK,GAAG,CAAC,IAAa,EAAQ,EAAE;YACrC,8DAA8D;YAC9D,uCAAuC;YACvC,IAAI,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtF,8CAA8C;gBAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC3D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;gBAC/B,CAAC;YACF,CAAC;YACD,yDAAyD;YACzD,qEAAqE;iBAChE,IAAI,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5C,2CAA2C;gBAC3C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBACtB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBAC5D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC5B,UAAU,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;oBACjC,CAAC;gBACF,CAAC;gBAED,4CAA4C;gBAC5C,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBACvB,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBAC9D,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC7B,UAAU,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;oBAClC,CAAC;gBACF,CAAC;YACF,CAAC;YAED,4DAA4D;YAC5D,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACtC,CAAC,CAAC;QAEF,KAAK,CAAC,UAAU,CAAC,CAAC;QAClB,OAAO,UAAU,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,6DAA6D;IAC7D,YAAY,CAAC,UAA+B;QAC3C,4DAA4D;QAC5D,oDAAoD;QACpD,OAAO,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;IAC1E,CAAC;IAED;;OAEG;IACH,WAAW;QACV,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QAC/B,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;QAChC,CAAC;IACF,CAAC;CACD;AA9FD,gEA8FC"}
1
+ {"version":3,"file":"ClassNameExtractionService.js","sourceRoot":"","sources":["../../src/services/ClassNameExtractionService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ClassNameExtractionService.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClassNameExtractionService.spec.d.ts","sourceRoot":"","sources":["../../src/services/ClassNameExtractionService.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,215 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const ts = __importStar(require("typescript/lib/tsserverlibrary"));
37
+ const ClassNameExtractionService_1 = require("./ClassNameExtractionService");
38
+ describe('ClassNameExtractionService', () => {
39
+ let service;
40
+ beforeEach(() => {
41
+ service = new ClassNameExtractionService_1.ClassNameExtractionService(true, true);
42
+ });
43
+ describe('Framework-specific extraction', () => {
44
+ it('should extract classes from JSX files', () => {
45
+ const sourceCode = '<div className="flex items-center">Hello</div>';
46
+ const sourceFile = ts.createSourceFile('App.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
47
+ const classNames = service.extractFromSourceFile(ts, sourceFile, []);
48
+ expect(classNames).toHaveLength(2);
49
+ expect(classNames[0].className).toBe('flex');
50
+ expect(classNames[1].className).toBe('items-center');
51
+ });
52
+ it('should skip unsupported file types', () => {
53
+ const sourceCode = 'body { color: red; }';
54
+ const sourceFile = ts.createSourceFile('styles.css', sourceCode, ts.ScriptTarget.Latest, true);
55
+ const classNames = service.extractFromSourceFile(ts, sourceFile, []);
56
+ expect(classNames).toHaveLength(0);
57
+ });
58
+ it('should handle Vue files with stub extractor', () => {
59
+ const sourceCode = '<template><div class="flex">Hello</div></template>';
60
+ const sourceFile = ts.createSourceFile('App.vue', sourceCode, ts.ScriptTarget.Latest, true);
61
+ // Vue extractor is a stub, should return empty array
62
+ const classNames = service.extractFromSourceFile(ts, sourceFile, []);
63
+ expect(classNames).toHaveLength(0);
64
+ });
65
+ });
66
+ describe('Lazy initialization', () => {
67
+ it('should create JSX extractor only when processing JSX files', () => {
68
+ const service = new ClassNameExtractionService_1.ClassNameExtractionService(true, true);
69
+ // Check that frameworkExtractors map is initially empty
70
+ // We can't directly access private fields, but we can verify behavior
71
+ const sourceFile = ts.createSourceFile('App.tsx', '<div className="flex">Test</div>', ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
72
+ const classNames = service.extractFromSourceFile(ts, sourceFile, []);
73
+ // If lazy initialization works, we should get results
74
+ expect(classNames).toHaveLength(1);
75
+ expect(classNames[0].className).toBe('flex');
76
+ });
77
+ it('should reuse cached extractors for same framework', () => {
78
+ const jsxFile1 = ts.createSourceFile('App.tsx', '<div className="flex">Test</div>', ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
79
+ const jsxFile2 = ts.createSourceFile('Button.tsx', '<button className="btn">Click</button>', ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
80
+ // Process first JSX file
81
+ const classNames1 = service.extractFromSourceFile(ts, jsxFile1, []);
82
+ expect(classNames1).toHaveLength(1);
83
+ // Process second JSX file - should reuse cached extractor
84
+ const classNames2 = service.extractFromSourceFile(ts, jsxFile2, []);
85
+ expect(classNames2).toHaveLength(1);
86
+ // Both should work correctly
87
+ expect(classNames1[0].className).toBe('flex');
88
+ expect(classNames2[0].className).toBe('btn');
89
+ });
90
+ it('should create different extractors for different frameworks', () => {
91
+ const jsxFile = ts.createSourceFile('App.tsx', '<div className="flex">Test</div>', ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
92
+ const vueFile = ts.createSourceFile('App.vue', '<template><div class="flex">Test</div></template>', ts.ScriptTarget.Latest, true);
93
+ // Process JSX file
94
+ const jsxClassNames = service.extractFromSourceFile(ts, jsxFile, []);
95
+ expect(jsxClassNames).toHaveLength(1);
96
+ // Process Vue file (stub, returns empty)
97
+ const vueClassNames = service.extractFromSourceFile(ts, vueFile, []);
98
+ expect(vueClassNames).toHaveLength(0);
99
+ // Both should work independently
100
+ });
101
+ });
102
+ describe('Mixed project support', () => {
103
+ it('should handle projects with multiple framework files', () => {
104
+ const files = [
105
+ {
106
+ name: 'Header.tsx',
107
+ code: '<header className="header">Header</header>',
108
+ kind: ts.ScriptKind.TSX
109
+ },
110
+ {
111
+ name: 'Footer.tsx',
112
+ code: '<footer className="footer">Footer</footer>',
113
+ kind: ts.ScriptKind.TSX
114
+ },
115
+ { name: 'Button.vue', code: '<template><button>Click</button></template>', kind: undefined }
116
+ ];
117
+ const results = files.map(file => {
118
+ const sourceFile = ts.createSourceFile(file.name, file.code, ts.ScriptTarget.Latest, true, file.kind);
119
+ return service.extractFromSourceFile(ts, sourceFile, []);
120
+ });
121
+ // JSX files should extract classes
122
+ expect(results[0]).toHaveLength(1);
123
+ expect(results[0][0].className).toBe('header');
124
+ expect(results[1]).toHaveLength(1);
125
+ expect(results[1][0].className).toBe('footer');
126
+ // Vue file should return empty (stub)
127
+ expect(results[2]).toHaveLength(0);
128
+ });
129
+ });
130
+ describe('Custom class attributes', () => {
131
+ it('should extract classes from default className attribute', () => {
132
+ const sourceCode = '<div className="flex items-center">Hello</div>';
133
+ const sourceFile = ts.createSourceFile('App.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
134
+ const classNames = service.extractFromSourceFile(ts, sourceFile, [], undefined, [
135
+ 'className',
136
+ 'class',
137
+ 'classList'
138
+ ]);
139
+ expect(classNames).toHaveLength(2);
140
+ expect(classNames[0].className).toBe('flex');
141
+ expect(classNames[1].className).toBe('items-center');
142
+ });
143
+ it('should extract classes from custom attributes when configured', () => {
144
+ const sourceCode = '<View colorStyles="bg-blue-500 text-white">Hello</View>';
145
+ const sourceFile = ts.createSourceFile('App.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
146
+ const classNames = service.extractFromSourceFile(ts, sourceFile, [], undefined, [
147
+ 'className',
148
+ 'class',
149
+ 'classList',
150
+ 'colorStyles'
151
+ ]);
152
+ expect(classNames).toHaveLength(2);
153
+ expect(classNames[0].className).toBe('bg-blue-500');
154
+ expect(classNames[1].className).toBe('text-white');
155
+ });
156
+ it('should extract classes from multiple custom attributes', () => {
157
+ const sourceCode = '<View colorStyles="bg-blue-500" textStyles="font-bold text-lg">Hello</View>';
158
+ const sourceFile = ts.createSourceFile('App.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
159
+ const classNames = service.extractFromSourceFile(ts, sourceFile, [], undefined, [
160
+ 'className',
161
+ 'colorStyles',
162
+ 'textStyles'
163
+ ]);
164
+ expect(classNames).toHaveLength(3);
165
+ expect(classNames[0].className).toBe('bg-blue-500');
166
+ expect(classNames[1].className).toBe('font-bold');
167
+ expect(classNames[2].className).toBe('text-lg');
168
+ });
169
+ it('should not extract from non-configured attributes', () => {
170
+ const sourceCode = '<View customProp="flex items-center">Hello</View>';
171
+ const sourceFile = ts.createSourceFile('App.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
172
+ // Only default attributes configured, customProp not included
173
+ const classNames = service.extractFromSourceFile(ts, sourceFile, [], undefined, [
174
+ 'className',
175
+ 'class',
176
+ 'classList'
177
+ ]);
178
+ expect(classNames).toHaveLength(0);
179
+ });
180
+ it('should work with JSX expressions in custom attributes', () => {
181
+ const sourceCode = "<View colorStyles={'bg-blue-500 text-white'}>Hello</View>";
182
+ const sourceFile = ts.createSourceFile('App.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
183
+ const classNames = service.extractFromSourceFile(ts, sourceFile, [], undefined, [
184
+ 'className',
185
+ 'colorStyles'
186
+ ]);
187
+ expect(classNames).toHaveLength(2);
188
+ expect(classNames[0].className).toBe('bg-blue-500');
189
+ expect(classNames[1].className).toBe('text-white');
190
+ });
191
+ });
192
+ describe('Variant extractors', () => {
193
+ it('should work across all frameworks', () => {
194
+ // tv() and cva() should work in any file type
195
+ const jsxWithTv = ts.createSourceFile('App.tsx', `
196
+ import { tv } from 'tailwind-variants';
197
+ const button = tv({ base: 'flex items-center' });
198
+ `, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
199
+ const classNames = service.extractFromSourceFile(ts, jsxWithTv, []);
200
+ // Should extract from tv() call
201
+ expect(classNames.length).toBeGreaterThan(0);
202
+ });
203
+ it('should be disabled when configuration is false', () => {
204
+ const serviceWithoutVariants = new ClassNameExtractionService_1.ClassNameExtractionService(false, false);
205
+ const codeWithTv = ts.createSourceFile('App.tsx', `
206
+ import { tv } from 'tailwind-variants';
207
+ const button = tv({ base: 'flex items-center' });
208
+ `, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
209
+ const classNames = serviceWithoutVariants.extractFromSourceFile(ts, codeWithTv, []);
210
+ // Should not extract from tv() since it's disabled
211
+ expect(classNames).toHaveLength(0);
212
+ });
213
+ });
214
+ });
215
+ //# sourceMappingURL=ClassNameExtractionService.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClassNameExtractionService.spec.js","sourceRoot":"","sources":["../../src/services/ClassNameExtractionService.spec.ts"],"names":[],"mappings":"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"}
@@ -35,14 +35,13 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  const ts = __importStar(require("typescript/lib/tsserverlibrary"));
37
37
  const TailwindValidator_1 = require("../infrastructure/TailwindValidator");
38
- const Logger_1 = require("../utils/Logger");
39
38
  const CodeActionService_1 = require("./CodeActionService");
40
39
  const DiagnosticService_1 = require("./DiagnosticService");
41
40
  describe('CodeActionService', () => {
42
41
  let validator;
43
42
  let codeActionService;
44
43
  beforeEach(() => {
45
- validator = new TailwindValidator_1.TailwindValidator('/fake/path.css', new Logger_1.NoOpLogger());
44
+ validator = new TailwindValidator_1.TailwindValidator('/fake/path.css');
46
45
  // Mock the validator methods
47
46
  jest.spyOn(validator, 'getSimilarClasses').mockImplementation((invalidClass) => {
48
47
  if (invalidClass === 'itms-center') {
@@ -1 +1 @@
1
- {"version":3,"file":"CodeActionService.spec.js","sourceRoot":"","sources":["../../src/services/CodeActionService.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CodeActionService.spec.js","sourceRoot":"","sources":["../../src/services/CodeActionService.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,121 @@
1
+ import * as ts from 'typescript/lib/tsserverlibrary';
2
+ import { UtilityFunction } from '../core/types';
3
+ import { TailwindValidator } from '../infrastructure/TailwindValidator';
4
+ /**
5
+ * Configuration options for completion service
6
+ */
7
+ export interface CompletionServiceConfig {
8
+ /** Custom utility functions to recognize for completions */
9
+ utilityFunctions: UtilityFunction[];
10
+ /** Whether tailwind-variants (tv) is enabled */
11
+ tailwindVariantsEnabled: boolean;
12
+ /** Whether class-variance-authority (cva) is enabled */
13
+ classVarianceAuthorityEnabled: boolean;
14
+ }
15
+ /**
16
+ * Service that provides autocompletion for Tailwind CSS class names
17
+ *
18
+ * Provides completions when:
19
+ * - Cursor is inside a className attribute's string literal
20
+ * - Cursor is inside a utility function argument (clsx, cn, classnames, etc.)
21
+ * - Cursor is inside tv() or cva() class strings
22
+ *
23
+ * Features:
24
+ * - Filters completions based on what's already typed
25
+ * - Excludes classes already present in the same className
26
+ * - Handles space-separated class lists properly
27
+ */
28
+ export declare class CompletionService {
29
+ private readonly validator;
30
+ private readonly config;
31
+ /** Cached sorted class list for faster completion generation */
32
+ private cachedClassList;
33
+ /** Cached set of utility function names for quick lookup */
34
+ private utilityFunctionNames;
35
+ constructor(validator: TailwindValidator, config: CompletionServiceConfig);
36
+ /**
37
+ * Get completions at the given position
38
+ */
39
+ getCompletionsAtPosition(typescript: typeof ts, sourceFile: ts.SourceFile, position: number, existingCompletions: ts.CompletionInfo | undefined): ts.CompletionInfo | undefined;
40
+ /**
41
+ * Get quick info (hover) at position for Tailwind class names
42
+ * Shows the CSS generated by the class when hovering over it
43
+ */
44
+ getQuickInfoAtPosition(typescript: typeof ts, sourceFile: ts.SourceFile, position: number): ts.QuickInfo | undefined;
45
+ /**
46
+ * Find a Tailwind class name at the given position
47
+ * Returns the class name, its start position, and length if found
48
+ */
49
+ private findClassNameAtPosition;
50
+ /**
51
+ * Get completion entry details for a specific completion item
52
+ * Formats the documentation with markdown CSS code blocks for syntax highlighting
53
+ */
54
+ getCompletionEntryDetails(typescript: typeof ts, sourceFile: ts.SourceFile, position: number, entryName: string): ts.CompletionEntryDetails | undefined;
55
+ /**
56
+ * Format CSS output for display in the completion documentation
57
+ * Transforms the raw Tailwind CSS output into a nicely formatted rule block
58
+ */
59
+ private formatCssForDisplay;
60
+ /**
61
+ * Extract just the CSS declarations from a CSS rule for the detail summary
62
+ * e.g., ".flex { display: flex; }" -> "display: flex;"
63
+ */
64
+ private extractCssDeclarations;
65
+ /**
66
+ * Check if a name is a valid Tailwind class
67
+ */
68
+ private isTailwindClass;
69
+ /**
70
+ * Analyze the source file at the given position to determine completion context
71
+ */
72
+ private getCompletionContext;
73
+ /**
74
+ * Find the deepest node at the given position
75
+ * Uses TypeScript's built-in method which handles edge cases better
76
+ */
77
+ private findNodeAtPosition;
78
+ /**
79
+ * Check if a string literal node is in a className-like context
80
+ */
81
+ private isClassNameContext;
82
+ /**
83
+ * Check if an attribute name is a className-like attribute
84
+ */
85
+ private isClassNameAttribute;
86
+ /**
87
+ * Check if a function name is a configured utility function for class names
88
+ */
89
+ private isUtilityFunction;
90
+ /**
91
+ * Get the name of a call expression
92
+ */
93
+ private getCallExpressionName;
94
+ /**
95
+ * Find the parent call expression of a node
96
+ */
97
+ private findParentCallExpression;
98
+ /**
99
+ * Generate completion entries for Tailwind classes
100
+ */
101
+ private generateCompletions;
102
+ /**
103
+ * Get the cached class list, initializing if necessary
104
+ */
105
+ private getClassList;
106
+ /**
107
+ * Clear the cached class list (call when design system reloads)
108
+ */
109
+ clearCache(): void;
110
+ /**
111
+ * Check if a class name is related to colors
112
+ * Uses a pattern-based approach to detect color classes efficiently
113
+ */
114
+ private isColorClass;
115
+ /**
116
+ * Generate sort text for completion ordering
117
+ * Classes that start with the prefix get priority
118
+ */
119
+ private getSortText;
120
+ }
121
+ //# sourceMappingURL=CompletionService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompletionService.d.ts","sourceRoot":"","sources":["../../src/services/CompletionService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAkBxE;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACvC,4DAA4D;IAC5D,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,gDAAgD;IAChD,uBAAuB,EAAE,OAAO,CAAC;IACjC,wDAAwD;IACxD,6BAA6B,EAAE,OAAO,CAAC;CACvC;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,iBAAiB;IAO5B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAPxB,gEAAgE;IAChE,OAAO,CAAC,eAAe,CAAyB;IAChD,4DAA4D;IAC5D,OAAO,CAAC,oBAAoB,CAAc;gBAGxB,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,uBAAuB;IAgBjD;;OAEG;IACH,wBAAwB,CACvB,UAAU,EAAE,OAAO,EAAE,EACrB,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,QAAQ,EAAE,MAAM,EAChB,mBAAmB,EAAE,EAAE,CAAC,cAAc,GAAG,SAAS,GAChD,EAAE,CAAC,cAAc,GAAG,SAAS;IAwBhC;;;OAGG;IACH,sBAAsB,CACrB,UAAU,EAAE,OAAO,EAAE,EACrB,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,QAAQ,EAAE,MAAM,GACd,EAAE,CAAC,SAAS,GAAG,SAAS;IA4C3B;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAqE/B;;;OAGG;IACH,yBAAyB,CACxB,UAAU,EAAE,OAAO,EAAE,EACrB,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GACf,EAAE,CAAC,sBAAsB,GAAG,SAAS;IAuCxC;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAuC3B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAiB9B;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAwE5B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA4D1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAyBhC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA0C3B;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;;OAGG;IACH,OAAO,CAAC,YAAY;IA+EpB;;;OAGG;IACH,OAAO,CAAC,WAAW;CAcnB"}