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
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # CSS Variable Language Server
2
2
 
3
- A VS Code extension that provides Language Server Protocol (LSP) support for CSS variables (custom properties).
3
+ A Language Server Protocol (LSP) implementation for CSS variables (custom properties). This server can be used by any LSP-compatible editor.
4
4
 
5
5
  ## Features
6
6
 
@@ -19,17 +19,14 @@ A VS Code extension that provides Language Server Protocol (LSP) support for CSS
19
19
  ### Installation
20
20
 
21
21
  1. Clone the repository.
22
- 2. Install dependencies for both client and server:
22
+ 2. Install dependencies:
23
23
  ```bash
24
24
  npm install
25
25
  ```
26
26
 
27
- ### Running the Extension
27
+ ### Using the Language Server
28
28
 
29
- 1. Open the project in VS Code.
30
- 2. Press `F5` (or go to **Run and Debug** > **Launch Client**) to start a new VS Code window with the extension loaded.
31
- 3. In the new window (Extension Development Host), open a folder containing CSS or HTML files.
32
- 4. Define variables in one file (e.g., `:root { --my-color: red; }`) and try to use them in another (`color: var(--my-color)`).
29
+ This is a standalone LSP server. To use it, you'll need to integrate it with an LSP client (e.g., a VSCode extension). See the `../css-variable-vscode` project for a VSCode extension that uses this server.
33
30
 
34
31
  ### Running Tests
35
32
 
@@ -77,5 +74,4 @@ _Context: `div`_
77
74
 
78
75
  ## Project Structure
79
76
 
80
- - `client/`: VS Code extension code (Language Client).
81
- - `server/`: Node.js Language Server code (Analysis logic).
77
+ - `server/`: Node.js Language Server implementation (CSS variable analysis logic).
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "css-variable-lsp",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "A CSS Language Server for CSS Variables",
5
5
  "scripts": {
6
6
  "compile": "tsc -b",
7
7
  "watch": "tsc -b -w",
8
- "postinstall": "cd client && npm install && cd ../server && npm install",
8
+ "postinstall": "cd server && npm install",
9
9
  "test": "cd server && npm run test:all"
10
10
  },
