css-variable-lsp 1.0.0 → 1.0.1

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 (450) hide show
  1. package/README.md +5 -9
  2. package/package.json +2 -2
  3. package/server/out/cascadeAndInline.test.js +67 -0
  4. package/server/out/cascadeAndInline.test.js.map +1 -0
  5. package/server/out/cssVariableManager.js +390 -0
  6. package/server/out/cssVariableManager.js.map +1 -0
  7. package/server/out/domTree.js +115 -0
  8. package/server/out/domTree.js.map +1 -0
  9. package/server/out/domTree.test.js +77 -0
  10. package/server/out/domTree.test.js.map +1 -0
  11. package/server/out/fileLifecycle.test.js +163 -0
  12. package/server/out/fileLifecycle.test.js.map +1 -0
  13. package/server/out/fileTypesAndUpdates.test.js +78 -0
  14. package/server/out/fileTypesAndUpdates.test.js.map +1 -0
  15. package/server/out/htmlComments.test.js +180 -0
  16. package/server/out/htmlComments.test.js.map +1 -0
  17. package/server/out/server.js +457 -0
  18. package/server/out/server.js.map +1 -0
  19. package/server/out/specificity.js +138 -0
  20. package/server/out/specificity.js.map +1 -0
  21. package/server/out/specificity.test.js +66 -0
  22. package/server/out/specificity.test.js.map +1 -0
  23. package/server/out/test.js +112 -0
  24. package/server/out/test.js.map +1 -0
  25. package/server/tsconfig.tsbuildinfo +1 -0
  26. package/client/node_modules/.package-lock.json +0 -110
  27. package/client/node_modules/@types/node/LICENSE +0 -21
  28. package/client/node_modules/@types/node/README.md +0 -15
  29. package/client/node_modules/@types/node/assert/strict.d.ts +0 -8
  30. package/client/node_modules/@types/node/assert.d.ts +0 -1005
  31. package/client/node_modules/@types/node/async_hooks.d.ts +0 -586
  32. package/client/node_modules/@types/node/buffer.buffer.d.ts +0 -457
  33. package/client/node_modules/@types/node/buffer.d.ts +0 -1901
  34. package/client/node_modules/@types/node/child_process.d.ts +0 -1453
  35. package/client/node_modules/@types/node/cluster.d.ts +0 -578
  36. package/client/node_modules/@types/node/compatibility/disposable.d.ts +0 -14
  37. package/client/node_modules/@types/node/compatibility/index.d.ts +0 -9
  38. package/client/node_modules/@types/node/compatibility/indexable.d.ts +0 -20
  39. package/client/node_modules/@types/node/compatibility/iterators.d.ts +0 -20
  40. package/client/node_modules/@types/node/console.d.ts +0 -452
  41. package/client/node_modules/@types/node/constants.d.ts +0 -21
  42. package/client/node_modules/@types/node/crypto.d.ts +0 -4504
  43. package/client/node_modules/@types/node/dgram.d.ts +0 -596
  44. package/client/node_modules/@types/node/diagnostics_channel.d.ts +0 -551
  45. package/client/node_modules/@types/node/dns/promises.d.ts +0 -477
  46. package/client/node_modules/@types/node/dns.d.ts +0 -860
  47. package/client/node_modules/@types/node/domain.d.ts +0 -170
  48. package/client/node_modules/@types/node/events.d.ts +0 -863
  49. package/client/node_modules/@types/node/fs/promises.d.ts +0 -1208
  50. package/client/node_modules/@types/node/fs.d.ts +0 -4332
  51. package/client/node_modules/@types/node/globals.d.ts +0 -170
  52. package/client/node_modules/@types/node/globals.typedarray.d.ts +0 -21
  53. package/client/node_modules/@types/node/http.d.ts +0 -1919
  54. package/client/node_modules/@types/node/http2.d.ts +0 -2580
  55. package/client/node_modules/@types/node/https.d.ts +0 -549
  56. package/client/node_modules/@types/node/index.d.ts +0 -92
  57. package/client/node_modules/@types/node/inspector.generated.d.ts +0 -2775
  58. package/client/node_modules/@types/node/module.d.ts +0 -503
  59. package/client/node_modules/@types/node/net.d.ts +0 -924
  60. package/client/node_modules/@types/node/os.d.ts +0 -480
  61. package/client/node_modules/@types/node/package.json +0 -145
  62. package/client/node_modules/@types/node/path.d.ts +0 -191
  63. package/client/node_modules/@types/node/perf_hooks.d.ts +0 -860
  64. package/client/node_modules/@types/node/process.d.ts +0 -1632
  65. package/client/node_modules/@types/node/punycode.d.ts +0 -117
  66. package/client/node_modules/@types/node/querystring.d.ts +0 -140
  67. package/client/node_modules/@types/node/readline/promises.d.ts +0 -154
  68. package/client/node_modules/@types/node/readline.d.ts +0 -715
  69. package/client/node_modules/@types/node/repl.d.ts +0 -430
  70. package/client/node_modules/@types/node/stream/consumers.d.ts +0 -38
  71. package/client/node_modules/@types/node/stream/promises.d.ts +0 -90
  72. package/client/node_modules/@types/node/stream/web.d.ts +0 -527
  73. package/client/node_modules/@types/node/stream.d.ts +0 -1680
  74. package/client/node_modules/@types/node/string_decoder.d.ts +0 -67
  75. package/client/node_modules/@types/node/test.d.ts +0 -1208
  76. package/client/node_modules/@types/node/timers/promises.d.ts +0 -108
  77. package/client/node_modules/@types/node/timers.d.ts +0 -286
  78. package/client/node_modules/@types/node/tls.d.ts +0 -1204
  79. package/client/node_modules/@types/node/trace_events.d.ts +0 -171
  80. package/client/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +0 -455
  81. package/client/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -19
  82. package/client/node_modules/@types/node/ts5.6/index.d.ts +0 -92
  83. package/client/node_modules/@types/node/tty.d.ts +0 -206
  84. package/client/node_modules/@types/node/url.d.ts +0 -957
  85. package/client/node_modules/@types/node/util.d.ts +0 -2083
  86. package/client/node_modules/@types/node/v8.d.ts +0 -753
  87. package/client/node_modules/@types/node/vm.d.ts +0 -704
  88. package/client/node_modules/@types/node/wasi.d.ts +0 -160
  89. package/client/node_modules/@types/node/web-globals/abortcontroller.d.ts +0 -34
  90. package/client/node_modules/@types/node/web-globals/domexception.d.ts +0 -68
  91. package/client/node_modules/@types/node/web-globals/events.d.ts +0 -81
  92. package/client/node_modules/@types/node/web-globals/fetch.d.ts +0 -38
  93. package/client/node_modules/@types/node/worker_threads.d.ts +0 -698
  94. package/client/node_modules/@types/node/zlib.d.ts +0 -517
  95. package/client/node_modules/@types/vscode/LICENSE +0 -21
  96. package/client/node_modules/@types/vscode/README.md +0 -15
  97. package/client/node_modules/@types/vscode/index.d.ts +0 -21145
  98. package/client/node_modules/@types/vscode/package.json +0 -26
  99. package/client/node_modules/balanced-match/.github/FUNDING.yml +0 -2
  100. package/client/node_modules/balanced-match/LICENSE.md +0 -21
  101. package/client/node_modules/balanced-match/README.md +0 -97
  102. package/client/node_modules/balanced-match/index.js +0 -62
  103. package/client/node_modules/balanced-match/package.json +0 -48
  104. package/client/node_modules/brace-expansion/.github/FUNDING.yml +0 -2
  105. package/client/node_modules/brace-expansion/LICENSE +0 -21
  106. package/client/node_modules/brace-expansion/README.md +0 -135
  107. package/client/node_modules/brace-expansion/index.js +0 -203
  108. package/client/node_modules/brace-expansion/package.json +0 -49
  109. package/client/node_modules/minimatch/LICENSE +0 -15
  110. package/client/node_modules/minimatch/README.md +0 -259
  111. package/client/node_modules/minimatch/lib/path.js +0 -4
  112. package/client/node_modules/minimatch/minimatch.js +0 -944
  113. package/client/node_modules/minimatch/package.json +0 -35
  114. package/client/node_modules/semver/LICENSE +0 -15
  115. package/client/node_modules/semver/README.md +0 -664
  116. package/client/node_modules/semver/bin/semver.js +0 -191
  117. package/client/node_modules/semver/classes/comparator.js +0 -143
  118. package/client/node_modules/semver/classes/index.js +0 -7
  119. package/client/node_modules/semver/classes/range.js +0 -557
  120. package/client/node_modules/semver/classes/semver.js +0 -333
  121. package/client/node_modules/semver/functions/clean.js +0 -8
  122. package/client/node_modules/semver/functions/cmp.js +0 -54
  123. package/client/node_modules/semver/functions/coerce.js +0 -62
  124. package/client/node_modules/semver/functions/compare-build.js +0 -9
  125. package/client/node_modules/semver/functions/compare-loose.js +0 -5
  126. package/client/node_modules/semver/functions/compare.js +0 -7
  127. package/client/node_modules/semver/functions/diff.js +0 -60
  128. package/client/node_modules/semver/functions/eq.js +0 -5
  129. package/client/node_modules/semver/functions/gt.js +0 -5
  130. package/client/node_modules/semver/functions/gte.js +0 -5
  131. package/client/node_modules/semver/functions/inc.js +0 -21
  132. package/client/node_modules/semver/functions/lt.js +0 -5
  133. package/client/node_modules/semver/functions/lte.js +0 -5
  134. package/client/node_modules/semver/functions/major.js +0 -5
  135. package/client/node_modules/semver/functions/minor.js +0 -5
  136. package/client/node_modules/semver/functions/neq.js +0 -5
  137. package/client/node_modules/semver/functions/parse.js +0 -18
  138. package/client/node_modules/semver/functions/patch.js +0 -5
  139. package/client/node_modules/semver/functions/prerelease.js +0 -8
  140. package/client/node_modules/semver/functions/rcompare.js +0 -5
  141. package/client/node_modules/semver/functions/rsort.js +0 -5
  142. package/client/node_modules/semver/functions/satisfies.js +0 -12
  143. package/client/node_modules/semver/functions/sort.js +0 -5
  144. package/client/node_modules/semver/functions/valid.js +0 -8
  145. package/client/node_modules/semver/index.js +0 -91
  146. package/client/node_modules/semver/internal/constants.js +0 -37
  147. package/client/node_modules/semver/internal/debug.js +0 -11
  148. package/client/node_modules/semver/internal/identifiers.js +0 -29
  149. package/client/node_modules/semver/internal/lrucache.js +0 -42
  150. package/client/node_modules/semver/internal/parse-options.js +0 -17
  151. package/client/node_modules/semver/internal/re.js +0 -223
  152. package/client/node_modules/semver/package.json +0 -78
  153. package/client/node_modules/semver/preload.js +0 -4
  154. package/client/node_modules/semver/range.bnf +0 -16
  155. package/client/node_modules/semver/ranges/gtr.js +0 -6
  156. package/client/node_modules/semver/ranges/intersects.js +0 -9
  157. package/client/node_modules/semver/ranges/ltr.js +0 -6
  158. package/client/node_modules/semver/ranges/max-satisfying.js +0 -27
  159. package/client/node_modules/semver/ranges/min-satisfying.js +0 -26
  160. package/client/node_modules/semver/ranges/min-version.js +0 -63
  161. package/client/node_modules/semver/ranges/outside.js +0 -82
  162. package/client/node_modules/semver/ranges/simplify.js +0 -49
  163. package/client/node_modules/semver/ranges/subset.js +0 -249
  164. package/client/node_modules/semver/ranges/to-comparators.js +0 -10
  165. package/client/node_modules/semver/ranges/valid.js +0 -13
  166. package/client/node_modules/undici-types/README.md +0 -6
  167. package/client/node_modules/undici-types/agent.d.ts +0 -31
  168. package/client/node_modules/undici-types/api.d.ts +0 -43
  169. package/client/node_modules/undici-types/balanced-pool.d.ts +0 -18
  170. package/client/node_modules/undici-types/cache.d.ts +0 -36
  171. package/client/node_modules/undici-types/client.d.ts +0 -97
  172. package/client/node_modules/undici-types/connector.d.ts +0 -34
  173. package/client/node_modules/undici-types/content-type.d.ts +0 -21
  174. package/client/node_modules/undici-types/cookies.d.ts +0 -28
  175. package/client/node_modules/undici-types/diagnostics-channel.d.ts +0 -67
  176. package/client/node_modules/undici-types/dispatcher.d.ts +0 -241
  177. package/client/node_modules/undici-types/errors.d.ts +0 -128
  178. package/client/node_modules/undici-types/fetch.d.ts +0 -209
  179. package/client/node_modules/undici-types/file.d.ts +0 -39
  180. package/client/node_modules/undici-types/filereader.d.ts +0 -54
  181. package/client/node_modules/undici-types/formdata.d.ts +0 -108
  182. package/client/node_modules/undici-types/global-dispatcher.d.ts +0 -9
  183. package/client/node_modules/undici-types/global-origin.d.ts +0 -7
  184. package/client/node_modules/undici-types/handlers.d.ts +0 -9
  185. package/client/node_modules/undici-types/header.d.ts +0 -4
  186. package/client/node_modules/undici-types/index.d.ts +0 -63
  187. package/client/node_modules/undici-types/interceptors.d.ts +0 -5
  188. package/client/node_modules/undici-types/mock-agent.d.ts +0 -50
  189. package/client/node_modules/undici-types/mock-client.d.ts +0 -25
  190. package/client/node_modules/undici-types/mock-errors.d.ts +0 -12
  191. package/client/node_modules/undici-types/mock-interceptor.d.ts +0 -93
  192. package/client/node_modules/undici-types/mock-pool.d.ts +0 -25
  193. package/client/node_modules/undici-types/package.json +0 -55
  194. package/client/node_modules/undici-types/patch.d.ts +0 -71
  195. package/client/node_modules/undici-types/pool-stats.d.ts +0 -19
  196. package/client/node_modules/undici-types/pool.d.ts +0 -28
  197. package/client/node_modules/undici-types/proxy-agent.d.ts +0 -30
  198. package/client/node_modules/undici-types/readable.d.ts +0 -61
  199. package/client/node_modules/undici-types/webidl.d.ts +0 -220
  200. package/client/node_modules/undici-types/websocket.d.ts +0 -131
  201. package/client/node_modules/vscode-jsonrpc/License.txt +0 -11
  202. package/client/node_modules/vscode-jsonrpc/README.md +0 -69
  203. package/client/node_modules/vscode-jsonrpc/browser.d.ts +0 -6
  204. package/client/node_modules/vscode-jsonrpc/browser.js +0 -7
  205. package/client/node_modules/vscode-jsonrpc/lib/browser/main.d.ts +0 -17
  206. package/client/node_modules/vscode-jsonrpc/lib/browser/main.js +0 -76
  207. package/client/node_modules/vscode-jsonrpc/lib/browser/ril.d.ts +0 -12
  208. package/client/node_modules/vscode-jsonrpc/lib/browser/ril.js +0 -156
  209. package/client/node_modules/vscode-jsonrpc/lib/common/api.d.ts +0 -14
  210. package/client/node_modules/vscode-jsonrpc/lib/common/api.js +0 -81
  211. package/client/node_modules/vscode-jsonrpc/lib/common/cancellation.d.ts +0 -32
  212. package/client/node_modules/vscode-jsonrpc/lib/common/cancellation.js +0 -96
  213. package/client/node_modules/vscode-jsonrpc/lib/common/connection.d.ts +0 -358
  214. package/client/node_modules/vscode-jsonrpc/lib/common/connection.js +0 -1212
  215. package/client/node_modules/vscode-jsonrpc/lib/common/disposable.d.ts +0 -9
  216. package/client/node_modules/vscode-jsonrpc/lib/common/disposable.js +0 -16
  217. package/client/node_modules/vscode-jsonrpc/lib/common/encoding.d.ts +0 -52
  218. package/client/node_modules/vscode-jsonrpc/lib/common/encoding.js +0 -70
  219. package/client/node_modules/vscode-jsonrpc/lib/common/events.d.ts +0 -39
  220. package/client/node_modules/vscode-jsonrpc/lib/common/events.js +0 -128
  221. package/client/node_modules/vscode-jsonrpc/lib/common/is.d.ts +0 -7
  222. package/client/node_modules/vscode-jsonrpc/lib/common/is.js +0 -35
  223. package/client/node_modules/vscode-jsonrpc/lib/common/linkedMap.d.ts +0 -53
  224. package/client/node_modules/vscode-jsonrpc/lib/common/linkedMap.js +0 -398
  225. package/client/node_modules/vscode-jsonrpc/lib/common/messageBuffer.d.ts +0 -18
  226. package/client/node_modules/vscode-jsonrpc/lib/common/messageBuffer.js +0 -152
  227. package/client/node_modules/vscode-jsonrpc/lib/common/messageReader.d.ts +0 -77
  228. package/client/node_modules/vscode-jsonrpc/lib/common/messageReader.js +0 -197
  229. package/client/node_modules/vscode-jsonrpc/lib/common/messageWriter.d.ts +0 -60
  230. package/client/node_modules/vscode-jsonrpc/lib/common/messageWriter.js +0 -115
  231. package/client/node_modules/vscode-jsonrpc/lib/common/messages.d.ts +0 -369
  232. package/client/node_modules/vscode-jsonrpc/lib/common/messages.js +0 -306
  233. package/client/node_modules/vscode-jsonrpc/lib/common/ral.d.ts +0 -74
  234. package/client/node_modules/vscode-jsonrpc/lib/common/ral.js +0 -23
  235. package/client/node_modules/vscode-jsonrpc/lib/common/semaphore.d.ts +0 -10
  236. package/client/node_modules/vscode-jsonrpc/lib/common/semaphore.js +0 -68
  237. package/client/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.d.ts +0 -15
  238. package/client/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.js +0 -76
  239. package/client/node_modules/vscode-jsonrpc/lib/node/main.d.ts +0 -63
  240. package/client/node_modules/vscode-jsonrpc/lib/node/main.js +0 -257
  241. package/client/node_modules/vscode-jsonrpc/lib/node/ril.d.ts +0 -13
  242. package/client/node_modules/vscode-jsonrpc/lib/node/ril.js +0 -161
  243. package/client/node_modules/vscode-jsonrpc/node.cmd +0 -5
  244. package/client/node_modules/vscode-jsonrpc/node.d.ts +0 -6
  245. package/client/node_modules/vscode-jsonrpc/node.js +0 -7
  246. package/client/node_modules/vscode-jsonrpc/package.json +0 -45
  247. package/client/node_modules/vscode-jsonrpc/thirdpartynotices.txt +0 -16
  248. package/client/node_modules/vscode-jsonrpc/typings/thenable.d.ts +0 -5
  249. package/client/node_modules/vscode-languageclient/License.txt +0 -11
  250. package/client/node_modules/vscode-languageclient/README.md +0 -17
  251. package/client/node_modules/vscode-languageclient/browser.d.ts +0 -6
  252. package/client/node_modules/vscode-languageclient/browser.js +0 -7
  253. package/client/node_modules/vscode-languageclient/lib/browser/main.d.ts +0 -8
  254. package/client/node_modules/vscode-languageclient/lib/browser/main.js +0 -37
  255. package/client/node_modules/vscode-languageclient/lib/common/api.d.ts +0 -36
  256. package/client/node_modules/vscode-languageclient/lib/common/api.js +0 -27
  257. package/client/node_modules/vscode-languageclient/lib/common/callHierarchy.d.ts +0 -37
  258. package/client/node_modules/vscode-languageclient/lib/common/callHierarchy.js +0 -97
  259. package/client/node_modules/vscode-languageclient/lib/common/client.d.ts +0 -476
  260. package/client/node_modules/vscode-languageclient/lib/common/client.js +0 -1600
  261. package/client/node_modules/vscode-languageclient/lib/common/codeAction.d.ts +0 -19
  262. package/client/node_modules/vscode-languageclient/lib/common/codeAction.js +0 -99
  263. package/client/node_modules/vscode-languageclient/lib/common/codeConverter.d.ts +0 -78
  264. package/client/node_modules/vscode-languageclient/lib/common/codeConverter.js +0 -876
  265. package/client/node_modules/vscode-languageclient/lib/common/codeLens.d.ts +0 -23
  266. package/client/node_modules/vscode-languageclient/lib/common/codeLens.js +0 -78
  267. package/client/node_modules/vscode-languageclient/lib/common/colorProvider.d.ts +0 -25
  268. package/client/node_modules/vscode-languageclient/lib/common/colorProvider.js +0 -74
  269. package/client/node_modules/vscode-languageclient/lib/common/completion.d.ts +0 -20
  270. package/client/node_modules/vscode-languageclient/lib/common/completion.js +0 -126
  271. package/client/node_modules/vscode-languageclient/lib/common/configuration.d.ts +0 -69
  272. package/client/node_modules/vscode-languageclient/lib/common/configuration.js +0 -209
  273. package/client/node_modules/vscode-languageclient/lib/common/declaration.d.ts +0 -16
  274. package/client/node_modules/vscode-languageclient/lib/common/declaration.js +0 -54
  275. package/client/node_modules/vscode-languageclient/lib/common/definition.d.ts +0 -16
  276. package/client/node_modules/vscode-languageclient/lib/common/definition.js +0 -55
  277. package/client/node_modules/vscode-languageclient/lib/common/diagnostic.d.ts +0 -122
  278. package/client/node_modules/vscode-languageclient/lib/common/diagnostic.js +0 -814
  279. package/client/node_modules/vscode-languageclient/lib/common/documentHighlight.d.ts +0 -15
  280. package/client/node_modules/vscode-languageclient/lib/common/documentHighlight.js +0 -50
  281. package/client/node_modules/vscode-languageclient/lib/common/documentLink.d.ts +0 -19
  282. package/client/node_modules/vscode-languageclient/lib/common/documentLink.js +0 -71
  283. package/client/node_modules/vscode-languageclient/lib/common/documentSymbol.d.ts +0 -17
  284. package/client/node_modules/vscode-languageclient/lib/common/documentSymbol.js +0 -104
  285. package/client/node_modules/vscode-languageclient/lib/common/executeCommand.d.ts +0 -21
  286. package/client/node_modules/vscode-languageclient/lib/common/executeCommand.js +0 -72
  287. package/client/node_modules/vscode-languageclient/lib/common/features.d.ts +0 -418
  288. package/client/node_modules/vscode-languageclient/lib/common/features.js +0 -291
  289. package/client/node_modules/vscode-languageclient/lib/common/fileOperations.d.ts +0 -116
  290. package/client/node_modules/vscode-languageclient/lib/common/fileOperations.js +0 -333
  291. package/client/node_modules/vscode-languageclient/lib/common/fileSystemWatcher.d.ts +0 -18
  292. package/client/node_modules/vscode-languageclient/lib/common/fileSystemWatcher.js +0 -95
  293. package/client/node_modules/vscode-languageclient/lib/common/foldingRange.d.ts +0 -19
  294. package/client/node_modules/vscode-languageclient/lib/common/foldingRange.js +0 -65
  295. package/client/node_modules/vscode-languageclient/lib/common/formatting.d.ts +0 -39
  296. package/client/node_modules/vscode-languageclient/lib/common/formatting.js +0 -182
  297. package/client/node_modules/vscode-languageclient/lib/common/hover.d.ts +0 -16
  298. package/client/node_modules/vscode-languageclient/lib/common/hover.js +0 -58
  299. package/client/node_modules/vscode-languageclient/lib/common/implementation.d.ts +0 -16
  300. package/client/node_modules/vscode-languageclient/lib/common/implementation.js +0 -54
  301. package/client/node_modules/vscode-languageclient/lib/common/inlayHint.d.ts +0 -20
  302. package/client/node_modules/vscode-languageclient/lib/common/inlayHint.js +0 -92
  303. package/client/node_modules/vscode-languageclient/lib/common/inlineCompletion.d.ts +0 -18
  304. package/client/node_modules/vscode-languageclient/lib/common/inlineCompletion.js +0 -54
  305. package/client/node_modules/vscode-languageclient/lib/common/inlineValue.d.ts +0 -18
  306. package/client/node_modules/vscode-languageclient/lib/common/inlineValue.js +0 -65
  307. package/client/node_modules/vscode-languageclient/lib/common/linkedEditingRange.d.ts +0 -21
  308. package/client/node_modules/vscode-languageclient/lib/common/linkedEditingRange.js +0 -53
  309. package/client/node_modules/vscode-languageclient/lib/common/notebook.d.ts +0 -96
  310. package/client/node_modules/vscode-languageclient/lib/common/notebook.js +0 -851
  311. package/client/node_modules/vscode-languageclient/lib/common/progress.d.ts +0 -11
  312. package/client/node_modules/vscode-languageclient/lib/common/progress.js +0 -44
  313. package/client/node_modules/vscode-languageclient/lib/common/progressPart.d.ts +0 -24
  314. package/client/node_modules/vscode-languageclient/lib/common/progressPart.js +0 -96
  315. package/client/node_modules/vscode-languageclient/lib/common/protocolCallHierarchyItem.d.ts +0 -6
  316. package/client/node_modules/vscode-languageclient/lib/common/protocolCallHierarchyItem.js +0 -16
  317. package/client/node_modules/vscode-languageclient/lib/common/protocolCodeAction.d.ts +0 -6
  318. package/client/node_modules/vscode-languageclient/lib/common/protocolCodeAction.js +0 -14
  319. package/client/node_modules/vscode-languageclient/lib/common/protocolCodeLens.d.ts +0 -5
  320. package/client/node_modules/vscode-languageclient/lib/common/protocolCodeLens.js +0 -13
  321. package/client/node_modules/vscode-languageclient/lib/common/protocolCompletionItem.d.ts +0 -11
  322. package/client/node_modules/vscode-languageclient/lib/common/protocolCompletionItem.js +0 -13
  323. package/client/node_modules/vscode-languageclient/lib/common/protocolConverter.d.ts +0 -167
  324. package/client/node_modules/vscode-languageclient/lib/common/protocolConverter.js +0 -1134
  325. package/client/node_modules/vscode-languageclient/lib/common/protocolDiagnostic.d.ts +0 -18
  326. package/client/node_modules/vscode-languageclient/lib/common/protocolDiagnostic.js +0 -25
  327. package/client/node_modules/vscode-languageclient/lib/common/protocolDocumentLink.d.ts +0 -5
  328. package/client/node_modules/vscode-languageclient/lib/common/protocolDocumentLink.js +0 -13
  329. package/client/node_modules/vscode-languageclient/lib/common/protocolInlayHint.d.ts +0 -5
  330. package/client/node_modules/vscode-languageclient/lib/common/protocolInlayHint.js +0 -13
  331. package/client/node_modules/vscode-languageclient/lib/common/protocolTypeHierarchyItem.d.ts +0 -6
  332. package/client/node_modules/vscode-languageclient/lib/common/protocolTypeHierarchyItem.js +0 -16
  333. package/client/node_modules/vscode-languageclient/lib/common/protocolWorkspaceSymbol.d.ts +0 -7
  334. package/client/node_modules/vscode-languageclient/lib/common/protocolWorkspaceSymbol.js +0 -18
  335. package/client/node_modules/vscode-languageclient/lib/common/reference.d.ts +0 -20
  336. package/client/node_modules/vscode-languageclient/lib/common/reference.js +0 -53
  337. package/client/node_modules/vscode-languageclient/lib/common/rename.d.ts +0 -27
  338. package/client/node_modules/vscode-languageclient/lib/common/rename.js +0 -113
  339. package/client/node_modules/vscode-languageclient/lib/common/selectionRange.d.ts +0 -16
  340. package/client/node_modules/vscode-languageclient/lib/common/selectionRange.js +0 -57
  341. package/client/node_modules/vscode-languageclient/lib/common/semanticTokens.d.ts +0 -33
  342. package/client/node_modules/vscode-languageclient/lib/common/semanticTokens.js +0 -179
  343. package/client/node_modules/vscode-languageclient/lib/common/signatureHelp.d.ts +0 -16
  344. package/client/node_modules/vscode-languageclient/lib/common/signatureHelp.js +0 -71
  345. package/client/node_modules/vscode-languageclient/lib/common/textSynchronization.d.ts +0 -101
  346. package/client/node_modules/vscode-languageclient/lib/common/textSynchronization.js +0 -402
  347. package/client/node_modules/vscode-languageclient/lib/common/typeDefinition.d.ts +0 -16
  348. package/client/node_modules/vscode-languageclient/lib/common/typeDefinition.js +0 -55
  349. package/client/node_modules/vscode-languageclient/lib/common/typeHierarchy.d.ts +0 -31
  350. package/client/node_modules/vscode-languageclient/lib/common/typeHierarchy.js +0 -96
  351. package/client/node_modules/vscode-languageclient/lib/common/utils/async.d.ts +0 -41
  352. package/client/node_modules/vscode-languageclient/lib/common/utils/async.js +0 -276
  353. package/client/node_modules/vscode-languageclient/lib/common/utils/is.d.ts +0 -12
  354. package/client/node_modules/vscode-languageclient/lib/common/utils/is.js +0 -57
  355. package/client/node_modules/vscode-languageclient/lib/common/utils/uuid.d.ts +0 -22
  356. package/client/node_modules/vscode-languageclient/lib/common/utils/uuid.js +0 -97
  357. package/client/node_modules/vscode-languageclient/lib/common/workspaceFolder.d.ts +0 -30
  358. package/client/node_modules/vscode-languageclient/lib/common/workspaceFolder.js +0 -148
  359. package/client/node_modules/vscode-languageclient/lib/common/workspaceSymbol.d.ts +0 -19
  360. package/client/node_modules/vscode-languageclient/lib/common/workspaceSymbol.js +0 -79
  361. package/client/node_modules/vscode-languageclient/lib/node/main.d.ts +0 -100
  362. package/client/node_modules/vscode-languageclient/lib/node/main.js +0 -570
  363. package/client/node_modules/vscode-languageclient/lib/node/processes.d.ts +0 -6
  364. package/client/node_modules/vscode-languageclient/lib/node/processes.js +0 -47
  365. package/client/node_modules/vscode-languageclient/lib/node/terminateProcess.sh +0 -16
  366. package/client/node_modules/vscode-languageclient/node.cmd +0 -5
  367. package/client/node_modules/vscode-languageclient/node.d.ts +0 -6
  368. package/client/node_modules/vscode-languageclient/node.js +0 -7
  369. package/client/node_modules/vscode-languageclient/package.json +0 -50
  370. package/client/node_modules/vscode-languageserver-protocol/License.txt +0 -11
  371. package/client/node_modules/vscode-languageserver-protocol/README.md +0 -16
  372. package/client/node_modules/vscode-languageserver-protocol/browser.d.ts +0 -6
  373. package/client/node_modules/vscode-languageserver-protocol/browser.js +0 -7
  374. package/client/node_modules/vscode-languageserver-protocol/lib/browser/main.d.ts +0 -4
  375. package/client/node_modules/vscode-languageserver-protocol/lib/browser/main.js +0 -28
  376. package/client/node_modules/vscode-languageserver-protocol/lib/common/api.d.ts +0 -58
  377. package/client/node_modules/vscode-languageserver-protocol/lib/common/api.js +0 -77
  378. package/client/node_modules/vscode-languageserver-protocol/lib/common/connection.d.ts +0 -187
  379. package/client/node_modules/vscode-languageserver-protocol/lib/common/connection.js +0 -15
  380. package/client/node_modules/vscode-languageserver-protocol/lib/common/messages.d.ts +0 -51
  381. package/client/node_modules/vscode-languageserver-protocol/lib/common/messages.js +0 -44
  382. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.$.d.ts +0 -1
  383. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.$.js +0 -43
  384. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.d.ts +0 -86
  385. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.js +0 -42
  386. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.d.ts +0 -66
  387. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.js +0 -32
  388. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.d.ts +0 -35
  389. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.js +0 -24
  390. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.d.ts +0 -3252
  391. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.d.ts +0 -37
  392. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.js +0 -22
  393. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.d.ts +0 -341
  394. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.js +0 -74
  395. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.d.ts +0 -306
  396. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.js +0 -101
  397. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.d.ts +0 -109
  398. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.js +0 -30
  399. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.d.ts +0 -38
  400. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.js +0 -21
  401. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.d.ts +0 -110
  402. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.js +0 -43
  403. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.d.ts +0 -57
  404. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.js +0 -22
  405. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.d.ts +0 -86
  406. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.js +0 -30
  407. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.js +0 -943
  408. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.d.ts +0 -52
  409. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.js +0 -19
  410. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.d.ts +0 -106
  411. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.js +0 -68
  412. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.d.ts +0 -400
  413. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.js +0 -214
  414. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.d.ts +0 -107
  415. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.js +0 -37
  416. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.d.ts +0 -41
  417. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.js +0 -20
  418. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.d.ts +0 -223
  419. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.js +0 -57
  420. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.d.ts +0 -72
  421. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.js +0 -22
  422. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.d.ts +0 -38
  423. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.js +0 -21
  424. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.d.ts +0 -83
  425. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.js +0 -42
  426. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.d.ts +0 -74
  427. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.js +0 -27
  428. package/client/node_modules/vscode-languageserver-protocol/lib/common/utils/is.d.ts +0 -9
  429. package/client/node_modules/vscode-languageserver-protocol/lib/common/utils/is.js +0 -46
  430. package/client/node_modules/vscode-languageserver-protocol/lib/node/main.d.ts +0 -6
  431. package/client/node_modules/vscode-languageserver-protocol/lib/node/main.js +0 -28
  432. package/client/node_modules/vscode-languageserver-protocol/metaModel.schema.json +0 -783
  433. package/client/node_modules/vscode-languageserver-protocol/node.cmd +0 -5
  434. package/client/node_modules/vscode-languageserver-protocol/node.d.ts +0 -6
  435. package/client/node_modules/vscode-languageserver-protocol/node.js +0 -7
  436. package/client/node_modules/vscode-languageserver-protocol/package.json +0 -45
  437. package/client/node_modules/vscode-languageserver-protocol/thirdpartynotices.txt +0 -31
  438. package/client/node_modules/vscode-languageserver-types/License.txt +0 -11
  439. package/client/node_modules/vscode-languageserver-types/README.md +0 -17
  440. package/client/node_modules/vscode-languageserver-types/lib/esm/main.d.ts +0 -3139
  441. package/client/node_modules/vscode-languageserver-types/lib/esm/main.js +0 -2222
  442. package/client/node_modules/vscode-languageserver-types/lib/esm/package.json +0 -3
  443. package/client/node_modules/vscode-languageserver-types/lib/umd/main.d.ts +0 -3139
  444. package/client/node_modules/vscode-languageserver-types/lib/umd/main.js +0 -2272
  445. package/client/node_modules/vscode-languageserver-types/package.json +0 -38
  446. package/client/node_modules/vscode-languageserver-types/thirdpartynotices.txt +0 -16
  447. package/client/package-lock.json +0 -125
  448. package/client/package.json +0 -42
  449. package/client/src/extension.ts +0 -56
  450. package/client/tsconfig.json +0 -12
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const domTree_1 = require("./domTree");
4
+ const assert = require("assert");
5
+ console.log('Running DOM Tree tests...');
6
+ // Test 1: Basic HTML Parsing
7
+ {
8
+ const html = '<div class="parent"><span id="child">Text</span></div>';
9
+ const tree = new domTree_1.DOMTree(html);
10
+ const root = tree.getRoot();
11
+ assert.ok(root, 'Should have root element');
12
+ console.log('Test 1 passed: Basic HTML parsing');
13
+ }
14
+ // Test 2: querySelector - Find specific element
15
+ {
16
+ const html = '<div class="container"><span class="text">Hello</span></div>';
17
+ const tree = new domTree_1.DOMTree(html);
18
+ // Use querySelector to find the span
19
+ const matches = tree.querySelectorAll('span.text');
20
+ assert.strictEqual(matches.length, 1, 'Should find 1 match');
21
+ assert.strictEqual(matches[0].tagName.toLowerCase(), 'span', 'Should find span element');
22
+ console.log('Test 2 passed: querySelector to find element');
23
+ }
24
+ // Test 3: querySelector - Simple Selector
25
+ {
26
+ const html = '<div><span class="target">Test</span><span>Other</span></div>';
27
+ const tree = new domTree_1.DOMTree(html);
28
+ const matches = tree.querySelectorAll('.target');
29
+ assert.strictEqual(matches.length, 1, 'Should find 1 match');
30
+ assert.strictEqual(matches[0].tagName.toLowerCase(), 'span', 'Should be span element');
31
+ console.log('Test 3 passed: querySelector with class selector');
32
+ }
33
+ // Test 4: Descendant Combinator
34
+ {
35
+ const html = '<div><p><span class="inner">Text</span></p></div>';
36
+ const tree = new domTree_1.DOMTree(html);
37
+ // Descendant: div .inner (space means any descendant)
38
+ const divSpan = tree.querySelectorAll('div .inner');
39
+ assert.strictEqual(divSpan.length, 1, 'Should match div .inner');
40
+ // Descendant: p .inner
41
+ const pSpan = tree.querySelectorAll('p .inner');
42
+ assert.strictEqual(pSpan.length, 1, 'Should match p .inner');
43
+ console.log('Test 4 passed: Descendant combinator');
44
+ }
45
+ // Test 5: Child Combinator (>)
46
+ {
47
+ const html = '<div><p class="direct"></p><section><p class="nested"></p></section></div>';
48
+ const tree = new domTree_1.DOMTree(html);
49
+ // div > p should match only direct children
50
+ const directChildren = tree.querySelectorAll('div > p');
51
+ assert.strictEqual(directChildren.length, 1, 'Should find 1 direct child');
52
+ // div p (descendant) should match both
53
+ const allP = tree.querySelectorAll('div p');
54
+ assert.strictEqual(allP.length, 2, 'Should find 2 descendants');
55
+ console.log('Test 5 passed: Child combinator (>)');
56
+ }
57
+ // Test 6: Complex CSS Selectors
58
+ {
59
+ const html = `
60
+ <html>
61
+ <body>
62
+ <div class="container">
63
+ <span class="text">Test</span>
64
+ </div>
65
+ </body>
66
+ </html>`;
67
+ const tree = new domTree_1.DOMTree(html);
68
+ // Find the span using different selectors
69
+ assert.strictEqual(tree.querySelectorAll('span').length, 1, 'Should find span');
70
+ assert.strictEqual(tree.querySelectorAll('div > span').length, 1, 'div > span should match');
71
+ assert.strictEqual(tree.querySelectorAll('div span').length, 1, 'div span should match');
72
+ assert.strictEqual(tree.querySelectorAll('.container span').length, 1, '.container span should match');
73
+ assert.strictEqual(tree.querySelectorAll('.container > span').length, 1, '.container > span should match');
74
+ console.log('Test 6 passed: Complex CSS selectors with combinators');
75
+ }
76
+ console.log('All DOM Tree tests passed!');
77
+ //# sourceMappingURL=domTree.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domTree.test.js","sourceRoot":"","sources":["../src/domTree.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const cssVariableManager_1 = require("./cssVariableManager");
4
+ const vscode_languageserver_textdocument_1 = require("vscode-languageserver-textdocument");
5
+ const assert = require("assert");
6
+ const manager = new cssVariableManager_1.CssVariableManager();
7
+ function createDoc(uri, content, languageId = 'css') {
8
+ return vscode_languageserver_textdocument_1.TextDocument.create(uri, languageId, 1, content);
9
+ }
10
+ console.log('Running File Lifecycle tests...');
11
+ // Test 1: File open -> close -> reopen cycle
12
+ {
13
+ const uri = 'file:///lifecycle1.css';
14
+ const css = ':root { --lifecycle-var: green; }';
15
+ const doc = createDoc(uri, css);
16
+ // Step 1: File opened
17
+ manager.parseDocument(doc);
18
+ let vars = manager.getVariables('--lifecycle-var');
19
+ assert.strictEqual(vars.length, 1, 'Should find 1 variable after open');
20
+ assert.strictEqual(vars[0].value, 'green', 'Value should be green');
21
+ // Step 2: File closed (variables should be removed)
22
+ manager.removeFile(uri);
23
+ vars = manager.getVariables('--lifecycle-var');
24
+ assert.strictEqual(vars.length, 0, 'Should find 0 variables after close');
25
+ // Step 3: File reopened (variables should be parsed again)
26
+ manager.parseDocument(doc);
27
+ vars = manager.getVariables('--lifecycle-var');
28
+ assert.strictEqual(vars.length, 1, 'Should find 1 variable after reopen');
29
+ assert.strictEqual(vars[0].value, 'green', 'Value should still be green');
30
+ console.log('Test 1 passed: File open -> close -> reopen cycle');
31
+ }
32
+ // Test 2: No duplicate variables when file is in workspace and opened
33
+ {
34
+ const uri = 'file:///workspace.css';
35
+ const css = ':root { --workspace-var: purple; }';
36
+ // Step 1: File scanned from workspace
37
+ manager.parseContent(css, uri, 'css');
38
+ let vars = manager.getVariables('--workspace-var');
39
+ assert.strictEqual(vars.length, 1, 'Should find 1 variable after workspace scan');
40
+ // Step 2: Same file opened in editor (should not duplicate)
41
+ const doc = createDoc(uri, css);
42
+ manager.parseDocument(doc);
43
+ vars = manager.getVariables('--workspace-var');
44
+ assert.strictEqual(vars.length, 1, 'Should still find only 1 variable (no duplicates)');
45
+ console.log('Test 2 passed: No duplicates when workspace file is opened');
46
+ }
47
+ // Test 3: removeFile clears variables, usages, and DOM trees
48
+ {
49
+ const uri = 'file:///complete.html';
50
+ const html = `
51
+ <html>
52
+ <head>
53
+ <style>
54
+ :root {
55
+ --def-var: orange;
56
+ }
57
+ </style>
58
+ </head>
59
+ <body>
60
+ <div style="color: var(--usage-var);"></div>
61
+ </body>
62
+ </html>
63
+ `;
64
+ const doc = createDoc(uri, html, 'html');
65
+ manager.parseDocument(doc);
66
+ // Verify data exists
67
+ const defVars = manager.getVariables('--def-var');
68
+ const usages = manager.getVariableUsages('--usage-var');
69
+ const domTree = manager.getDOMTree(uri);
70
+ assert.strictEqual(defVars.length, 1, 'Should have 1 definition before removeFile');
71
+ assert.strictEqual(usages.length, 1, 'Should have 1 usage before removeFile');
72
+ assert.ok(domTree, 'Should have DOM tree before removeFile');
73
+ // Remove file
74
+ manager.removeFile(uri);
75
+ // Verify all data is cleared
76
+ const defVarsAfter = manager.getVariables('--def-var');
77
+ const usagesAfter = manager.getVariableUsages('--usage-var');
78
+ const domTreeAfter = manager.getDOMTree(uri);
79
+ assert.strictEqual(defVarsAfter.length, 0, 'Should have 0 definitions after removeFile');
80
+ assert.strictEqual(usagesAfter.length, 0, 'Should have 0 usages after removeFile');
81
+ assert.strictEqual(domTreeAfter, undefined, 'Should have no DOM tree after removeFile');
82
+ console.log('Test 3 passed: removeFile clears all data');
83
+ }
84
+ // Test 4: Multiple opens without close (simulating rapid file switching)
85
+ {
86
+ const uri = 'file:///rapid.css';
87
+ const css1 = ':root { --rapid-var: v1; }';
88
+ const css2 = ':root { --rapid-var: v2; }';
89
+ const css3 = ':root { --rapid-var: v3; }';
90
+ // Parse same file multiple times with different content
91
+ manager.parseDocument(createDoc(uri, css1));
92
+ let vars = manager.getVariables('--rapid-var');
93
+ assert.strictEqual(vars.length, 1, 'Should have 1 variable');
94
+ assert.strictEqual(vars[0].value, 'v1', 'Value should be v1');
95
+ manager.parseDocument(createDoc(uri, css2));
96
+ vars = manager.getVariables('--rapid-var');
97
+ assert.strictEqual(vars.length, 1, 'Should still have 1 variable (no duplicates)');
98
+ assert.strictEqual(vars[0].value, 'v2', 'Value should be updated to v2');
99
+ manager.parseDocument(createDoc(uri, css3));
100
+ vars = manager.getVariables('--rapid-var');
101
+ assert.strictEqual(vars.length, 1, 'Should still have 1 variable (no duplicates)');
102
+ assert.strictEqual(vars[0].value, 'v3', 'Value should be updated to v3');
103
+ console.log('Test 4 passed: Multiple parses without duplicates');
104
+ }
105
+ // Test 5: Close file that was never opened (edge case)
106
+ {
107
+ const uri = 'file:///never-opened.css';
108
+ // Try to remove a file that was never parsed
109
+ // This should not throw an error
110
+ try {
111
+ manager.removeFile(uri);
112
+ const vars = manager.getAllVariables();
113
+ // Just verify it doesn't crash
114
+ assert.ok(true, 'removeFile on non-existent file should not crash');
115
+ console.log('Test 5 passed: removeFile on non-existent file is safe');
116
+ }
117
+ catch (error) {
118
+ assert.fail('removeFile should not throw error for non-existent file');
119
+ }
120
+ }
121
+ // Test 6: File with multiple variable definitions and usages
122
+ {
123
+ const uri = 'file:///multi.css';
124
+ const css = `
125
+ :root {
126
+ --var1: red;
127
+ --var2: blue;
128
+ --var3: green;
129
+ }
130
+ .class {
131
+ color: var(--var1);
132
+ background: var(--var2);
133
+ border: var(--var3);
134
+ }
135
+ `;
136
+ const doc = createDoc(uri, css);
137
+ // Parse
138
+ manager.parseDocument(doc);
139
+ const var1Defs = manager.getVariables('--var1');
140
+ const var2Defs = manager.getVariables('--var2');
141
+ const var3Defs = manager.getVariables('--var3');
142
+ const var1Uses = manager.getVariableUsages('--var1');
143
+ const var2Uses = manager.getVariableUsages('--var2');
144
+ const var3Uses = manager.getVariableUsages('--var3');
145
+ assert.strictEqual(var1Defs.length, 1, 'Should find --var1 definition');
146
+ assert.strictEqual(var2Defs.length, 1, 'Should find --var2 definition');
147
+ assert.strictEqual(var3Defs.length, 1, 'Should find --var3 definition');
148
+ assert.strictEqual(var1Uses.length, 1, 'Should find --var1 usage');
149
+ assert.strictEqual(var2Uses.length, 1, 'Should find --var2 usage');
150
+ assert.strictEqual(var3Uses.length, 1, 'Should find --var3 usage');
151
+ // Close file
152
+ manager.removeFile(uri);
153
+ // All should be cleared
154
+ assert.strictEqual(manager.getVariables('--var1').length, 0, '--var1 should be cleared');
155
+ assert.strictEqual(manager.getVariables('--var2').length, 0, '--var2 should be cleared');
156
+ assert.strictEqual(manager.getVariables('--var3').length, 0, '--var3 should be cleared');
157
+ assert.strictEqual(manager.getVariableUsages('--var1').length, 0, '--var1 usage should be cleared');
158
+ assert.strictEqual(manager.getVariableUsages('--var2').length, 0, '--var2 usage should be cleared');
159
+ assert.strictEqual(manager.getVariableUsages('--var3').length, 0, '--var3 usage should be cleared');
160
+ console.log('Test 6 passed: Multiple variables and usages cleared correctly');
161
+ }
162
+ console.log('All File Lifecycle tests passed!');
163
+ //# sourceMappingURL=fileLifecycle.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileLifecycle.test.js","sourceRoot":"","sources":["../src/fileLifecycle.test.ts"],"names":[],"mappings":";;AAAA,6DAA0D;AAC1D,2FAAkE;AAClE,iCAAiC;AAEjC,MAAM,OAAO,GAAG,IAAI,uCAAkB,EAAE,CAAC;AAEzC,SAAS,SAAS,CAAC,GAAW,EAAE,OAAe,EAAE,aAAqB,KAAK;IAC1E,OAAO,iDAAY,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;AACzD,CAAC;AAED,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;AAE/C,6CAA6C;AAC7C,CAAC;IACA,MAAM,GAAG,GAAG,wBAAwB,CAAC;IACrC,MAAM,GAAG,GAAG,mCAAmC,CAAC;IAChD,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEhC,sBAAsB;IACtB,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;IACnD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,mCAAmC,CAAC,CAAC;IACxE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,uBAAuB,CAAC,CAAC;IAEpE,oDAAoD;IACpD,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACxB,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAC/C,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,qCAAqC,CAAC,CAAC;IAE1E,2DAA2D;IAC3D,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAC/C,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,qCAAqC,CAAC,CAAC;IAC1E,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,6BAA6B,CAAC,CAAC;IAE1E,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;AAClE,CAAC;AAED,sEAAsE;AACtE,CAAC;IACA,MAAM,GAAG,GAAG,uBAAuB,CAAC;IACpC,MAAM,GAAG,GAAG,oCAAoC,CAAC;IAEjD,sCAAsC;IACtC,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACtC,IAAI,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;IACnD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,6CAA6C,CAAC,CAAC;IAElF,4DAA4D;IAC5D,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAChC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAC/C,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,mDAAmD,CAAC,CAAC;IAExF,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;AAC3E,CAAC;AAED,6DAA6D;AAC7D,CAAC;IACA,MAAM,GAAG,GAAG,uBAAuB,CAAC;IACpC,MAAM,IAAI,GAAG;;;;;;;;;;;;;CAab,CAAC;IACD,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAE3B,qBAAqB;IACrB,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAExC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,4CAA4C,CAAC,CAAC;IACpF,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,uCAAuC,CAAC,CAAC;IAC9E,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,wCAAwC,CAAC,CAAC;IAE7D,cAAc;IACd,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAExB,6BAA6B;IAC7B,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC7D,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAE7C,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,4CAA4C,CAAC,CAAC;IACzF,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,uCAAuC,CAAC,CAAC;IACnF,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,SAAS,EAAE,0CAA0C,CAAC,CAAC;IAExF,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;AAC1D,CAAC;AAED,yEAAyE;AACzE,CAAC;IACA,MAAM,GAAG,GAAG,mBAAmB,CAAC;IAChC,MAAM,IAAI,GAAG,4BAA4B,CAAC;IAC1C,MAAM,IAAI,GAAG,4BAA4B,CAAC;IAC1C,MAAM,IAAI,GAAG,4BAA4B,CAAC;IAE1C,wDAAwD;IACxD,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5C,IAAI,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAC/C,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,wBAAwB,CAAC,CAAC;IAC7D,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC;IAE9D,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5C,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAC3C,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,8CAA8C,CAAC,CAAC;IACnF,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,+BAA+B,CAAC,CAAC;IAEzE,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5C,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAC3C,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,8CAA8C,CAAC,CAAC;IACnF,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,+BAA+B,CAAC,CAAC;IAEzE,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;AAClE,CAAC;AAED,uDAAuD;AACvD,CAAC;IACA,MAAM,GAAG,GAAG,0BAA0B,CAAC;IAEvC,6CAA6C;IAC7C,iCAAiC;IACjC,IAAI,CAAC;QACJ,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACxB,MAAM,IAAI,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;QACvC,+BAA+B;QAC/B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,kDAAkD,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;IACvE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IACxE,CAAC;AACF,CAAC;AAED,6DAA6D;AAC7D,CAAC;IACA,MAAM,GAAG,GAAG,mBAAmB,CAAC;IAChC,MAAM,GAAG,GAAG;;;;;;;;;;;EAWX,CAAC;IACF,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEhC,QAAQ;IACR,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAE3B,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAErD,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,+BAA+B,CAAC,CAAC;IACxE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,+BAA+B,CAAC,CAAC;IACxE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,+BAA+B,CAAC,CAAC;IACxE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,0BAA0B,CAAC,CAAC;IACnE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,0BAA0B,CAAC,CAAC;IACnE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,0BAA0B,CAAC,CAAC;IAEnE,aAAa;IACb,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAExB,wBAAwB;IACxB,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,0BAA0B,CAAC,CAAC;IACzF,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,0BAA0B,CAAC,CAAC;IACzF,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,0BAA0B,CAAC,CAAC;IACzF,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,gCAAgC,CAAC,CAAC;IACpG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,gCAAgC,CAAC,CAAC;IACpG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,gCAAgC,CAAC,CAAC;IAEpG,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;AAC/E,CAAC;AAED,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const cssVariableManager_1 = require("../src/cssVariableManager");
4
+ const vscode_languageserver_textdocument_1 = require("vscode-languageserver-textdocument");
5
+ const assert = require("assert");
6
+ const manager = new cssVariableManager_1.CssVariableManager();
7
+ function createDoc(uri, content, languageId = 'css') {
8
+ return vscode_languageserver_textdocument_1.TextDocument.create(uri, languageId, 1, content);
9
+ }
10
+ console.log('Running File Types and Updates tests...');
11
+ // Test 1: SCSS Support
12
+ {
13
+ const content = `
14
+ $ignored-sass-var: 10px;
15
+ :root {
16
+ --scss-var: #f00;
17
+ }
18
+ .nested {
19
+ --nested-scss-var: #0f0;
20
+ color: var(--scss-var);
21
+ }
22
+ `;
23
+ const doc = createDoc('file:///test.scss', content, 'scss');
24
+ manager.parseDocument(doc);
25
+ const vars = manager.getAllVariables();
26
+ const scssVar = vars.find(v => v.name === '--scss-var');
27
+ const nestedVar = vars.find(v => v.name === '--nested-scss-var');
28
+ assert.ok(scssVar, 'Should find SCSS variable');
29
+ assert.strictEqual(scssVar?.value, '#f00');
30
+ assert.ok(nestedVar, 'Should find nested SCSS variable');
31
+ assert.strictEqual(nestedVar?.value, '#0f0');
32
+ // Verify usages
33
+ const usages = manager.getVariableUsages('--scss-var');
34
+ assert.strictEqual(usages.length, 1, 'Should find SCSS variable usage');
35
+ console.log('Test 1 passed: SCSS Support');
36
+ }
37
+ // Test 2: LESS Support
38
+ {
39
+ const content = `
40
+ @ignored-less-var: 10px;
41
+ :root {
42
+ --less-var: #00f;
43
+ }
44
+ `;
45
+ const doc = createDoc('file:///test.less', content, 'less');
46
+ manager.parseDocument(doc);
47
+ const lessVar = manager.getVariables('--less-var')[0];
48
+ assert.ok(lessVar, 'Should find LESS variable');
49
+ assert.strictEqual(lessVar.value, '#00f');
50
+ console.log('Test 2 passed: LESS Support');
51
+ }
52
+ // Test 3: Incremental Updates (removeFile)
53
+ {
54
+ const uri = 'file:///incremental.css';
55
+ const doc = createDoc(uri, ':root { --incremental: yes; }');
56
+ // 1. Add file
57
+ manager.parseDocument(doc);
58
+ assert.strictEqual(manager.getVariables('--incremental').length, 1, 'Variable should exist');
59
+ // 2. Remove file
60
+ manager.removeFile(uri);
61
+ assert.strictEqual(manager.getVariables('--incremental').length, 0, 'Variable should be removed after removeFile');
62
+ console.log('Test 3 passed: Incremental Updates (removeFile)');
63
+ }
64
+ // Test 4: Incremental Updates (Overwrite/Update)
65
+ {
66
+ const uri = 'file:///update.css';
67
+ // 1. Initial state
68
+ manager.parseDocument(createDoc(uri, ':root { --update-var: v1; }'));
69
+ assert.strictEqual(manager.getVariables('--update-var')[0].value, 'v1');
70
+ // 2. Update state (simulate file change)
71
+ manager.parseDocument(createDoc(uri, ':root { --update-var: v2; }'));
72
+ const vars = manager.getVariables('--update-var');
73
+ assert.strictEqual(vars.length, 1, 'Should still have 1 variable definition');
74
+ assert.strictEqual(vars[0].value, 'v2', 'Value should be updated');
75
+ console.log('Test 4 passed: Incremental Updates (Overwrite)');
76
+ }
77
+ console.log('All File Types and Updates tests passed!');
78
+ //# sourceMappingURL=fileTypesAndUpdates.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileTypesAndUpdates.test.js","sourceRoot":"","sources":["../src/fileTypesAndUpdates.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const cssVariableManager_1 = require("./cssVariableManager");
4
+ const vscode_languageserver_textdocument_1 = require("vscode-languageserver-textdocument");
5
+ const assert = require("assert");
6
+ const manager = new cssVariableManager_1.CssVariableManager();
7
+ function createDoc(uri, content, languageId = 'css') {
8
+ return vscode_languageserver_textdocument_1.TextDocument.create(uri, languageId, 1, content);
9
+ }
10
+ console.log('Running HTML Comments tests...');
11
+ // Test 1: HTML comments with style blocks should be ignored
12
+ {
13
+ const html = `
14
+ <!DOCTYPE html>
15
+ <html>
16
+ <head>
17
+ <!-- Commented out style block
18
+ <style>
19
+ :root {
20
+ --commented-color: blue;
21
+ --another-commented: green;
22
+ }
23
+ </style>
24
+ -->
25
+
26
+ <style>
27
+ :root {
28
+ --active-color: red;
29
+ }
30
+ </style>
31
+ </head>
32
+ </html>
33
+ `;
34
+ const doc = createDoc('file:///test1.html', html, 'html');
35
+ manager.parseDocument(doc);
36
+ const commentedVar = manager.getVariables('--commented-color');
37
+ const anotherCommented = manager.getVariables('--another-commented');
38
+ const activeVar = manager.getVariables('--active-color');
39
+ assert.strictEqual(commentedVar.length, 0, 'Should NOT find --commented-color');
40
+ assert.strictEqual(anotherCommented.length, 0, 'Should NOT find --another-commented');
41
+ assert.strictEqual(activeVar.length, 1, 'Should find --active-color');
42
+ assert.strictEqual(activeVar[0].value, 'red', 'Active color should be red');
43
+ console.log('Test 1 passed: HTML comments with style blocks are ignored');
44
+ }
45
+ // Test 2: HTML comments with inline styles should be ignored
46
+ {
47
+ const html = `
48
+ <!DOCTYPE html>
49
+ <html>
50
+ <body>
51
+ <!-- <div style="color: var(--commented-inline); background: var(--bg-commented);"></div> -->
52
+ <div style="color: var(--active-inline); background: var(--bg-active);"></div>
53
+ </body>
54
+ </html>
55
+ `;
56
+ const doc = createDoc('file:///test2.html', html, 'html');
57
+ manager.parseDocument(doc);
58
+ const commentedUsage = manager.getVariableUsages('--commented-inline');
59
+ const bgCommentedUsage = manager.getVariableUsages('--bg-commented');
60
+ const activeUsage = manager.getVariableUsages('--active-inline');
61
+ const bgActiveUsage = manager.getVariableUsages('--bg-active');
62
+ assert.strictEqual(commentedUsage.length, 0, 'Should NOT find --commented-inline usage');
63
+ assert.strictEqual(bgCommentedUsage.length, 0, 'Should NOT find --bg-commented usage');
64
+ assert.strictEqual(activeUsage.length, 1, 'Should find --active-inline usage');
65
+ assert.strictEqual(bgActiveUsage.length, 1, 'Should find --bg-active usage');
66
+ console.log('Test 2 passed: HTML comments with inline styles are ignored');
67
+ }
68
+ // Test 3: Multi-line HTML comments
69
+ {
70
+ const html = `
71
+ <!DOCTYPE html>
72
+ <html>
73
+ <head>
74
+ <!--
75
+ This is a multi-line comment
76
+ <style>
77
+ :root {
78
+ --multi-line-commented: yellow;
79
+ }
80
+ </style>
81
+ More comments here
82
+ -->
83
+
84
+ <style>
85
+ :root {
86
+ --multi-line-active: orange;
87
+ }
88
+ </style>
89
+ </head>
90
+ </html>
91
+ `;
92
+ const doc = createDoc('file:///test3.html', html, 'html');
93
+ manager.parseDocument(doc);
94
+ const commentedVar = manager.getVariables('--multi-line-commented');
95
+ const activeVar = manager.getVariables('--multi-line-active');
96
+ assert.strictEqual(commentedVar.length, 0, 'Should NOT find --multi-line-commented');
97
+ assert.strictEqual(activeVar.length, 1, 'Should find --multi-line-active');
98
+ console.log('Test 3 passed: Multi-line HTML comments are ignored');
99
+ }
100
+ // Test 4: CSS comments within style blocks still work (not HTML comments)
101
+ {
102
+ const html = `
103
+ <!DOCTYPE html>
104
+ <html>
105
+ <head>
106
+ <style>
107
+ /* CSS comment - this should still be ignored by csstree */
108
+ :root {
109
+ /* --css-commented: purple; */
110
+ --css-active: pink;
111
+ }
112
+ </style>
113
+ </head>
114
+ </html>
115
+ `;
116
+ const doc = createDoc('file:///test4.html', html, 'html');
117
+ manager.parseDocument(doc);
118
+ const cssCommented = manager.getVariables('--css-commented');
119
+ const cssActive = manager.getVariables('--css-active');
120
+ assert.strictEqual(cssCommented.length, 0, 'Should NOT find --css-commented (CSS comment)');
121
+ assert.strictEqual(cssActive.length, 1, 'Should find --css-active');
122
+ console.log('Test 4 passed: CSS comments within style blocks are still handled by csstree');
123
+ }
124
+ // Test 5: Nested HTML comments (edge case)
125
+ {
126
+ const html = `
127
+ <!DOCTYPE html>
128
+ <html>
129
+ <head>
130
+ <!-- Outer comment
131
+ <style>:root { --outer: red; }</style>
132
+ <!-- Inner comment (though technically invalid HTML)
133
+ <style>:root { --inner: blue; }</style>
134
+ -->
135
+ -->
136
+
137
+ <style>
138
+ :root {
139
+ --valid: green;
140
+ }
141
+ </style>
142
+ </head>
143
+ </html>
144
+ `;
145
+ const doc = createDoc('file:///test5.html', html, 'html');
146
+ manager.parseDocument(doc);
147
+ const outerVar = manager.getVariables('--outer');
148
+ const innerVar = manager.getVariables('--inner');
149
+ const validVar = manager.getVariables('--valid');
150
+ // Note: HTML spec says nested comments are invalid, but our regex should handle them
151
+ assert.strictEqual(outerVar.length, 0, 'Should NOT find --outer');
152
+ assert.strictEqual(innerVar.length, 0, 'Should NOT find --inner');
153
+ assert.strictEqual(validVar.length, 1, 'Should find --valid');
154
+ console.log('Test 5 passed: Nested HTML comments handled');
155
+ }
156
+ // Test 6: Position tracking should still work after comment removal
157
+ {
158
+ const html = `
159
+ <!DOCTYPE html>
160
+ <html>
161
+ <head>
162
+ <!-- This comment affects offsets -->
163
+ <style>
164
+ :root {
165
+ --positioned: value;
166
+ }
167
+ </style>
168
+ </head>
169
+ </html>
170
+ `;
171
+ const doc = createDoc('file:///test6.html', html, 'html');
172
+ manager.parseDocument(doc);
173
+ const positionedVar = manager.getVariables('--positioned');
174
+ assert.strictEqual(positionedVar.length, 1, 'Should find --positioned');
175
+ assert.ok(positionedVar[0].range, 'Should have range information');
176
+ assert.ok(positionedVar[0].range.start.line >= 0, 'Should have valid line number');
177
+ console.log('Test 6 passed: Position tracking works after comment removal');
178
+ }
179
+ console.log('All HTML Comments tests passed!');
180
+ //# sourceMappingURL=htmlComments.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"htmlComments.test.js","sourceRoot":"","sources":["../src/htmlComments.test.ts"],"names":[],"mappings":"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"}