css-variable-lsp 1.0.0 → 1.0.2

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 (454) hide show
  1. package/README.md +5 -9
  2. package/package.json +5 -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/src/server.js +1 -0
  18. package/server/out/server/src/server.js.map +1 -1
  19. package/server/out/server.js +458 -0
  20. package/server/out/server.js.map +1 -0
  21. package/server/out/specificity.js +138 -0
  22. package/server/out/specificity.js.map +1 -0
  23. package/server/out/specificity.test.js +66 -0
  24. package/server/out/specificity.test.js.map +1 -0
  25. package/server/out/test.js +112 -0
  26. package/server/out/test.js.map +1 -0
  27. package/server/out/tsconfig.tsbuildinfo +1 -1
  28. package/server/src/server.ts +2 -0
  29. package/server/tsconfig.tsbuildinfo +1 -0
  30. package/client/node_modules/.package-lock.json +0 -110
  31. package/client/node_modules/@types/node/LICENSE +0 -21
  32. package/client/node_modules/@types/node/README.md +0 -15
  33. package/client/node_modules/@types/node/assert/strict.d.ts +0 -8
  34. package/client/node_modules/@types/node/assert.d.ts +0 -1005
  35. package/client/node_modules/@types/node/async_hooks.d.ts +0 -586
  36. package/client/node_modules/@types/node/buffer.buffer.d.ts +0 -457
  37. package/client/node_modules/@types/node/buffer.d.ts +0 -1901
  38. package/client/node_modules/@types/node/child_process.d.ts +0 -1453
  39. package/client/node_modules/@types/node/cluster.d.ts +0 -578
  40. package/client/node_modules/@types/node/compatibility/disposable.d.ts +0 -14
  41. package/client/node_modules/@types/node/compatibility/index.d.ts +0 -9
  42. package/client/node_modules/@types/node/compatibility/indexable.d.ts +0 -20
  43. package/client/node_modules/@types/node/compatibility/iterators.d.ts +0 -20
  44. package/client/node_modules/@types/node/console.d.ts +0 -452
  45. package/client/node_modules/@types/node/constants.d.ts +0 -21
  46. package/client/node_modules/@types/node/crypto.d.ts +0 -4504
  47. package/client/node_modules/@types/node/dgram.d.ts +0 -596
  48. package/client/node_modules/@types/node/diagnostics_channel.d.ts +0 -551
  49. package/client/node_modules/@types/node/dns/promises.d.ts +0 -477
  50. package/client/node_modules/@types/node/dns.d.ts +0 -860
  51. package/client/node_modules/@types/node/domain.d.ts +0 -170
  52. package/client/node_modules/@types/node/events.d.ts +0 -863
  53. package/client/node_modules/@types/node/fs/promises.d.ts +0 -1208
  54. package/client/node_modules/@types/node/fs.d.ts +0 -4332
  55. package/client/node_modules/@types/node/globals.d.ts +0 -170
  56. package/client/node_modules/@types/node/globals.typedarray.d.ts +0 -21
  57. package/client/node_modules/@types/node/http.d.ts +0 -1919
  58. package/client/node_modules/@types/node/http2.d.ts +0 -2580
  59. package/client/node_modules/@types/node/https.d.ts +0 -549
  60. package/client/node_modules/@types/node/index.d.ts +0 -92
  61. package/client/node_modules/@types/node/inspector.generated.d.ts +0 -2775
  62. package/client/node_modules/@types/node/module.d.ts +0 -503
  63. package/client/node_modules/@types/node/net.d.ts +0 -924
  64. package/client/node_modules/@types/node/os.d.ts +0 -480
  65. package/client/node_modules/@types/node/package.json +0 -145
  66. package/client/node_modules/@types/node/path.d.ts +0 -191
  67. package/client/node_modules/@types/node/perf_hooks.d.ts +0 -860
  68. package/client/node_modules/@types/node/process.d.ts +0 -1632
  69. package/client/node_modules/@types/node/punycode.d.ts +0 -117
  70. package/client/node_modules/@types/node/querystring.d.ts +0 -140
  71. package/client/node_modules/@types/node/readline/promises.d.ts +0 -154
  72. package/client/node_modules/@types/node/readline.d.ts +0 -715
  73. package/client/node_modules/@types/node/repl.d.ts +0 -430
  74. package/client/node_modules/@types/node/stream/consumers.d.ts +0 -38
  75. package/client/node_modules/@types/node/stream/promises.d.ts +0 -90
  76. package/client/node_modules/@types/node/stream/web.d.ts +0 -527
  77. package/client/node_modules/@types/node/stream.d.ts +0 -1680
  78. package/client/node_modules/@types/node/string_decoder.d.ts +0 -67
  79. package/client/node_modules/@types/node/test.d.ts +0 -1208
  80. package/client/node_modules/@types/node/timers/promises.d.ts +0 -108
  81. package/client/node_modules/@types/node/timers.d.ts +0 -286
  82. package/client/node_modules/@types/node/tls.d.ts +0 -1204
  83. package/client/node_modules/@types/node/trace_events.d.ts +0 -171
  84. package/client/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +0 -455
  85. package/client/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -19
  86. package/client/node_modules/@types/node/ts5.6/index.d.ts +0 -92
  87. package/client/node_modules/@types/node/tty.d.ts +0 -206
  88. package/client/node_modules/@types/node/url.d.ts +0 -957
  89. package/client/node_modules/@types/node/util.d.ts +0 -2083
  90. package/client/node_modules/@types/node/v8.d.ts +0 -753
  91. package/client/node_modules/@types/node/vm.d.ts +0 -704
  92. package/client/node_modules/@types/node/wasi.d.ts +0 -160
  93. package/client/node_modules/@types/node/web-globals/abortcontroller.d.ts +0 -34
  94. package/client/node_modules/@types/node/web-globals/domexception.d.ts +0 -68
  95. package/client/node_modules/@types/node/web-globals/events.d.ts +0 -81
  96. package/client/node_modules/@types/node/web-globals/fetch.d.ts +0 -38
  97. package/client/node_modules/@types/node/worker_threads.d.ts +0 -698
  98. package/client/node_modules/@types/node/zlib.d.ts +0 -517
  99. package/client/node_modules/@types/vscode/LICENSE +0 -21
  100. package/client/node_modules/@types/vscode/README.md +0 -15
  101. package/client/node_modules/@types/vscode/index.d.ts +0 -21145
  102. package/client/node_modules/@types/vscode/package.json +0 -26
  103. package/client/node_modules/balanced-match/.github/FUNDING.yml +0 -2
  104. package/client/node_modules/balanced-match/LICENSE.md +0 -21
  105. package/client/node_modules/balanced-match/README.md +0 -97
  106. package/client/node_modules/balanced-match/index.js +0 -62
  107. package/client/node_modules/balanced-match/package.json +0 -48
  108. package/client/node_modules/brace-expansion/.github/FUNDING.yml +0 -2
  109. package/client/node_modules/brace-expansion/LICENSE +0 -21
  110. package/client/node_modules/brace-expansion/README.md +0 -135
  111. package/client/node_modules/brace-expansion/index.js +0 -203
  112. package/client/node_modules/brace-expansion/package.json +0 -49
  113. package/client/node_modules/minimatch/LICENSE +0 -15
  114. package/client/node_modules/minimatch/README.md +0 -259
  115. package/client/node_modules/minimatch/lib/path.js +0 -4
  116. package/client/node_modules/minimatch/minimatch.js +0 -944
  117. package/client/node_modules/minimatch/package.json +0 -35
  118. package/client/node_modules/semver/LICENSE +0 -15
  119. package/client/node_modules/semver/README.md +0 -664
  120. package/client/node_modules/semver/bin/semver.js +0 -191
  121. package/client/node_modules/semver/classes/comparator.js +0 -143
  122. package/client/node_modules/semver/classes/index.js +0 -7
  123. package/client/node_modules/semver/classes/range.js +0 -557
  124. package/client/node_modules/semver/classes/semver.js +0 -333
  125. package/client/node_modules/semver/functions/clean.js +0 -8
  126. package/client/node_modules/semver/functions/cmp.js +0 -54
  127. package/client/node_modules/semver/functions/coerce.js +0 -62
  128. package/client/node_modules/semver/functions/compare-build.js +0 -9
  129. package/client/node_modules/semver/functions/compare-loose.js +0 -5
  130. package/client/node_modules/semver/functions/compare.js +0 -7
  131. package/client/node_modules/semver/functions/diff.js +0 -60
  132. package/client/node_modules/semver/functions/eq.js +0 -5
  133. package/client/node_modules/semver/functions/gt.js +0 -5
  134. package/client/node_modules/semver/functions/gte.js +0 -5
  135. package/client/node_modules/semver/functions/inc.js +0 -21
  136. package/client/node_modules/semver/functions/lt.js +0 -5
  137. package/client/node_modules/semver/functions/lte.js +0 -5
  138. package/client/node_modules/semver/functions/major.js +0 -5
  139. package/client/node_modules/semver/functions/minor.js +0 -5
  140. package/client/node_modules/semver/functions/neq.js +0 -5
  141. package/client/node_modules/semver/functions/parse.js +0 -18
  142. package/client/node_modules/semver/functions/patch.js +0 -5
  143. package/client/node_modules/semver/functions/prerelease.js +0 -8
  144. package/client/node_modules/semver/functions/rcompare.js +0 -5
  145. package/client/node_modules/semver/functions/rsort.js +0 -5
  146. package/client/node_modules/semver/functions/satisfies.js +0 -12
  147. package/client/node_modules/semver/functions/sort.js +0 -5
  148. package/client/node_modules/semver/functions/valid.js +0 -8
  149. package/client/node_modules/semver/index.js +0 -91
  150. package/client/node_modules/semver/internal/constants.js +0 -37
  151. package/client/node_modules/semver/internal/debug.js +0 -11
  152. package/client/node_modules/semver/internal/identifiers.js +0 -29
  153. package/client/node_modules/semver/internal/lrucache.js +0 -42
  154. package/client/node_modules/semver/internal/parse-options.js +0 -17
  155. package/client/node_modules/semver/internal/re.js +0 -223
  156. package/client/node_modules/semver/package.json +0 -78
  157. package/client/node_modules/semver/preload.js +0 -4
  158. package/client/node_modules/semver/range.bnf +0 -16
  159. package/client/node_modules/semver/ranges/gtr.js +0 -6
  160. package/client/node_modules/semver/ranges/intersects.js +0 -9
  161. package/client/node_modules/semver/ranges/ltr.js +0 -6
  162. package/client/node_modules/semver/ranges/max-satisfying.js +0 -27
  163. package/client/node_modules/semver/ranges/min-satisfying.js +0 -26
  164. package/client/node_modules/semver/ranges/min-version.js +0 -63
  165. package/client/node_modules/semver/ranges/outside.js +0 -82
  166. package/client/node_modules/semver/ranges/simplify.js +0 -49
  167. package/client/node_modules/semver/ranges/subset.js +0 -249
  168. package/client/node_modules/semver/ranges/to-comparators.js +0 -10
  169. package/client/node_modules/semver/ranges/valid.js +0 -13
  170. package/client/node_modules/undici-types/README.md +0 -6
  171. package/client/node_modules/undici-types/agent.d.ts +0 -31
  172. package/client/node_modules/undici-types/api.d.ts +0 -43
  173. package/client/node_modules/undici-types/balanced-pool.d.ts +0 -18
  174. package/client/node_modules/undici-types/cache.d.ts +0 -36
  175. package/client/node_modules/undici-types/client.d.ts +0 -97
  176. package/client/node_modules/undici-types/connector.d.ts +0 -34
  177. package/client/node_modules/undici-types/content-type.d.ts +0 -21
  178. package/client/node_modules/undici-types/cookies.d.ts +0 -28
  179. package/client/node_modules/undici-types/diagnostics-channel.d.ts +0 -67
  180. package/client/node_modules/undici-types/dispatcher.d.ts +0 -241
  181. package/client/node_modules/undici-types/errors.d.ts +0 -128
  182. package/client/node_modules/undici-types/fetch.d.ts +0 -209
  183. package/client/node_modules/undici-types/file.d.ts +0 -39
  184. package/client/node_modules/undici-types/filereader.d.ts +0 -54
  185. package/client/node_modules/undici-types/formdata.d.ts +0 -108
  186. package/client/node_modules/undici-types/global-dispatcher.d.ts +0 -9
  187. package/client/node_modules/undici-types/global-origin.d.ts +0 -7
  188. package/client/node_modules/undici-types/handlers.d.ts +0 -9
  189. package/client/node_modules/undici-types/header.d.ts +0 -4
  190. package/client/node_modules/undici-types/index.d.ts +0 -63
  191. package/client/node_modules/undici-types/interceptors.d.ts +0 -5
  192. package/client/node_modules/undici-types/mock-agent.d.ts +0 -50
  193. package/client/node_modules/undici-types/mock-client.d.ts +0 -25
  194. package/client/node_modules/undici-types/mock-errors.d.ts +0 -12
  195. package/client/node_modules/undici-types/mock-interceptor.d.ts +0 -93
  196. package/client/node_modules/undici-types/mock-pool.d.ts +0 -25
  197. package/client/node_modules/undici-types/package.json +0 -55
  198. package/client/node_modules/undici-types/patch.d.ts +0 -71
  199. package/client/node_modules/undici-types/pool-stats.d.ts +0 -19
  200. package/client/node_modules/undici-types/pool.d.ts +0 -28
  201. package/client/node_modules/undici-types/proxy-agent.d.ts +0 -30
  202. package/client/node_modules/undici-types/readable.d.ts +0 -61
  203. package/client/node_modules/undici-types/webidl.d.ts +0 -220
  204. package/client/node_modules/undici-types/websocket.d.ts +0 -131
  205. package/client/node_modules/vscode-jsonrpc/License.txt +0 -11
  206. package/client/node_modules/vscode-jsonrpc/README.md +0 -69
  207. package/client/node_modules/vscode-jsonrpc/browser.d.ts +0 -6
  208. package/client/node_modules/vscode-jsonrpc/browser.js +0 -7
  209. package/client/node_modules/vscode-jsonrpc/lib/browser/main.d.ts +0 -17
  210. package/client/node_modules/vscode-jsonrpc/lib/browser/main.js +0 -76
  211. package/client/node_modules/vscode-jsonrpc/lib/browser/ril.d.ts +0 -12
  212. package/client/node_modules/vscode-jsonrpc/lib/browser/ril.js +0 -156
  213. package/client/node_modules/vscode-jsonrpc/lib/common/api.d.ts +0 -14
  214. package/client/node_modules/vscode-jsonrpc/lib/common/api.js +0 -81
  215. package/client/node_modules/vscode-jsonrpc/lib/common/cancellation.d.ts +0 -32
  216. package/client/node_modules/vscode-jsonrpc/lib/common/cancellation.js +0 -96
  217. package/client/node_modules/vscode-jsonrpc/lib/common/connection.d.ts +0 -358
  218. package/client/node_modules/vscode-jsonrpc/lib/common/connection.js +0 -1212
  219. package/client/node_modules/vscode-jsonrpc/lib/common/disposable.d.ts +0 -9
  220. package/client/node_modules/vscode-jsonrpc/lib/common/disposable.js +0 -16
  221. package/client/node_modules/vscode-jsonrpc/lib/common/encoding.d.ts +0 -52
  222. package/client/node_modules/vscode-jsonrpc/lib/common/encoding.js +0 -70
  223. package/client/node_modules/vscode-jsonrpc/lib/common/events.d.ts +0 -39
  224. package/client/node_modules/vscode-jsonrpc/lib/common/events.js +0 -128
  225. package/client/node_modules/vscode-jsonrpc/lib/common/is.d.ts +0 -7
  226. package/client/node_modules/vscode-jsonrpc/lib/common/is.js +0 -35
  227. package/client/node_modules/vscode-jsonrpc/lib/common/linkedMap.d.ts +0 -53
  228. package/client/node_modules/vscode-jsonrpc/lib/common/linkedMap.js +0 -398
  229. package/client/node_modules/vscode-jsonrpc/lib/common/messageBuffer.d.ts +0 -18
  230. package/client/node_modules/vscode-jsonrpc/lib/common/messageBuffer.js +0 -152
  231. package/client/node_modules/vscode-jsonrpc/lib/common/messageReader.d.ts +0 -77
  232. package/client/node_modules/vscode-jsonrpc/lib/common/messageReader.js +0 -197
  233. package/client/node_modules/vscode-jsonrpc/lib/common/messageWriter.d.ts +0 -60
  234. package/client/node_modules/vscode-jsonrpc/lib/common/messageWriter.js +0 -115
  235. package/client/node_modules/vscode-jsonrpc/lib/common/messages.d.ts +0 -369
  236. package/client/node_modules/vscode-jsonrpc/lib/common/messages.js +0 -306
  237. package/client/node_modules/vscode-jsonrpc/lib/common/ral.d.ts +0 -74
  238. package/client/node_modules/vscode-jsonrpc/lib/common/ral.js +0 -23
  239. package/client/node_modules/vscode-jsonrpc/lib/common/semaphore.d.ts +0 -10
  240. package/client/node_modules/vscode-jsonrpc/lib/common/semaphore.js +0 -68
  241. package/client/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.d.ts +0 -15
  242. package/client/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.js +0 -76
  243. package/client/node_modules/vscode-jsonrpc/lib/node/main.d.ts +0 -63
  244. package/client/node_modules/vscode-jsonrpc/lib/node/main.js +0 -257
  245. package/client/node_modules/vscode-jsonrpc/lib/node/ril.d.ts +0 -13
  246. package/client/node_modules/vscode-jsonrpc/lib/node/ril.js +0 -161
  247. package/client/node_modules/vscode-jsonrpc/node.cmd +0 -5
  248. package/client/node_modules/vscode-jsonrpc/node.d.ts +0 -6
  249. package/client/node_modules/vscode-jsonrpc/node.js +0 -7
  250. package/client/node_modules/vscode-jsonrpc/package.json +0 -45
  251. package/client/node_modules/vscode-jsonrpc/thirdpartynotices.txt +0 -16
  252. package/client/node_modules/vscode-jsonrpc/typings/thenable.d.ts +0 -5
  253. package/client/node_modules/vscode-languageclient/License.txt +0 -11
  254. package/client/node_modules/vscode-languageclient/README.md +0 -17
  255. package/client/node_modules/vscode-languageclient/browser.d.ts +0 -6
  256. package/client/node_modules/vscode-languageclient/browser.js +0 -7
  257. package/client/node_modules/vscode-languageclient/lib/browser/main.d.ts +0 -8
  258. package/client/node_modules/vscode-languageclient/lib/browser/main.js +0 -37
  259. package/client/node_modules/vscode-languageclient/lib/common/api.d.ts +0 -36
  260. package/client/node_modules/vscode-languageclient/lib/common/api.js +0 -27
  261. package/client/node_modules/vscode-languageclient/lib/common/callHierarchy.d.ts +0 -37
  262. package/client/node_modules/vscode-languageclient/lib/common/callHierarchy.js +0 -97
  263. package/client/node_modules/vscode-languageclient/lib/common/client.d.ts +0 -476
  264. package/client/node_modules/vscode-languageclient/lib/common/client.js +0 -1600
  265. package/client/node_modules/vscode-languageclient/lib/common/codeAction.d.ts +0 -19
  266. package/client/node_modules/vscode-languageclient/lib/common/codeAction.js +0 -99
  267. package/client/node_modules/vscode-languageclient/lib/common/codeConverter.d.ts +0 -78
  268. package/client/node_modules/vscode-languageclient/lib/common/codeConverter.js +0 -876
  269. package/client/node_modules/vscode-languageclient/lib/common/codeLens.d.ts +0 -23
  270. package/client/node_modules/vscode-languageclient/lib/common/codeLens.js +0 -78
  271. package/client/node_modules/vscode-languageclient/lib/common/colorProvider.d.ts +0 -25
  272. package/client/node_modules/vscode-languageclient/lib/common/colorProvider.js +0 -74
  273. package/client/node_modules/vscode-languageclient/lib/common/completion.d.ts +0 -20
  274. package/client/node_modules/vscode-languageclient/lib/common/completion.js +0 -126
  275. package/client/node_modules/vscode-languageclient/lib/common/configuration.d.ts +0 -69
  276. package/client/node_modules/vscode-languageclient/lib/common/configuration.js +0 -209
  277. package/client/node_modules/vscode-languageclient/lib/common/declaration.d.ts +0 -16
  278. package/client/node_modules/vscode-languageclient/lib/common/declaration.js +0 -54
  279. package/client/node_modules/vscode-languageclient/lib/common/definition.d.ts +0 -16
  280. package/client/node_modules/vscode-languageclient/lib/common/definition.js +0 -55
  281. package/client/node_modules/vscode-languageclient/lib/common/diagnostic.d.ts +0 -122
  282. package/client/node_modules/vscode-languageclient/lib/common/diagnostic.js +0 -814
  283. package/client/node_modules/vscode-languageclient/lib/common/documentHighlight.d.ts +0 -15
  284. package/client/node_modules/vscode-languageclient/lib/common/documentHighlight.js +0 -50
  285. package/client/node_modules/vscode-languageclient/lib/common/documentLink.d.ts +0 -19
  286. package/client/node_modules/vscode-languageclient/lib/common/documentLink.js +0 -71
  287. package/client/node_modules/vscode-languageclient/lib/common/documentSymbol.d.ts +0 -17
  288. package/client/node_modules/vscode-languageclient/lib/common/documentSymbol.js +0 -104
  289. package/client/node_modules/vscode-languageclient/lib/common/executeCommand.d.ts +0 -21
  290. package/client/node_modules/vscode-languageclient/lib/common/executeCommand.js +0 -72
  291. package/client/node_modules/vscode-languageclient/lib/common/features.d.ts +0 -418
  292. package/client/node_modules/vscode-languageclient/lib/common/features.js +0 -291
  293. package/client/node_modules/vscode-languageclient/lib/common/fileOperations.d.ts +0 -116
  294. package/client/node_modules/vscode-languageclient/lib/common/fileOperations.js +0 -333
  295. package/client/node_modules/vscode-languageclient/lib/common/fileSystemWatcher.d.ts +0 -18
  296. package/client/node_modules/vscode-languageclient/lib/common/fileSystemWatcher.js +0 -95
  297. package/client/node_modules/vscode-languageclient/lib/common/foldingRange.d.ts +0 -19
  298. package/client/node_modules/vscode-languageclient/lib/common/foldingRange.js +0 -65
  299. package/client/node_modules/vscode-languageclient/lib/common/formatting.d.ts +0 -39
  300. package/client/node_modules/vscode-languageclient/lib/common/formatting.js +0 -182
  301. package/client/node_modules/vscode-languageclient/lib/common/hover.d.ts +0 -16
  302. package/client/node_modules/vscode-languageclient/lib/common/hover.js +0 -58
  303. package/client/node_modules/vscode-languageclient/lib/common/implementation.d.ts +0 -16
  304. package/client/node_modules/vscode-languageclient/lib/common/implementation.js +0 -54
  305. package/client/node_modules/vscode-languageclient/lib/common/inlayHint.d.ts +0 -20
  306. package/client/node_modules/vscode-languageclient/lib/common/inlayHint.js +0 -92
  307. package/client/node_modules/vscode-languageclient/lib/common/inlineCompletion.d.ts +0 -18
  308. package/client/node_modules/vscode-languageclient/lib/common/inlineCompletion.js +0 -54
  309. package/client/node_modules/vscode-languageclient/lib/common/inlineValue.d.ts +0 -18
  310. package/client/node_modules/vscode-languageclient/lib/common/inlineValue.js +0 -65
  311. package/client/node_modules/vscode-languageclient/lib/common/linkedEditingRange.d.ts +0 -21
  312. package/client/node_modules/vscode-languageclient/lib/common/linkedEditingRange.js +0 -53
  313. package/client/node_modules/vscode-languageclient/lib/common/notebook.d.ts +0 -96
  314. package/client/node_modules/vscode-languageclient/lib/common/notebook.js +0 -851
  315. package/client/node_modules/vscode-languageclient/lib/common/progress.d.ts +0 -11
  316. package/client/node_modules/vscode-languageclient/lib/common/progress.js +0 -44
  317. package/client/node_modules/vscode-languageclient/lib/common/progressPart.d.ts +0 -24
  318. package/client/node_modules/vscode-languageclient/lib/common/progressPart.js +0 -96
  319. package/client/node_modules/vscode-languageclient/lib/common/protocolCallHierarchyItem.d.ts +0 -6
  320. package/client/node_modules/vscode-languageclient/lib/common/protocolCallHierarchyItem.js +0 -16
  321. package/client/node_modules/vscode-languageclient/lib/common/protocolCodeAction.d.ts +0 -6
  322. package/client/node_modules/vscode-languageclient/lib/common/protocolCodeAction.js +0 -14
  323. package/client/node_modules/vscode-languageclient/lib/common/protocolCodeLens.d.ts +0 -5
  324. package/client/node_modules/vscode-languageclient/lib/common/protocolCodeLens.js +0 -13
  325. package/client/node_modules/vscode-languageclient/lib/common/protocolCompletionItem.d.ts +0 -11
  326. package/client/node_modules/vscode-languageclient/lib/common/protocolCompletionItem.js +0 -13
  327. package/client/node_modules/vscode-languageclient/lib/common/protocolConverter.d.ts +0 -167
  328. package/client/node_modules/vscode-languageclient/lib/common/protocolConverter.js +0 -1134
  329. package/client/node_modules/vscode-languageclient/lib/common/protocolDiagnostic.d.ts +0 -18
  330. package/client/node_modules/vscode-languageclient/lib/common/protocolDiagnostic.js +0 -25
  331. package/client/node_modules/vscode-languageclient/lib/common/protocolDocumentLink.d.ts +0 -5
  332. package/client/node_modules/vscode-languageclient/lib/common/protocolDocumentLink.js +0 -13
  333. package/client/node_modules/vscode-languageclient/lib/common/protocolInlayHint.d.ts +0 -5
  334. package/client/node_modules/vscode-languageclient/lib/common/protocolInlayHint.js +0 -13
  335. package/client/node_modules/vscode-languageclient/lib/common/protocolTypeHierarchyItem.d.ts +0 -6
  336. package/client/node_modules/vscode-languageclient/lib/common/protocolTypeHierarchyItem.js +0 -16
  337. package/client/node_modules/vscode-languageclient/lib/common/protocolWorkspaceSymbol.d.ts +0 -7
  338. package/client/node_modules/vscode-languageclient/lib/common/protocolWorkspaceSymbol.js +0 -18
  339. package/client/node_modules/vscode-languageclient/lib/common/reference.d.ts +0 -20
  340. package/client/node_modules/vscode-languageclient/lib/common/reference.js +0 -53
  341. package/client/node_modules/vscode-languageclient/lib/common/rename.d.ts +0 -27
  342. package/client/node_modules/vscode-languageclient/lib/common/rename.js +0 -113
  343. package/client/node_modules/vscode-languageclient/lib/common/selectionRange.d.ts +0 -16
  344. package/client/node_modules/vscode-languageclient/lib/common/selectionRange.js +0 -57
  345. package/client/node_modules/vscode-languageclient/lib/common/semanticTokens.d.ts +0 -33
  346. package/client/node_modules/vscode-languageclient/lib/common/semanticTokens.js +0 -179
  347. package/client/node_modules/vscode-languageclient/lib/common/signatureHelp.d.ts +0 -16
  348. package/client/node_modules/vscode-languageclient/lib/common/signatureHelp.js +0 -71
  349. package/client/node_modules/vscode-languageclient/lib/common/textSynchronization.d.ts +0 -101
  350. package/client/node_modules/vscode-languageclient/lib/common/textSynchronization.js +0 -402
  351. package/client/node_modules/vscode-languageclient/lib/common/typeDefinition.d.ts +0 -16
  352. package/client/node_modules/vscode-languageclient/lib/common/typeDefinition.js +0 -55
  353. package/client/node_modules/vscode-languageclient/lib/common/typeHierarchy.d.ts +0 -31
  354. package/client/node_modules/vscode-languageclient/lib/common/typeHierarchy.js +0 -96
  355. package/client/node_modules/vscode-languageclient/lib/common/utils/async.d.ts +0 -41
  356. package/client/node_modules/vscode-languageclient/lib/common/utils/async.js +0 -276
  357. package/client/node_modules/vscode-languageclient/lib/common/utils/is.d.ts +0 -12
  358. package/client/node_modules/vscode-languageclient/lib/common/utils/is.js +0 -57
  359. package/client/node_modules/vscode-languageclient/lib/common/utils/uuid.d.ts +0 -22
  360. package/client/node_modules/vscode-languageclient/lib/common/utils/uuid.js +0 -97
  361. package/client/node_modules/vscode-languageclient/lib/common/workspaceFolder.d.ts +0 -30
  362. package/client/node_modules/vscode-languageclient/lib/common/workspaceFolder.js +0 -148
  363. package/client/node_modules/vscode-languageclient/lib/common/workspaceSymbol.d.ts +0 -19
  364. package/client/node_modules/vscode-languageclient/lib/common/workspaceSymbol.js +0 -79
  365. package/client/node_modules/vscode-languageclient/lib/node/main.d.ts +0 -100
  366. package/client/node_modules/vscode-languageclient/lib/node/main.js +0 -570
  367. package/client/node_modules/vscode-languageclient/lib/node/processes.d.ts +0 -6
  368. package/client/node_modules/vscode-languageclient/lib/node/processes.js +0 -47
  369. package/client/node_modules/vscode-languageclient/lib/node/terminateProcess.sh +0 -16
  370. package/client/node_modules/vscode-languageclient/node.cmd +0 -5
  371. package/client/node_modules/vscode-languageclient/node.d.ts +0 -6
  372. package/client/node_modules/vscode-languageclient/node.js +0 -7
  373. package/client/node_modules/vscode-languageclient/package.json +0 -50
  374. package/client/node_modules/vscode-languageserver-protocol/License.txt +0 -11
  375. package/client/node_modules/vscode-languageserver-protocol/README.md +0 -16
  376. package/client/node_modules/vscode-languageserver-protocol/browser.d.ts +0 -6
  377. package/client/node_modules/vscode-languageserver-protocol/browser.js +0 -7
  378. package/client/node_modules/vscode-languageserver-protocol/lib/browser/main.d.ts +0 -4
  379. package/client/node_modules/vscode-languageserver-protocol/lib/browser/main.js +0 -28
  380. package/client/node_modules/vscode-languageserver-protocol/lib/common/api.d.ts +0 -58
  381. package/client/node_modules/vscode-languageserver-protocol/lib/common/api.js +0 -77
  382. package/client/node_modules/vscode-languageserver-protocol/lib/common/connection.d.ts +0 -187
  383. package/client/node_modules/vscode-languageserver-protocol/lib/common/connection.js +0 -15
  384. package/client/node_modules/vscode-languageserver-protocol/lib/common/messages.d.ts +0 -51
  385. package/client/node_modules/vscode-languageserver-protocol/lib/common/messages.js +0 -44
  386. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.$.d.ts +0 -1
  387. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.$.js +0 -43
  388. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.d.ts +0 -86
  389. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.js +0 -42
  390. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.d.ts +0 -66
  391. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.js +0 -32
  392. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.d.ts +0 -35
  393. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.js +0 -24
  394. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.d.ts +0 -3252
  395. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.d.ts +0 -37
  396. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.js +0 -22
  397. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.d.ts +0 -341
  398. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.js +0 -74
  399. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.d.ts +0 -306
  400. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.js +0 -101
  401. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.d.ts +0 -109
  402. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.js +0 -30
  403. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.d.ts +0 -38
  404. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.js +0 -21
  405. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.d.ts +0 -110
  406. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.js +0 -43
  407. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.d.ts +0 -57
  408. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.js +0 -22
  409. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.d.ts +0 -86
  410. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.js +0 -30
  411. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.js +0 -943
  412. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.d.ts +0 -52
  413. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.js +0 -19
  414. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.d.ts +0 -106
  415. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.js +0 -68
  416. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.d.ts +0 -400
  417. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.js +0 -214
  418. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.d.ts +0 -107
  419. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.js +0 -37
  420. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.d.ts +0 -41
  421. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.js +0 -20
  422. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.d.ts +0 -223
  423. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.js +0 -57
  424. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.d.ts +0 -72
  425. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.js +0 -22
  426. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.d.ts +0 -38
  427. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.js +0 -21
  428. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.d.ts +0 -83
  429. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.js +0 -42
  430. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.d.ts +0 -74
  431. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.js +0 -27
  432. package/client/node_modules/vscode-languageserver-protocol/lib/common/utils/is.d.ts +0 -9
  433. package/client/node_modules/vscode-languageserver-protocol/lib/common/utils/is.js +0 -46
  434. package/client/node_modules/vscode-languageserver-protocol/lib/node/main.d.ts +0 -6
  435. package/client/node_modules/vscode-languageserver-protocol/lib/node/main.js +0 -28
  436. package/client/node_modules/vscode-languageserver-protocol/metaModel.schema.json +0 -783
  437. package/client/node_modules/vscode-languageserver-protocol/node.cmd +0 -5
  438. package/client/node_modules/vscode-languageserver-protocol/node.d.ts +0 -6
  439. package/client/node_modules/vscode-languageserver-protocol/node.js +0 -7
  440. package/client/node_modules/vscode-languageserver-protocol/package.json +0 -45
  441. package/client/node_modules/vscode-languageserver-protocol/thirdpartynotices.txt +0 -31
  442. package/client/node_modules/vscode-languageserver-types/License.txt +0 -11
  443. package/client/node_modules/vscode-languageserver-types/README.md +0 -17
  444. package/client/node_modules/vscode-languageserver-types/lib/esm/main.d.ts +0 -3139
  445. package/client/node_modules/vscode-languageserver-types/lib/esm/main.js +0 -2222
  446. package/client/node_modules/vscode-languageserver-types/lib/esm/package.json +0 -3
  447. package/client/node_modules/vscode-languageserver-types/lib/umd/main.d.ts +0 -3139
  448. package/client/node_modules/vscode-languageserver-types/lib/umd/main.js +0 -2272
  449. package/client/node_modules/vscode-languageserver-types/package.json +0 -38
  450. package/client/node_modules/vscode-languageserver-types/thirdpartynotices.txt +0 -16
  451. package/client/package-lock.json +0 -125
  452. package/client/package.json +0 -42
  453. package/client/src/extension.ts +0 -56
  454. 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,14 @@