11
11
  "devDependencies": {
@@ -0,0 +1,67 @@
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 Cascade and Inline tests...');
11
+ // Test 1: !important Tracking
12
+ {
13
+ const css = ':root { --color: red !important; } div { --color: blue; }';
14
+ const doc = createDoc('file:///test.css', css);
15
+ manager.parseDocument(doc);
16
+ const vars = manager.getVariables('--color');
17
+ assert.strictEqual(vars.length, 2, 'Should find 2 definitions');
18
+ const importantVar = vars.find(v => v.important);
19
+ const normalVar = vars.find(v => !v.important);
20
+ assert.ok(importantVar, 'Should have !important variable');
21
+ assert.strictEqual(importantVar?.value, 'red', '!important value should be red');
22
+ assert.ok(normalVar, 'Should have normal variable');
23
+ assert.strictEqual(normalVar?.value, 'blue', 'Normal value should be blue');
24
+ console.log('Test 1 passed: !important tracking');
25
+ }
26
+ // Test 2: Source Order Tracking
27
+ {
28
+ const css = ':root { --a: first; } :root { --a: second; }';
29
+ const doc = createDoc('file:///test.css', css);
30
+ manager.parseDocument(doc);
31
+ const vars = manager.getVariables('--a');
32
+ assert.strictEqual(vars.length, 2, 'Should find 2 definitions');
33
+ // The second one should have higher source position
34
+ assert.ok(vars[1].sourcePosition > vars[0].sourcePosition, 'Second definition should have higher position');
35
+ console.log('Test 2 passed: Source order tracking');
36
+ }
37
+ // Test 3: Inline Style Parsing
38
+ {
39
+ const html = '<div style="color: var(--primary); background: var(--bg);"></div>';
40
+ const doc = createDoc('file:///test.html', html, 'html');
41
+ manager.parseDocument(doc);
42
+ const primaryUsages = manager.getVariableUsages('--primary');
43
+ const bgUsages = manager.getVariableUsages('--bg');
44
+ assert.strictEqual(primaryUsages.length, 1, 'Should find 1 usage of --primary');
45
+ assert.strictEqual(bgUsages.length, 1, 'Should find 1 usage of --bg');
46
+ assert.strictEqual(primaryUsages[0].usageContext, 'inline-style', 'Usage should be marked as inline-style');
47
+ console.log('Test 3 passed: Inline style parsing');
48
+ }
49
+ // Test 4: Combined Cascade (important + specificity + source order)
50
+ {
51
+ const css = `
52
+ :root { --x: root; }
53
+ div { --x: div; }
54
+ .class { --x: class !important; }
55
+ #id { --x: id; }
56
+ `;
57
+ const doc = createDoc('file:///test.css', css);
58
+ manager.parseDocument(doc);
59
+ const vars = manager.getVariables('--x');
60
+ assert.strictEqual(vars.length, 4, 'Should find 4 definitions');
61
+ const importantVar = vars.find(v => v.important);
62
+ assert.ok(importantVar, 'Should have !important definition');
63
+ assert.strictEqual(importantVar?.selector, '.class', '!important should be on .class');
64
+ console.log('Test 4 passed: Combined cascade tracking');
65
+ }
66
+ console.log('All Cascade and Inline tests passed!');
67
+ //# sourceMappingURL=cascadeAndInline.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cascadeAndInline.test.js","sourceRoot":"","sources":["../src/cascadeAndInline.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,390 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CssVariableManager = void 0;
4
+ const node_1 = require("vscode-languageserver/node");
5
+ const vscode_languageserver_textdocument_1 = require("vscode-languageserver-textdocument");
6
+ const vscode_uri_1 = require("vscode-uri");
7
+ const glob_1 = require("glob");
8
+ const fs = require("fs");
9
+ const csstree = require("css-tree");
10
+ const domTree_1 = require("./domTree");
11
+ const node_html_parser_1 = require("node-html-parser");
12
+ class CssVariableManager {
13
+ constructor(logger) {
14
+ this.variables = new Map();
15
+ this.usages = new Map();
16
+ this.domTrees = new Map(); // URI -> DOM tree
17
+ const LOG_FILE = '/tmp/css.log';
18
+ this.logger = logger || {
19
+ log: (message) => {
20
+ console.log(message);
21
+ try {
22
+ fs.appendFileSync(LOG_FILE, `[INFO] ${new Date().toISOString()} ${message}\n`);
23
+ }
24
+ catch (e) {
25
+ // Ignore file write errors
26
+ }
27
+ },
28
+ error: (message) => {
29
+ console.error(message);
30
+ try {
31
+ fs.appendFileSync(LOG_FILE, `[ERROR] ${new Date().toISOString()} ${message}\n`);
32
+ }
33
+ catch (e) {
34
+ // Ignore file write errors
35
+ }
36
+ }
37
+ };
38
+ }
39
+ /**
40
+ * Scan all CSS and HTML files in the workspace
41
+ */
42
+ async scanWorkspace(workspaceFolders) {
43
+ for (const folder of workspaceFolders) {
44
+ const folderUri = vscode_uri_1.URI.parse(folder);
45
+ const folderPath = folderUri.fsPath;
46
+ // Find all CSS, SCSS, SASS, LESS and HTML files
47
+ const files = await (0, glob_1.glob)('**/*.{css,scss,sass,less,html}', {
48
+ cwd: folderPath,
49
+ ignore: ['**/node_modules/**', '**/dist/**', '**/out/**', '**/.git/**'],
50
+ absolute: true
51
+ });
52
+ this.logger.log(`[css-lsp] Scanned ${folder}: found ${files.length} files`);
53
+ // Parse each file
54
+ for (const filePath of files) {
55
+ try {
56
+ const content = fs.readFileSync(filePath, 'utf-8');
57
+ const fileUri = vscode_uri_1.URI.file(filePath).toString();
58
+ let languageId = 'css';
59
+ if (filePath.endsWith('.html')) {
60
+ languageId = 'html';
61
+ }
62
+ else if (filePath.endsWith('.scss')) {
63
+ languageId = 'scss';
64
+ }
65
+ else if (filePath.endsWith('.sass')) {
66
+ languageId = 'sass';
67
+ }
68
+ else if (filePath.endsWith('.less')) {
69
+ languageId = 'less';
70
+ }
71
+ this.parseContent(content, fileUri, languageId);
72
+ }
73
+ catch (error) {
74
+ this.logger.error(`[css-lsp] Error scanning file ${filePath}: ${error}`);
75
+ }
76
+ }
77
+ this.logger.log(`[css-lsp] Workspace scan for ${folder} complete.`);
78
+ }
79
+ }
80
+ parseDocument(document) {
81
+ this.parseContent(document.getText(), document.uri, document.languageId);
82
+ }
83
+ parseContent(text, uri, languageId) {
84
+ // Clear existing variables and usages for this document
85
+ this.removeFile(uri);
86
+ if (languageId === 'html') {
87
+ // Build DOM tree for HTML documents
88
+ try {
89
+ const domTree = new domTree_1.DOMTree(text);
90
+ this.domTrees.set(uri, domTree);
91
+ }
92
+ catch (error) {
93
+ this.logger.error(`Error parsing HTML for ${uri}: ${error}`);
94
+ }
95
+ // Use node-html-parser to extract style blocks and inline styles
96
+ try {
97
+ const root = (0, node_html_parser_1.parse)(text, {
98
+ lowerCaseTagName: true,
99
+ comment: false, // Automatically ignores comments
100
+ blockTextElements: {
101
+ script: true,
102
+ noscript: true,
103
+ style: true, // Keep style as block text so we can extract content
104
+ }
105
+ });
106
+ const document = vscode_languageserver_textdocument_1.TextDocument.create(uri, languageId, 1, text);
107
+ // Parse <style> blocks
108
+ const styleElements = root.querySelectorAll('style');
109
+ for (const styleEl of styleElements) {
110
+ const styleContent = styleEl.textContent;
111
+ if (styleContent && styleEl.range) {
112
+ // Calculate the offset where the CSS content starts
113
+ // styleEl.range gives us the full element from '<style>' to '</style>'
114
+ // We need to find where the content starts (after the opening tag)
115
+ const elementText = text.substring(styleEl.range[0], styleEl.range[1]);
116
+ const openingTagEnd = elementText.indexOf('>') + 1;
117
+ const styleStartOffset = styleEl.range[0] + openingTagEnd;
118
+ this.parseCssText(styleContent, uri, document, styleStartOffset);
119
+ }
120
+ }
121
+ // Parse inline style attributes
122
+ const elementsWithStyle = root.querySelectorAll('[style]');
123
+ for (const el of elementsWithStyle) {
124
+ const styleAttr = el.getAttribute('style');
125
+ if (styleAttr && el.range) {
126
+ // Find the position of the style attribute value in the original text
127
+ const elementText = text.substring(el.range[0], el.range[1]);
128
+ const styleAttrStart = elementText.indexOf('style');
129
+ if (styleAttrStart !== -1) {
130
+ // Find where the attribute value starts (after the opening quote)
131
+ const valueStart = elementText.indexOf(styleAttr, styleAttrStart);
132
+ if (valueStart !== -1) {
133
+ const styleStartOffset = el.range[0] + valueStart;
134
+ const attributeOffset = el.range[0] + styleAttrStart;
135
+ this.parseInlineStyle(styleAttr, uri, document, styleStartOffset, attributeOffset);
136
+ }
137
+ }
138
+ }
139
+ }
140
+ }
141
+ catch (error) {
142
+ this.logger.error(`Error parsing HTML content for ${uri}: ${error}`);
143
+ }
144
+ }
145
+ else {
146
+ // CSS, SCSS, SASS, LESS
147
+ const document = vscode_languageserver_textdocument_1.TextDocument.create(uri, languageId, 1, text);
148
+ this.parseCssText(text, uri, document, 0);
149
+ }
150
+ }
151
+ parseCssText(text, uri, document, offset) {
152
+ try {
153
+ const ast = csstree.parse(text, {
154
+ positions: true,
155
+ onParseError: () => { } // Ignore errors to be tolerant
156
+ });
157
+ const selectorStack = [];
158
+ csstree.walk(ast, {
159
+ enter: (node) => {
160
+ if (node.type === 'Rule') {
161
+ let selector = '';
162
+ if (node.prelude && node.prelude.type === 'Raw') {
163
+ // Clean up raw selector if possible, or just take it
164
+ selector = node.prelude.value;
165
+ }
166
+ else {
167
+ selector = csstree.generate(node.prelude);
168
+ }
169
+ selectorStack.push(selector);
170
+ }
171
+ if (node.type === 'Declaration' && node.property.startsWith('--')) {
172
+ const name = node.property;
173
+ const value = csstree.generate(node.value).trim();
174
+ const important = node.important === true || node.important === 'important';
175
+ const selector = selectorStack.length > 0 ? selectorStack[selectorStack.length - 1] : ':root';
176
+ if (node.loc) {
177
+ const startPos = document.positionAt(offset + node.loc.start.offset);
178
+ const endPos = document.positionAt(offset + node.loc.end.offset);
179
+ const variable = {
180
+ name,
181
+ value,
182
+ uri,
183
+ range: node_1.Range.create(startPos, endPos),
184
+ selector,
185
+ important,
186
+ sourcePosition: offset + node.loc.start.offset
187
+ };
188
+ if (!this.variables.has(name)) {
189
+ this.variables.set(name, []);
190
+ }
191
+ this.variables.get(name)?.push(variable);
192
+ }
193
+ }
194
+ if (node.type === 'Function' && node.name === 'var') {
195
+ const children = node.children;
196
+ if (children && children.head) {
197
+ const firstChild = children.head.data;
198
+ // Handle var(--name) or var(--name, fallback)
199
+ // In csstree, --name is an Identifier
200
+ if (firstChild.type === 'Identifier' && firstChild.name.startsWith('--')) {
201
+ const name = firstChild.name;
202
+ const usageContext = selectorStack.length > 0 ? selectorStack[selectorStack.length - 1] : '';
203
+ if (node.loc) {
204
+ const startPos = document.positionAt(offset + node.loc.start.offset);
205
+ const endPos = document.positionAt(offset + node.loc.end.offset);
206
+ const usage = {
207
+ name,
208
+ uri,
209
+ range: node_1.Range.create(startPos, endPos),
210
+ usageContext
211
+ };
212
+ if (!this.usages.has(name)) {
213
+ this.usages.set(name, []);
214
+ }
215
+ this.usages.get(name)?.push(usage);
216
+ }
217
+ }
218
+ }
219
+ }
220
+ },
221
+ leave: (node) => {
222
+ if (node.type === 'Rule') {
223
+ selectorStack.pop();
224
+ }
225
+ }
226
+ });
227
+ }
228
+ catch (e) {
229
+ this.logger.error(`Error parsing CSS in ${uri}: ${e}`);
230
+ }
231
+ }
232
+ /**
233
+ * Parse inline style attributes for variable usages.
234
+ * Inline styles don't have selectors, they apply directly to elements (highest specificity).
235
+ */
236
+ parseInlineStyle(text, uri, document, offset, attributeOffset) {
237
+ try {
238
+ const ast = csstree.parse(text, {
239
+ context: 'declarationList',
240
+ positions: true,
241
+ onParseError: () => { }
242
+ });
243
+ csstree.walk(ast, {
244
+ enter: (node) => {
245
+ if (node.type === 'Function' && node.name === 'var') {
246
+ const children = node.children;
247
+ if (children && children.head) {
248
+ const firstChild = children.head.data;
249
+ if (firstChild.type === 'Identifier' && firstChild.name.startsWith('--')) {
250
+ const name = firstChild.name;
251
+ if (node.loc) {
252
+ const startPos = document.positionAt(offset + node.loc.start.offset);
253
+ const endPos = document.positionAt(offset + node.loc.end.offset);
254
+ // Try to find the DOM node for this inline style
255
+ const domTree = this.domTrees.get(uri);
256
+ // Use the attributeOffset (start of 'style="...') to find the correct DOM node
257
+ const domNode = domTree?.findNodeAtPosition(attributeOffset);
258
+ const usage = {
259
+ name,
260
+ uri,
261
+ range: node_1.Range.create(startPos, endPos),
262
+ usageContext: 'inline-style',
263
+ domNode: domNode
264
+ };
265
+ if (!this.usages.has(name)) {
266
+ this.usages.set(name, []);
267
+ }
268
+ this.usages.get(name)?.push(usage);
269
+ }
270
+ }
271
+ }
272
+ }
273
+ }
274
+ });
275
+ }
276
+ catch (e) {
277
+ this.logger.error(`Error parsing inline style in ${uri}: ${e}`);
278
+ }
279
+ }
280
+ async updateFile(uri) {
281
+ try {
282
+ const filePath = vscode_uri_1.URI.parse(uri).fsPath;
283
+ if (!fs.existsSync(filePath)) {
284
+ this.logger.log(`[css-lsp] File ${uri} does not exist on disk, removing from manager.`);
285
+ this.removeFile(uri);
286
+ return;
287
+ }
288
+ const stat = fs.statSync(filePath);
289
+ if (!stat.isFile()) {
290
+ return;
291
+ }
292
+ const content = fs.readFileSync(filePath, 'utf-8');
293
+ let languageId = 'css';
294
+ if (filePath.endsWith('.html')) {
295
+ languageId = 'html';
296
+ }
297
+ else if (filePath.endsWith('.scss')) {
298
+ languageId = 'scss';
299
+ }
300
+ else if (filePath.endsWith('.sass')) {
301
+ languageId = 'sass';
302
+ }
303
+ else if (filePath.endsWith('.less')) {
304
+ languageId = 'less';
305
+ }
306
+ else if (!filePath.endsWith('.css')) {
307
+ // Skip unsupported file types
308
+ return;
309
+ }
310
+ this.parseContent(content, uri, languageId);
311
+ this.parseContent(content, uri, languageId);
312
+ this.logger.log(`[css-lsp] Updated file ${uri} from disk.`);
313
+ }
314
+ catch (error) {
315
+ this.logger.error(`[css-lsp] Error updating file ${uri}: ${error}`);
316
+ }
317
+ }
318
+ removeFile(uri) {
319
+ this.clearDocumentVariables(uri);
320
+ this.clearDocumentUsages(uri);
321
+ this.clearDocumentDOMTree(uri);
322
+ }
323
+ clearDocumentVariables(uri) {
324
+ for (const [name, vars] of this.variables.entries()) {
325
+ const filtered = vars.filter(v => v.uri !== uri);
326
+ if (filtered.length === 0) {
327
+ this.variables.delete(name);
328
+ }
329
+ else {
330
+ this.variables.set(name, filtered);
331
+ }
332
+ }
333
+ }
334
+ clearDocumentUsages(uri) {
335
+ for (const [name, usgs] of this.usages.entries()) {
336
+ const filtered = usgs.filter(u => u.uri !== uri);
337
+ if (filtered.length === 0) {
338
+ this.usages.delete(name);
339
+ }
340
+ else {
341
+ this.usages.set(name, filtered);
342
+ }
343
+ }
344
+ }
345
+ clearDocumentDOMTree(uri) {
346
+ this.domTrees.delete(uri);
347
+ }
348
+ getAllVariables() {
349
+ const allVars = [];
350
+ for (const vars of this.variables.values()) {
351
+ allVars.push(...vars);
352
+ }
353
+ return allVars;
354
+ }
355
+ getVariables(name) {
356
+ return this.variables.get(name) || [];
357
+ }
358
+ getVariableUsages(name) {
359
+ return this.usages.get(name) || [];
360
+ }
361
+ /**
362
+ * Get all references (definitions + usages) for a variable
363
+ */
364
+ getReferences(name) {
365
+ const definitions = this.getVariables(name);
366
+ const usages = this.getVariableUsages(name);
367
+ return [...definitions, ...usages];
368
+ }
369
+ /**
370
+ * Get all variable definitions across the workspace (for workspace symbols)
371
+ */
372
+ getAllDefinitions() {
373
+ return this.getAllVariables();
374
+ }
375
+ /**
376
+ * Get all variable definitions in a specific document (for document symbols)
377
+ */
378
+ getDocumentDefinitions(uri) {
379
+ const allVars = this.getAllVariables();
380
+ return allVars.filter(v => v.uri === uri);
381
+ }
382
+ /**
383
+ * Get the DOM tree for a document (if it's HTML)
384
+ */
385
+ getDOMTree(uri) {
386
+ return this.domTrees.get(uri);
387
+ }
388
+ }
389
+ exports.CssVariableManager = CssVariableManager;
390
+ //# sourceMappingURL=cssVariableManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cssVariableManager.js","sourceRoot":"","sources":["../src/cssVariableManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ /**
3
+ * DOM Tree wrapper using node-html-parser
4
+ * Provides a lightweight DOM tree for CSS selector matching
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.DOMTree = void 0;
8
+ const node_html_parser_1 = require("node-html-parser");
9
+ class DOMTree {
10
+ constructor(htmlText) {
11
+ this.htmlText = htmlText;
12
+ this.root = (0, node_html_parser_1.parse)(htmlText, {
13
+ lowerCaseTagName: true,
14
+ comment: false,
15
+ blockTextElements: {
16
+ script: true,
17
+ noscript: true,
18
+ style: false, // We want to parse style content
19
+ }
20
+ });
21
+ }
22
+ /**
23
+ * Find the DOM node at a specific character position in the HTML
24
+ */
25
+ findNodeAtPosition(position) {
26
+ return this.findNodeAtPositionRecursive(this.root, position);
27
+ }
28
+ findNodeAtPositionRecursive(node, position) {
29
+ if (!(node instanceof node_html_parser_1.HTMLElement)) {
30
+ return undefined;
31
+ }
32
+ // Check if position is within this node's range
33
+ const range = node.range;
34
+ if (!range || position < range[0] || position > range[1]) {
35
+ return undefined;
36
+ }
37
+ // Check children first (most specific match)
38
+ for (const child of node.childNodes) {
39
+ const found = this.findNodeAtPositionRecursive(child, position);
40
+ if (found) {
41
+ return found;
42
+ }
43
+ }
44
+ // Return this node if no child matched
45
+ // Manually extract classes from DOMTokenList using item()
46
+ const classes = [];
47
+ for (let i = 0; i < node.classList.length; i++) {
48
+ const className = node.classList[i]; // Type assertion needed due to library types
49
+ if (className)
50
+ classes.push(className);
51
+ }
52
+ return {
53
+ tagName: node.tagName,
54
+ id: node.id,
55
+ classes: classes,
56
+ element: node
57
+ };
58
+ }
59
+ /**
60
+ * Check if a CSS selector matches a given DOM node
61
+ */
62
+ matchesSelector(nodeInfo, selector) {
63
+ try {
64
+ // Use querySelectorAll on parent and check if element is in results
65
+ // This is a workaround since node-html-parser doesn't have matches()
66
+ const parent = nodeInfo.element.parentNode;
67
+ if (!parent || !(parent instanceof node_html_parser_1.HTMLElement)) {
68
+ // If no parent, try matching against root
69
+ const matches = this.root.querySelectorAll(selector);
70
+ return matches.includes(nodeInfo.element);
71
+ }
72
+ const matches = parent.querySelectorAll(selector);
73
+ return matches.includes(nodeInfo.element);
74
+ }
75
+ catch (e) {
76
+ // Invalid selector, return false
77
+ return false;
78
+ }
79
+ }
80
+ /**
81
+ * Find all nodes that match a CSS selector
82
+ */
83
+ querySelectorAll(selector) {
84
+ try {
85
+ const elements = this.root.querySelectorAll(selector);
86
+ return elements.map(el => {
87
+ // Manually extract classes from DOMTokenList
88
+ const classes = [];
89
+ for (let i = 0; i < el.classList.length; i++) {
90
+ const className = el.classList[i]; // Type assertion needed due to library types
91
+ if (className)
92
+ classes.push(className);
93
+ }
94
+ return {
95
+ tagName: el.tagName,
96
+ id: el.id,
97
+ classes: classes,
98
+ element: el
99
+ };
100
+ });
101
+ }
102
+ catch (e) {
103
+ // Invalid selector
104
+ return [];
105
+ }
106
+ }
107
+ /**
108
+ * Get the root element
109
+ */
110
+ getRoot() {
111
+ return this.root;
112
+ }
113
+ }
114
+ exports.DOMTree = DOMTree;
115
+ //# sourceMappingURL=domTree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domTree.js","sourceRoot":"","sources":["../src/domTree.ts"],"names":[],"mappings":"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"}