1
1
  {
2
2
  "name": "css-variable-lsp",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "A CSS Language Server for CSS Variables",
5
+ "bin": {
6
+ "css-variable-lsp": "./server/out/server.js"
7
+ },
5
8
  "scripts": {
6
9
  "compile": "tsc -b",
7
10
  "watch": "tsc -b -w",
8
- "postinstall": "cd client && npm install && cd ../server && npm install",
11
+ "postinstall": "cd server && npm install",
9
12
  "test": "cd server && npm run test:all"
10
13
  },
11
14
  "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":";;AAAA,kEAA+D;AAC/D,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,qCAAqC,CAAC,CAAC;AAEnD,8BAA8B;AAC9B,CAAC;IACA,MAAM,GAAG,GAAG,2DAA2D,CAAC;IACxE,MAAM,GAAG,GAAG,SAAS,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;IAC/C,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAE3B,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,2BAA2B,CAAC,CAAC;IAEhE,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAE/C,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,iCAAiC,CAAC,CAAC;IAC3D,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,gCAAgC,CAAC,CAAC;IACjF,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,6BAA6B,CAAC,CAAC;IACpD,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,6BAA6B,CAAC,CAAC;IAE5E,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;AACnD,CAAC;AAED,gCAAgC;AAChC,CAAC;IACA,MAAM,GAAG,GAAG,8CAA8C,CAAC;IAC3D,MAAM,GAAG,GAAG,SAAS,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;IAC/C,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAE3B,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,2BAA2B,CAAC,CAAC;IAEhE,oDAAoD;IACpD,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,+CAA+C,CAAC,CAAC;IAE5G,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;AACrD,CAAC;AAED,+BAA+B;AAC/B,CAAC;IACA,MAAM,IAAI,GAAG,mEAAmE,CAAC;IACjF,MAAM,GAAG,GAAG,SAAS,CAAC,mBAAmB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACzD,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAE3B,MAAM,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAEnD,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,kCAAkC,CAAC,CAAC;IAChF,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,6BAA6B,CAAC,CAAC;IACtE,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,cAAc,EAAE,wCAAwC,CAAC,CAAC;IAE5G,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;AACpD,CAAC;AAED,oEAAoE;AACpE,CAAC;IACA,MAAM,GAAG,GAAG;;;;;EAKX,CAAC;IACF,MAAM,GAAG,GAAG,SAAS,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;IAC/C,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAE3B,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,2BAA2B,CAAC,CAAC;IAEhE,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,mCAAmC,CAAC,CAAC;IAC7D,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,gCAAgC,CAAC,CAAC;IAEvF,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;AACzD,CAAC;AAED,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC"}
@@ -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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"}