@stylelint/language-server 1.0.0

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 (334) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +39 -0
  3. package/bin/stylelint-language-server.mjs +25 -0
  4. package/build/di/container.d.ts +12 -0
  5. package/build/di/container.js +76 -0
  6. package/build/di/container.js.map +1 -0
  7. package/build/di/hooks.d.ts +16 -0
  8. package/build/di/hooks.js +25 -0
  9. package/build/di/hooks.js.map +1 -0
  10. package/build/di/index.d.ts +7 -0
  11. package/build/di/index.js +8 -0
  12. package/build/di/index.js.map +1 -0
  13. package/build/di/inject.d.ts +48 -0
  14. package/build/di/inject.js +55 -0
  15. package/build/di/inject.js.map +1 -0
  16. package/build/di/module.d.ts +51 -0
  17. package/build/di/module.js +93 -0
  18. package/build/di/module.js.map +1 -0
  19. package/build/di/runtime/application.d.ts +17 -0
  20. package/build/di/runtime/application.js +209 -0
  21. package/build/di/runtime/application.js.map +1 -0
  22. package/build/di/runtime/decorators.d.ts +14 -0
  23. package/build/di/runtime/decorators.js +26 -0
  24. package/build/di/runtime/decorators.js.map +1 -0
  25. package/build/di/runtime/index.d.ts +3 -0
  26. package/build/di/runtime/index.js +4 -0
  27. package/build/di/runtime/index.js.map +1 -0
  28. package/build/di/runtime/symbols.d.ts +1 -0
  29. package/build/di/runtime/symbols.js +2 -0
  30. package/build/di/runtime/symbols.js.map +1 -0
  31. package/build/di/runtime/types.d.ts +20 -0
  32. package/build/di/runtime/types.js +2 -0
  33. package/build/di/runtime/types.js.map +1 -0
  34. package/build/di/tokens.d.ts +8 -0
  35. package/build/di/tokens.js +7 -0
  36. package/build/di/tokens.js.map +1 -0
  37. package/build/di/types.d.ts +16 -0
  38. package/build/di/types.js +2 -0
  39. package/build/di/types.js.map +1 -0
  40. package/build/server/config/default-options.d.ts +2 -0
  41. package/build/server/config/default-options.js +29 -0
  42. package/build/server/config/default-options.js.map +1 -0
  43. package/build/server/decorators.d.ts +121 -0
  44. package/build/server/decorators.js +272 -0
  45. package/build/server/decorators.js.map +1 -0
  46. package/build/server/index.d.ts +2 -0
  47. package/build/server/index.js +3 -0
  48. package/build/server/index.js.map +1 -0
  49. package/build/server/modules/documents.module.d.ts +1 -0
  50. package/build/server/modules/documents.module.js +12 -0
  51. package/build/server/modules/documents.module.js.map +1 -0
  52. package/build/server/modules/index.d.ts +6 -0
  53. package/build/server/modules/index.js +7 -0
  54. package/build/server/modules/index.js.map +1 -0
  55. package/build/server/modules/infrastructure.module.d.ts +1 -0
  56. package/build/server/modules/infrastructure.module.js +7 -0
  57. package/build/server/modules/infrastructure.module.js.map +1 -0
  58. package/build/server/modules/lsp.module.d.ts +1 -0
  59. package/build/server/modules/lsp.module.js +18 -0
  60. package/build/server/modules/lsp.module.js.map +1 -0
  61. package/build/server/modules/platform.module.d.ts +4 -0
  62. package/build/server/modules/platform.module.js +33 -0
  63. package/build/server/modules/platform.module.js.map +1 -0
  64. package/build/server/modules/stylelint-runtime.module.d.ts +1 -0
  65. package/build/server/modules/stylelint-runtime.module.js +19 -0
  66. package/build/server/modules/stylelint-runtime.module.js.map +1 -0
  67. package/build/server/modules/workspace.module.d.ts +1 -0
  68. package/build/server/modules/workspace.module.js +7 -0
  69. package/build/server/modules/workspace.module.js.map +1 -0
  70. package/build/server/runtime/application.d.ts +19 -0
  71. package/build/server/runtime/application.js +22 -0
  72. package/build/server/runtime/application.js.map +1 -0
  73. package/build/server/runtime/language-server-feature.d.ts +13 -0
  74. package/build/server/runtime/language-server-feature.js +142 -0
  75. package/build/server/runtime/language-server-feature.js.map +1 -0
  76. package/build/server/runtime/lsp-service-runtime.d.ts +15 -0
  77. package/build/server/runtime/lsp-service-runtime.js +133 -0
  78. package/build/server/runtime/lsp-service-runtime.js.map +1 -0
  79. package/build/server/server.d.ts +13 -0
  80. package/build/server/server.js +38 -0
  81. package/build/server/server.js.map +1 -0
  82. package/build/server/server.module.d.ts +1 -0
  83. package/build/server/server.module.js +13 -0
  84. package/build/server/server.module.js.map +1 -0
  85. package/build/server/services/documents/document-diagnostics.service.d.ts +15 -0
  86. package/build/server/services/documents/document-diagnostics.service.js +88 -0
  87. package/build/server/services/documents/document-diagnostics.service.js.map +1 -0
  88. package/build/server/services/documents/document-fixes.service.d.ts +14 -0
  89. package/build/server/services/documents/document-fixes.service.js +94 -0
  90. package/build/server/services/documents/document-fixes.service.js.map +1 -0
  91. package/build/server/services/documents/index.d.ts +2 -0
  92. package/build/server/services/documents/index.js +3 -0
  93. package/build/server/services/documents/index.js.map +1 -0
  94. package/build/server/services/index.d.ts +5 -0
  95. package/build/server/services/index.js +6 -0
  96. package/build/server/services/index.js.map +1 -0
  97. package/build/server/services/infrastructure/command.service.d.ts +22 -0
  98. package/build/server/services/infrastructure/command.service.js +151 -0
  99. package/build/server/services/infrastructure/command.service.js.map +1 -0
  100. package/build/server/services/infrastructure/index.d.ts +4 -0
  101. package/build/server/services/infrastructure/index.js +5 -0
  102. package/build/server/services/infrastructure/index.js.map +1 -0
  103. package/build/server/services/infrastructure/logging.service.d.ts +6 -0
  104. package/build/server/services/infrastructure/logging.service.js +4 -0
  105. package/build/server/services/infrastructure/logging.service.js.map +1 -0
  106. package/build/server/services/infrastructure/notification.service.d.ts +24 -0
  107. package/build/server/services/infrastructure/notification.service.js +142 -0
  108. package/build/server/services/infrastructure/notification.service.js.map +1 -0
  109. package/build/server/services/infrastructure/winston-logging.service.d.ts +10 -0
  110. package/build/server/services/infrastructure/winston-logging.service.js +48 -0
  111. package/build/server/services/infrastructure/winston-logging.service.js.map +1 -0
  112. package/build/server/services/lsp/auto-fix.service.d.ts +15 -0
  113. package/build/server/services/lsp/auto-fix.service.js +142 -0
  114. package/build/server/services/lsp/auto-fix.service.js.map +1 -0
  115. package/build/server/services/lsp/code-actions/code-action.service.d.ts +18 -0
  116. package/build/server/services/lsp/code-actions/code-action.service.js +288 -0
  117. package/build/server/services/lsp/code-actions/code-action.service.js.map +1 -0
  118. package/build/server/services/lsp/code-actions/disable-rule-file-code-action.service.d.ts +11 -0
  119. package/build/server/services/lsp/code-actions/disable-rule-file-code-action.service.js +72 -0
  120. package/build/server/services/lsp/code-actions/disable-rule-file-code-action.service.js.map +1 -0
  121. package/build/server/services/lsp/code-actions/disable-rule-line-code-action.service.d.ts +12 -0
  122. package/build/server/services/lsp/code-actions/disable-rule-line-code-action.service.js +80 -0
  123. package/build/server/services/lsp/code-actions/disable-rule-line-code-action.service.js.map +1 -0
  124. package/build/server/services/lsp/code-actions/index.d.ts +3 -0
  125. package/build/server/services/lsp/code-actions/index.js +4 -0
  126. package/build/server/services/lsp/code-actions/index.js.map +1 -0
  127. package/build/server/services/lsp/completion.service.d.ts +12 -0
  128. package/build/server/services/lsp/completion.service.js +183 -0
  129. package/build/server/services/lsp/completion.service.js.map +1 -0
  130. package/build/server/services/lsp/empty-config-warning.service.d.ts +17 -0
  131. package/build/server/services/lsp/empty-config-warning.service.js +149 -0
  132. package/build/server/services/lsp/empty-config-warning.service.js.map +1 -0
  133. package/build/server/services/lsp/formatter.service.d.ts +16 -0
  134. package/build/server/services/lsp/formatter.service.js +215 -0
  135. package/build/server/services/lsp/formatter.service.js.map +1 -0
  136. package/build/server/services/lsp/index.d.ts +8 -0
  137. package/build/server/services/lsp/index.js +9 -0
  138. package/build/server/services/lsp/index.js.map +1 -0
  139. package/build/server/services/lsp/old-stylelint-warning.service.d.ts +13 -0
  140. package/build/server/services/lsp/old-stylelint-warning.service.js +186 -0
  141. package/build/server/services/lsp/old-stylelint-warning.service.js.map +1 -0
  142. package/build/server/services/lsp/validator.service.d.ts +19 -0
  143. package/build/server/services/lsp/validator.service.js +273 -0
  144. package/build/server/services/lsp/validator.service.js.map +1 -0
  145. package/build/server/services/lsp/workspace-activity.service.d.ts +10 -0
  146. package/build/server/services/lsp/workspace-activity.service.js +76 -0
  147. package/build/server/services/lsp/workspace-activity.service.js.map +1 -0
  148. package/build/server/services/services.module.d.ts +1 -0
  149. package/build/server/services/services.module.js +19 -0
  150. package/build/server/services/services.module.js.map +1 -0
  151. package/build/server/services/stylelint-runtime/global-path-resolver.service.d.ts +38 -0
  152. package/build/server/services/stylelint-runtime/global-path-resolver.service.js +223 -0
  153. package/build/server/services/stylelint-runtime/global-path-resolver.service.js.map +1 -0
  154. package/build/server/services/stylelint-runtime/index.d.ts +11 -0
  155. package/build/server/services/stylelint-runtime/index.js +12 -0
  156. package/build/server/services/stylelint-runtime/index.js.map +1 -0
  157. package/build/server/services/stylelint-runtime/package-root-cache.service.d.ts +9 -0
  158. package/build/server/services/stylelint-runtime/package-root-cache.service.js +141 -0
  159. package/build/server/services/stylelint-runtime/package-root-cache.service.js.map +1 -0
  160. package/build/server/services/stylelint-runtime/package-root.service.d.ts +8 -0
  161. package/build/server/services/stylelint-runtime/package-root.service.js +119 -0
  162. package/build/server/services/stylelint-runtime/package-root.service.js.map +1 -0
  163. package/build/server/services/stylelint-runtime/pnp-configuration-cache.service.d.ts +16 -0
  164. package/build/server/services/stylelint-runtime/pnp-configuration-cache.service.js +195 -0
  165. package/build/server/services/stylelint-runtime/pnp-configuration-cache.service.js.map +1 -0
  166. package/build/server/services/stylelint-runtime/process-runner.service.d.ts +30 -0
  167. package/build/server/services/stylelint-runtime/process-runner.service.js +149 -0
  168. package/build/server/services/stylelint-runtime/process-runner.service.js.map +1 -0
  169. package/build/server/services/stylelint-runtime/stylelint-options.service.d.ts +12 -0
  170. package/build/server/services/stylelint-runtime/stylelint-options.service.js +185 -0
  171. package/build/server/services/stylelint-runtime/stylelint-options.service.js.map +1 -0
  172. package/build/server/services/stylelint-runtime/stylelint-runner.service.d.ts +42 -0
  173. package/build/server/services/stylelint-runtime/stylelint-runner.service.js +478 -0
  174. package/build/server/services/stylelint-runtime/stylelint-runner.service.js.map +1 -0
  175. package/build/server/services/stylelint-runtime/worker-environment.service.d.ts +17 -0
  176. package/build/server/services/stylelint-runtime/worker-environment.service.js +135 -0
  177. package/build/server/services/stylelint-runtime/worker-environment.service.js.map +1 -0
  178. package/build/server/services/stylelint-runtime/worker-process.service.d.ts +8 -0
  179. package/build/server/services/stylelint-runtime/worker-process.service.js +66 -0
  180. package/build/server/services/stylelint-runtime/worker-process.service.js.map +1 -0
  181. package/build/server/services/stylelint-runtime/worker-registry.service.d.ts +19 -0
  182. package/build/server/services/stylelint-runtime/worker-registry.service.js +289 -0
  183. package/build/server/services/stylelint-runtime/worker-registry.service.js.map +1 -0
  184. package/build/server/services/stylelint-runtime/workspace-stylelint.service.d.ts +37 -0
  185. package/build/server/services/stylelint-runtime/workspace-stylelint.service.js +185 -0
  186. package/build/server/services/stylelint-runtime/workspace-stylelint.service.js.map +1 -0
  187. package/build/server/services/workspace/index.d.ts +2 -0
  188. package/build/server/services/workspace/index.js +3 -0
  189. package/build/server/services/workspace/index.js.map +1 -0
  190. package/build/server/services/workspace/workspace-folder.service.d.ts +18 -0
  191. package/build/server/services/workspace/workspace-folder.service.js +101 -0
  192. package/build/server/services/workspace/workspace-folder.service.js.map +1 -0
  193. package/build/server/services/workspace/workspace-options.service.d.ts +12 -0
  194. package/build/server/services/workspace/workspace-options.service.js +125 -0
  195. package/build/server/services/workspace/workspace-options.service.js.map +1 -0
  196. package/build/server/stylelint/disable-metadata-lookup-table.d.ts +20 -0
  197. package/build/server/stylelint/disable-metadata-lookup-table.js +68 -0
  198. package/build/server/stylelint/disable-metadata-lookup-table.js.map +1 -0
  199. package/build/server/stylelint/formatting-options-to-rules.d.ts +12 -0
  200. package/build/server/stylelint/formatting-options-to-rules.js +19 -0
  201. package/build/server/stylelint/formatting-options-to-rules.js.map +1 -0
  202. package/build/server/stylelint/get-disable-diagnostic-rule.d.ts +7 -0
  203. package/build/server/stylelint/get-disable-diagnostic-rule.js +22 -0
  204. package/build/server/stylelint/get-disable-diagnostic-rule.js.map +1 -0
  205. package/build/server/stylelint/index.d.ts +7 -0
  206. package/build/server/stylelint/index.js +8 -0
  207. package/build/server/stylelint/index.js.map +1 -0
  208. package/build/server/stylelint/is-disable-report-rule.d.ts +6 -0
  209. package/build/server/stylelint/is-disable-report-rule.js +17 -0
  210. package/build/server/stylelint/is-disable-report-rule.js.map +1 -0
  211. package/build/server/stylelint/load-stylelint.d.ts +23 -0
  212. package/build/server/stylelint/load-stylelint.js +173 -0
  213. package/build/server/stylelint/load-stylelint.js.map +1 -0
  214. package/build/server/stylelint/process-linter-result.d.ts +32 -0
  215. package/build/server/stylelint/process-linter-result.js +129 -0
  216. package/build/server/stylelint/process-linter-result.js.map +1 -0
  217. package/build/server/stylelint/types.d.ts +143 -0
  218. package/build/server/stylelint/types.js +47 -0
  219. package/build/server/stylelint/types.js.map +1 -0
  220. package/build/server/stylelint/warning-to-diagnostic.d.ts +46 -0
  221. package/build/server/stylelint/warning-to-diagnostic.js +143 -0
  222. package/build/server/stylelint/warning-to-diagnostic.js.map +1 -0
  223. package/build/server/tokens.d.ts +20 -0
  224. package/build/server/tokens.js +16 -0
  225. package/build/server/tokens.js.map +1 -0
  226. package/build/server/types.d.ts +74 -0
  227. package/build/server/types.js +18 -0
  228. package/build/server/types.js.map +1 -0
  229. package/build/server/utils/documents/create-text-edits.d.ts +10 -0
  230. package/build/server/utils/documents/create-text-edits.js +31 -0
  231. package/build/server/utils/documents/create-text-edits.js.map +1 -0
  232. package/build/server/utils/documents/get-disable-type.d.ts +26 -0
  233. package/build/server/utils/documents/get-disable-type.js +32 -0
  234. package/build/server/utils/documents/get-disable-type.js.map +1 -0
  235. package/build/server/utils/documents/get-edit-info.d.ts +14 -0
  236. package/build/server/utils/documents/get-edit-info.js +31 -0
  237. package/build/server/utils/documents/get-edit-info.js.map +1 -0
  238. package/build/server/utils/documents/get-fixes.d.ts +12 -0
  239. package/build/server/utils/documents/get-fixes.js +18 -0
  240. package/build/server/utils/documents/get-fixes.js.map +1 -0
  241. package/build/server/utils/documents/index.d.ts +4 -0
  242. package/build/server/utils/documents/index.js +5 -0
  243. package/build/server/utils/documents/index.js.map +1 -0
  244. package/build/server/utils/errors.d.ts +10 -0
  245. package/build/server/utils/errors.js +89 -0
  246. package/build/server/utils/errors.js.map +1 -0
  247. package/build/server/utils/fs.d.ts +4 -0
  248. package/build/server/utils/fs.js +11 -0
  249. package/build/server/utils/fs.js.map +1 -0
  250. package/build/server/utils/functions/get-first-return-value.d.ts +11 -0
  251. package/build/server/utils/functions/get-first-return-value.js +28 -0
  252. package/build/server/utils/functions/get-first-return-value.js.map +1 -0
  253. package/build/server/utils/functions/index.d.ts +2 -0
  254. package/build/server/utils/functions/index.js +3 -0
  255. package/build/server/utils/functions/index.js.map +1 -0
  256. package/build/server/utils/functions/lazy-call.d.ts +12 -0
  257. package/build/server/utils/functions/lazy-call.js +33 -0
  258. package/build/server/utils/functions/lazy-call.js.map +1 -0
  259. package/build/server/utils/index.d.ts +11 -0
  260. package/build/server/utils/index.js +12 -0
  261. package/build/server/utils/index.js.map +1 -0
  262. package/build/server/utils/iterables.d.ts +8 -0
  263. package/build/server/utils/iterables.js +15 -0
  264. package/build/server/utils/iterables.js.map +1 -0
  265. package/build/server/utils/logging/error-formatter.d.ts +7 -0
  266. package/build/server/utils/logging/error-formatter.js +14 -0
  267. package/build/server/utils/logging/error-formatter.js.map +1 -0
  268. package/build/server/utils/logging/get-log-function.d.ts +8 -0
  269. package/build/server/utils/logging/get-log-function.js +11 -0
  270. package/build/server/utils/logging/get-log-function.js.map +1 -0
  271. package/build/server/utils/logging/index.d.ts +4 -0
  272. package/build/server/utils/logging/index.js +5 -0
  273. package/build/server/utils/logging/index.js.map +1 -0
  274. package/build/server/utils/logging/language-server-formatter.d.ts +19 -0
  275. package/build/server/utils/logging/language-server-formatter.js +55 -0
  276. package/build/server/utils/logging/language-server-formatter.js.map +1 -0
  277. package/build/server/utils/logging/language-server-transport.d.ts +19 -0
  278. package/build/server/utils/logging/language-server-transport.js +39 -0
  279. package/build/server/utils/logging/language-server-transport.js.map +1 -0
  280. package/build/server/utils/lsp/create-disable-completion-item.d.ts +7 -0
  281. package/build/server/utils/lsp/create-disable-completion-item.js +32 -0
  282. package/build/server/utils/lsp/create-disable-completion-item.js.map +1 -0
  283. package/build/server/utils/lsp/display-error.d.ts +7 -0
  284. package/build/server/utils/lsp/display-error.js +24 -0
  285. package/build/server/utils/lsp/display-error.js.map +1 -0
  286. package/build/server/utils/lsp/index.d.ts +4 -0
  287. package/build/server/utils/lsp/index.js +5 -0
  288. package/build/server/utils/lsp/index.js.map +1 -0
  289. package/build/server/utils/lsp/rule-code-actions-collection.d.ts +29 -0
  290. package/build/server/utils/lsp/rule-code-actions-collection.js +61 -0
  291. package/build/server/utils/lsp/rule-code-actions-collection.js.map +1 -0
  292. package/build/server/utils/lsp/types.d.ts +22 -0
  293. package/build/server/utils/lsp/types.js +2 -0
  294. package/build/server/utils/lsp/types.js.map +1 -0
  295. package/build/server/utils/objects/index.d.ts +3 -0
  296. package/build/server/utils/objects/index.js +4 -0
  297. package/build/server/utils/objects/index.js.map +1 -0
  298. package/build/server/utils/objects/is-object.d.ts +8 -0
  299. package/build/server/utils/objects/is-object.js +13 -0
  300. package/build/server/utils/objects/is-object.js.map +1 -0
  301. package/build/server/utils/objects/merge-assign.d.ts +8 -0
  302. package/build/server/utils/objects/merge-assign.js +38 -0
  303. package/build/server/utils/objects/merge-assign.js.map +1 -0
  304. package/build/server/utils/objects/merge-options-with-defaults.d.ts +5 -0
  305. package/build/server/utils/objects/merge-options-with-defaults.js +56 -0
  306. package/build/server/utils/objects/merge-options-with-defaults.js.map +1 -0
  307. package/build/server/utils/sets.d.ts +6 -0
  308. package/build/server/utils/sets.js +22 -0
  309. package/build/server/utils/sets.js.map +1 -0
  310. package/build/server/utils/strings.d.ts +12 -0
  311. package/build/server/utils/strings.js +20 -0
  312. package/build/server/utils/strings.js.map +1 -0
  313. package/build/server/utils/types.d.ts +27 -0
  314. package/build/server/utils/types.js +2 -0
  315. package/build/server/utils/types.js.map +1 -0
  316. package/build/server/worker/types.d.ts +63 -0
  317. package/build/server/worker/types.js +2 -0
  318. package/build/server/worker/types.js.map +1 -0
  319. package/build/server/worker/worker-entry.d.ts +1 -0
  320. package/build/server/worker/worker-entry.js +320 -0
  321. package/build/server/worker/worker-entry.js.map +1 -0
  322. package/build/server/worker/worker-logging.service.d.ts +18 -0
  323. package/build/server/worker/worker-logging.service.js +61 -0
  324. package/build/server/worker/worker-logging.service.js.map +1 -0
  325. package/build/server/worker/worker-process.d.ts +54 -0
  326. package/build/server/worker/worker-process.js +266 -0
  327. package/build/server/worker/worker-process.js.map +1 -0
  328. package/build/shared/log-level.d.ts +5 -0
  329. package/build/shared/log-level.js +11 -0
  330. package/build/shared/log-level.js.map +1 -0
  331. package/build/shared/types.d.ts +9 -0
  332. package/build/shared/types.js +3 -0
  333. package/build/shared/types.js.map +1 -0
  334. package/package.json +89 -0
@@ -0,0 +1,272 @@
1
+ // Function type is used to match decorator signatures. Non-arrow functions are
2
+ // needed for correct `this` binding. The `any` type is used since otherwise
3
+ // there will be conflicts with method and constructor signatures. And the
4
+ // functions are bound not by the decorator but by the initializer, so it's
5
+ // safe to disable the relevant eslint rules here.
6
+ /* eslint-disable @typescript-eslint/no-unsafe-function-type */
7
+ /* eslint-disable @typescript-eslint/no-explicit-any */
8
+ /* eslint-disable func-names */
9
+ /* eslint-disable @typescript-eslint/unbound-method */
10
+ import { registerInitializationHook, runtimeService, } from '../di/index.js';
11
+ import { NotificationService } from './services/infrastructure/notification.service.js';
12
+ import { lspConnectionToken } from './tokens.js';
13
+ const lspServiceMetadataKey = '__languageServerServiceMetadata__';
14
+ const lspServiceConstructorMetadataKey = '__isLanguageServerService__';
15
+ /**
16
+ * Returns if the given instance is of a class decorated as a language server service.
17
+ */
18
+ export function isLanguageServerServiceInstance(instance) {
19
+ return typeof instance === 'object' && instance !== null && lspServiceMetadataKey in instance;
20
+ }
21
+ /**
22
+ * Returns if the given class is decorated as a language server service.
23
+ */
24
+ export function isLanguageServerServiceConstructor(target) {
25
+ return (lspServiceConstructorMetadataKey in target &&
26
+ target[lspServiceConstructorMetadataKey] === true);
27
+ }
28
+ /**
29
+ * Ensures that the given instance has language server service metadata.
30
+ */
31
+ function ensureLanguageServerServiceMetadata(instance) {
32
+ if (typeof instance !== 'object' || instance === null) {
33
+ throw new Error('Language server services must be class instances.');
34
+ }
35
+ const ctor = instance.constructor;
36
+ if (!isLanguageServerServiceConstructor(ctor)) {
37
+ throw new Error('@lspService() must decorate a class before using language server service decorators.');
38
+ }
39
+ if (isLanguageServerServiceInstance(instance)) {
40
+ return instance[lspServiceMetadataKey];
41
+ }
42
+ const metadata = {
43
+ commandHandlers: [],
44
+ disposables: [],
45
+ connectionHandlers: [],
46
+ initializerHandlers: [],
47
+ notificationHandlers: [],
48
+ textDocumentHandlers: [],
49
+ shutdownHandlers: [],
50
+ };
51
+ Object.defineProperty(instance, lspServiceMetadataKey, {
52
+ value: metadata,
53
+ writable: false,
54
+ configurable: false,
55
+ enumerable: false,
56
+ });
57
+ return metadata;
58
+ }
59
+ /**
60
+ * Gets the language server service metadata for the given instance.
61
+ */
62
+ export function getLanguageServerServiceMetadata(instance) {
63
+ if (!isLanguageServerServiceInstance(instance)) {
64
+ return undefined;
65
+ }
66
+ return instance[lspServiceMetadataKey];
67
+ }
68
+ /**
69
+ * Registers a notification handler for the given metadata.
70
+ */
71
+ function registerNotificationHandler(manager, descriptor) {
72
+ const notificationType = descriptor.type;
73
+ if (typeof notificationType === 'undefined') {
74
+ return manager.on(descriptor.handler);
75
+ }
76
+ return manager.on(notificationType, descriptor.handler);
77
+ }
78
+ /**
79
+ * Registers notification handlers for the given metadata.
80
+ */
81
+ function registerNotificationHandlers(metadata, resolve) {
82
+ if (metadata.notificationHandlers.length === 0) {
83
+ return;
84
+ }
85
+ const manager = resolve(NotificationService);
86
+ for (const descriptor of metadata.notificationHandlers) {
87
+ const disposable = registerNotificationHandler(manager, descriptor);
88
+ metadata.disposables.push(disposable);
89
+ }
90
+ }
91
+ /**
92
+ * Registers a connection handler for the given metadata.
93
+ */
94
+ function registerConnectionHandler(connection, descriptor) {
95
+ switch (descriptor.kind) {
96
+ case 'completion':
97
+ return connection.onCompletion((params, _token, _workDone, _resultProgress) => descriptor.handler(params));
98
+ case 'codeAction':
99
+ return connection.onCodeAction((params, _token, _workDone, _resultProgress) => descriptor.handler(params));
100
+ case 'documentFormatting':
101
+ return connection.onDocumentFormatting((params, _token, _workDone, _resultProgress) => descriptor.handler(params));
102
+ default: {
103
+ const neverDescriptor = descriptor;
104
+ throw new Error(`Unsupported connection handler kind: ${String(neverDescriptor)}`);
105
+ }
106
+ }
107
+ }
108
+ /**
109
+ * Registers connection handlers for the given metadata.
110
+ */
111
+ function registerConnectionHandlers(metadata, resolve) {
112
+ if (metadata.connectionHandlers.length === 0) {
113
+ return;
114
+ }
115
+ const connection = resolve(lspConnectionToken);
116
+ for (const descriptor of metadata.connectionHandlers) {
117
+ const disposable = registerConnectionHandler(connection, descriptor);
118
+ metadata.disposables.push(disposable);
119
+ }
120
+ }
121
+ /**
122
+ * Decorates a class as being a service that participates in the language server
123
+ * lifecycle.
124
+ */
125
+ export function lspService() {
126
+ const runtimeServiceDecorator = runtimeService();
127
+ return (target, context) => {
128
+ const { kind } = context;
129
+ if (kind !== 'class') {
130
+ throw new Error('@lspService() can only be used on a class.');
131
+ }
132
+ const ctor = target;
133
+ runtimeServiceDecorator(target, context);
134
+ Object.defineProperty(ctor, lspServiceConstructorMetadataKey, {
135
+ value: true,
136
+ writable: false,
137
+ configurable: false,
138
+ enumerable: false,
139
+ });
140
+ registerInitializationHook(ctor, ({ instance, resolve }) => {
141
+ const metadata = ensureLanguageServerServiceMetadata(instance);
142
+ registerNotificationHandlers(metadata, resolve);
143
+ registerConnectionHandlers(metadata, resolve);
144
+ });
145
+ };
146
+ }
147
+ /**
148
+ * Decorator to mark a method as a handler for a specific command ID.
149
+ * @param commandId The command ID to handle.
150
+ */
151
+ export function command(commandId, options = {}) {
152
+ return (target, { kind, name, addInitializer }) => {
153
+ if (kind !== 'method') {
154
+ throw new Error('@command(...) can only be used on a method.');
155
+ }
156
+ addInitializer(function () {
157
+ const instanceMetadata = ensureLanguageServerServiceMetadata(this);
158
+ const bound = target.bind(this);
159
+ instanceMetadata.commandHandlers.push({
160
+ commandId,
161
+ methodName: name ?? target.name,
162
+ handler: bound,
163
+ options,
164
+ });
165
+ });
166
+ };
167
+ }
168
+ /**
169
+ * Decorator to mark a method as an initialization handler.
170
+ */
171
+ export function initialize() {
172
+ // Function type used to match decorator signature.
173
+ return (target, { kind, addInitializer }) => {
174
+ if (kind !== 'method') {
175
+ throw new Error('@initialize() can only be used on a method.');
176
+ }
177
+ addInitializer(function () {
178
+ const instanceMetadata = ensureLanguageServerServiceMetadata(this);
179
+ const bound = target.bind(this);
180
+ instanceMetadata.initializerHandlers.push(bound);
181
+ });
182
+ };
183
+ }
184
+ /**
185
+ *
186
+ */
187
+ export function textDocumentEvent(event) {
188
+ return (target, { kind, addInitializer }) => {
189
+ if (kind !== 'method') {
190
+ throw new Error('@textDocumentEvent(...) can only be used on a method.');
191
+ }
192
+ addInitializer(function () {
193
+ const instanceMetadata = ensureLanguageServerServiceMetadata(this);
194
+ const bound = target.bind(this);
195
+ instanceMetadata.textDocumentHandlers.push({
196
+ event,
197
+ handler: bound,
198
+ });
199
+ });
200
+ };
201
+ }
202
+ /**
203
+ *
204
+ */
205
+ export function notification(type) {
206
+ return (target, { kind, addInitializer }) => {
207
+ if (kind !== 'method') {
208
+ throw new Error('@notification(...) can only be used on a method.');
209
+ }
210
+ addInitializer(function () {
211
+ const instanceMetadata = ensureLanguageServerServiceMetadata(this);
212
+ const bound = target.bind(this);
213
+ instanceMetadata.notificationHandlers.push({
214
+ type,
215
+ handler: bound,
216
+ });
217
+ });
218
+ };
219
+ }
220
+ /**
221
+ * Creates a connection handler decorator for a specific kind of connection.
222
+ */
223
+ function createConnectionHandlerDecorator(kind, decoratorName) {
224
+ return (target, { kind: decoratorKind, addInitializer }) => {
225
+ if (decoratorKind !== 'method') {
226
+ throw new Error(`${decoratorName} can only be used on a method.`);
227
+ }
228
+ addInitializer(function () {
229
+ const instanceMetadata = ensureLanguageServerServiceMetadata(this);
230
+ const bound = target.bind(this);
231
+ const descriptor = {
232
+ kind,
233
+ handler: bound,
234
+ };
235
+ instanceMetadata.connectionHandlers.push(descriptor);
236
+ });
237
+ };
238
+ }
239
+ /**
240
+ * Marks a method as a handler for a specific completion request.
241
+ */
242
+ export function completionRequest() {
243
+ return createConnectionHandlerDecorator('completion', '@completionRequest()');
244
+ }
245
+ /**
246
+ * Marks a method as a handler for a specific code action request.
247
+ */
248
+ export function codeActionRequest() {
249
+ return createConnectionHandlerDecorator('codeAction', '@codeActionRequest()');
250
+ }
251
+ /**
252
+ * Marks a method as a handler for a specific document formatting request.
253
+ */
254
+ export function documentFormattingRequest() {
255
+ return createConnectionHandlerDecorator('documentFormatting', '@documentFormattingRequest()');
256
+ }
257
+ /**
258
+ * Marks a method as a shutdown handler.
259
+ */
260
+ export function shutdown() {
261
+ return (target, { kind, addInitializer }) => {
262
+ if (kind !== 'method') {
263
+ throw new Error('@shutdown() can only be used on a method.');
264
+ }
265
+ addInitializer(function () {
266
+ const instanceMetadata = ensureLanguageServerServiceMetadata(this);
267
+ const bound = target.bind(this);
268
+ instanceMetadata.shutdownHandlers.push(bound);
269
+ });
270
+ };
271
+ }
272
+ //# sourceMappingURL=decorators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/server/decorators.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './server.js';
2
+ export * from './types.js';
@@ -0,0 +1,3 @@
1
+ export * from './server.js';
2
+ export * from './types.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const documentsModule: import("../../di/module.js").ModuleMetadata;
@@ -0,0 +1,12 @@
1
+ // @no-unit-test -- Module definition file that does not need unit tests.
2
+ import { module, provideValue } from '../../di/index.js';
3
+ import { DocumentDiagnosticsService, DocumentFixesService, getFixesFnToken, } from '../services/index.js';
4
+ import { getFixes } from '../utils/index.js';
5
+ export const documentsModule = module({
6
+ register: [
7
+ provideValue(getFixesFnToken, () => getFixes),
8
+ DocumentDiagnosticsService,
9
+ DocumentFixesService,
10
+ ],
11
+ });
12
+ //# sourceMappingURL=documents.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documents.module.js","sourceRoot":"","sources":["../../../src/server/modules/documents.module.ts"],"names":[],"mappings":"AAAA,yEAAyE;AAEzE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EACN,0BAA0B,EAC1B,oBAAoB,EACpB,eAAe,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;IACrC,QAAQ,EAAE;QACT,YAAY,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC;QAC7C,0BAA0B;QAC1B,oBAAoB;KACpB;CACD,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from './documents.module.js';
2
+ export * from './infrastructure.module.js';
3
+ export * from './lsp.module.js';
4
+ export * from './platform.module.js';
5
+ export * from './stylelint-runtime.module.js';
6
+ export * from './workspace.module.js';
@@ -0,0 +1,7 @@
1
+ export * from './documents.module.js';
2
+ export * from './infrastructure.module.js';
3
+ export * from './lsp.module.js';
4
+ export * from './platform.module.js';
5
+ export * from './stylelint-runtime.module.js';
6
+ export * from './workspace.module.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/modules/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const infrastructureModule: import("../../di/module.js").ModuleMetadata;
@@ -0,0 +1,7 @@
1
+ // @no-unit-test -- Module definition file that does not need unit tests.
2
+ import { module } from '../../di/index.js';
3
+ import { CommandService, NotificationService } from '../services/infrastructure/index.js';
4
+ export const infrastructureModule = module({
5
+ register: [CommandService, NotificationService],
6
+ });
7
+ //# sourceMappingURL=infrastructure.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"infrastructure.module.js","sourceRoot":"","sources":["../../../src/server/modules/infrastructure.module.ts"],"names":[],"mappings":"AAAA,yEAAyE;AAEzE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE1F,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC;IAC1C,QAAQ,EAAE,CAAC,cAAc,EAAE,mBAAmB,CAAC;CAC/C,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const lspModule: import("../../di/module.js").ModuleMetadata;
@@ -0,0 +1,18 @@
1
+ // @no-unit-test -- Module definition file that does not need unit tests.
2
+ import { module } from '../../di/index.js';
3
+ import { AutoFixService, CodeActionService, DisableRuleFileCodeActionService, DisableRuleLineCodeActionService, CompletionService, EmptyConfigWarningLspService, FormatterLspService, OldStylelintWarningLspService, ValidatorLspService, WorkspaceActivityLspService, } from '../services/lsp/index.js';
4
+ export const lspModule = module({
5
+ register: [
6
+ DisableRuleLineCodeActionService,
7
+ DisableRuleFileCodeActionService,
8
+ AutoFixService,
9
+ CodeActionService,
10
+ CompletionService,
11
+ EmptyConfigWarningLspService,
12
+ FormatterLspService,
13
+ OldStylelintWarningLspService,
14
+ ValidatorLspService,
15
+ WorkspaceActivityLspService,
16
+ ],
17
+ });
18
+ //# sourceMappingURL=lsp.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lsp.module.js","sourceRoot":"","sources":["../../../src/server/modules/lsp.module.ts"],"names":[],"mappings":"AAAA,yEAAyE;AAEzE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EACN,cAAc,EACd,iBAAiB,EACjB,gCAAgC,EAChC,gCAAgC,EAChC,iBAAiB,EACjB,4BAA4B,EAC5B,mBAAmB,EACnB,6BAA6B,EAC7B,mBAAmB,EACnB,2BAA2B,GAC3B,MAAM,0BAA0B,CAAC;AAElC,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC;IAC/B,QAAQ,EAAE;QACT,gCAAgC;QAChC,gCAAgC;QAChC,cAAc;QACd,iBAAiB;QACjB,iBAAiB;QACjB,4BAA4B;QAC5B,mBAAmB;QACnB,6BAA6B;QAC7B,mBAAmB;QACnB,2BAA2B;KAC3B;CACD,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Creates a new platform module.
3
+ */
4
+ export declare const platformModule: import("../../di/module.js").ModuleMetadata;
@@ -0,0 +1,33 @@
1
+ // @no-unit-test -- No logic, just DI module definition.
2
+ import * as childProcess from 'node:child_process';
3
+ import * as fsPromises from 'node:fs/promises';
4
+ import os from 'node:os';
5
+ import * as pathModule from 'node:path';
6
+ import * as readline from 'node:readline';
7
+ import pathIsInside from 'path-is-inside';
8
+ import { TextDocument } from 'vscode-languageserver-textdocument';
9
+ import { TextDocuments } from 'vscode-languageserver';
10
+ import { URI } from 'vscode-uri';
11
+ import { module, provideValue } from '../../di/index.js';
12
+ import { ChildProcessModuleToken, FsPromisesModuleToken, NormalizeFsPathToken, OsModuleToken, PathIsInsideToken, PathModuleToken, ReadlineModuleToken, UriModuleToken, textDocumentsToken, } from '../tokens.js';
13
+ import { normalizeFsPath } from '../utils/index.js';
14
+ /**
15
+ * Creates a new platform module.
16
+ */
17
+ export const platformModule = module({
18
+ register: [
19
+ // Node.js modules
20
+ provideValue(FsPromisesModuleToken, () => fsPromises),
21
+ provideValue(PathModuleToken, () => pathModule),
22
+ provideValue(OsModuleToken, () => os),
23
+ provideValue(ChildProcessModuleToken, () => childProcess),
24
+ provideValue(ReadlineModuleToken, () => readline),
25
+ // 3rd-party modules
26
+ provideValue(UriModuleToken, () => URI),
27
+ provideValue(PathIsInsideToken, () => pathIsInside),
28
+ provideValue(NormalizeFsPathToken, () => normalizeFsPath),
29
+ // Services and utilities
30
+ provideValue(textDocumentsToken, () => new TextDocuments(TextDocument)),
31
+ ],
32
+ });
33
+ //# sourceMappingURL=platform.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.module.js","sourceRoot":"","sources":["../../../src/server/modules/platform.module.ts"],"names":[],"mappings":"AAAA,wDAAwD;AAExD,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,KAAK,UAAU,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EACN,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,kBAAkB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC;IACpC,QAAQ,EAAE;QACT,kBAAkB;QAElB,YAAY,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC;QACrD,YAAY,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC;QAC/C,YAAY,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QACrC,YAAY,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC;QACzD,YAAY,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC;QAEjD,oBAAoB;QAEpB,YAAY,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;QACvC,YAAY,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC;QACnD,YAAY,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC;QAEzD,yBAAyB;QAEzB,YAAY,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC;KACvE;CACD,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const stylelintRuntimeModule: import("../../di/module.js").ModuleMetadata;
@@ -0,0 +1,19 @@
1
+ // @no-unit-test -- Module definition file that does not need unit tests.
2
+ import { module } from '../../di/index.js';
3
+ import { GlobalPathResolverService, PackageRootCacheService, PackageRootService, PnPConfigurationCacheService, ProcessRunnerService, StylelintOptionsService, StylelintRunnerService, WorkerProcessService, WorkerRegistryService, WorkspaceStylelintService, WorkerEnvironmentService, } from '../services/stylelint-runtime/index.js';
4
+ export const stylelintRuntimeModule = module({
5
+ register: [
6
+ ProcessRunnerService,
7
+ GlobalPathResolverService,
8
+ PackageRootService,
9
+ PackageRootCacheService,
10
+ PnPConfigurationCacheService,
11
+ WorkerProcessService,
12
+ WorkerRegistryService,
13
+ WorkspaceStylelintService,
14
+ StylelintOptionsService,
15
+ StylelintRunnerService,
16
+ WorkerEnvironmentService,
17
+ ],
18
+ });
19
+ //# sourceMappingURL=stylelint-runtime.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stylelint-runtime.module.js","sourceRoot":"","sources":["../../../src/server/modules/stylelint-runtime.module.ts"],"names":[],"mappings":"AAAA,yEAAyE;AAEzE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EACN,yBAAyB,EACzB,uBAAuB,EACvB,kBAAkB,EAClB,4BAA4B,EAC5B,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,GACxB,MAAM,wCAAwC,CAAC;AAEhD,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC;IAC5C,QAAQ,EAAE;QACT,oBAAoB;QACpB,yBAAyB;QACzB,kBAAkB;QAClB,uBAAuB;QACvB,4BAA4B;QAC5B,oBAAoB;QACpB,qBAAqB;QACrB,yBAAyB;QACzB,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;KACxB;CACD,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const workspaceModule: import("../../di/module.js").ModuleMetadata;
@@ -0,0 +1,7 @@
1
+ // @no-unit-test -- Module definition file that does not need unit tests.
2
+ import { module } from '../../di/index.js';
3
+ import { WorkspaceFolderService, WorkspaceOptionsService } from '../services/workspace/index.js';
4
+ export const workspaceModule = module({
5
+ register: [WorkspaceFolderService, WorkspaceOptionsService],
6
+ });
7
+ //# sourceMappingURL=workspace.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.module.js","sourceRoot":"","sources":["../../../src/server/modules/workspace.module.ts"],"names":[],"mappings":"AAAA,yEAAyE;AAEzE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAEjG,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;IACrC,QAAQ,EAAE,CAAC,sBAAsB,EAAE,uBAAuB,CAAC;CAC3D,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { Connection } from 'vscode-languageserver';
2
+ import type { InjectionToken } from '../../di/inject.js';
3
+ import type { ModuleMetadata } from '../../di/module.js';
4
+ import { createRuntimeApplication, type RuntimeApplication } from '../../di/runtime/index.js';
5
+ import { createLanguageServerFeature } from './language-server-feature.js';
6
+ export interface LanguageServerApplicationFactories {
7
+ createRuntimeApplication?: typeof createRuntimeApplication;
8
+ createLanguageServerFeature?: typeof createLanguageServerFeature;
9
+ }
10
+ export interface LanguageServerApplicationOptions {
11
+ connection: Connection;
12
+ modules: ModuleMetadata[];
13
+ overrides?: Iterable<[InjectionToken<unknown>, unknown]>;
14
+ factories?: LanguageServerApplicationFactories;
15
+ }
16
+ /**
17
+ * Creates the runtime application responsible for hosting the language server services.
18
+ */
19
+ export declare function createLanguageServerApplication(options: LanguageServerApplicationOptions): RuntimeApplication;
@@ -0,0 +1,22 @@
1
+ import { createRuntimeApplication } from '../../di/runtime/index.js';
2
+ import { lspConnectionToken } from '../tokens.js';
3
+ import { createLanguageServerFeature } from './language-server-feature.js';
4
+ /**
5
+ * Creates the runtime application responsible for hosting the language server services.
6
+ */
7
+ export function createLanguageServerApplication(options) {
8
+ const overrides = new Map(options.overrides ?? []);
9
+ const runtimeFactory = options.factories?.createRuntimeApplication ?? createRuntimeApplication;
10
+ const featureFactory = options.factories?.createLanguageServerFeature ?? createLanguageServerFeature;
11
+ overrides.set(lspConnectionToken, options.connection);
12
+ const application = runtimeFactory({
13
+ modules: options.modules,
14
+ overrides,
15
+ features: [featureFactory({ connection: options.connection })],
16
+ });
17
+ options.connection.onShutdown(() => {
18
+ void application.dispose();
19
+ });
20
+ return application;
21
+ }
22
+ //# sourceMappingURL=application.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application.js","sourceRoot":"","sources":["../../../src/server/runtime/application.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAA2B,MAAM,2BAA2B,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAc3E;;GAEG;AACH,MAAM,UAAU,+BAA+B,CAC9C,OAAyC;IAEzC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,EAAE,wBAAwB,IAAI,wBAAwB,CAAC;IAC/F,MAAM,cAAc,GACnB,OAAO,CAAC,SAAS,EAAE,2BAA2B,IAAI,2BAA2B,CAAC;IAE/E,SAAS,CAAC,GAAG,CAAC,kBAAkB,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAEtD,MAAM,WAAW,GAAG,cAAc,CAAC;QAClC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,SAAS;QACT,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;KAC9D,CAAC,CAAC;IAEH,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE;QAClC,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,OAAO,WAAW,CAAC;AACpB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { Connection } from 'vscode-languageserver';
2
+ import type { RuntimeFeature } from '../../di/index.js';
3
+ import { CommandService } from '../services/index.js';
4
+ import { LanguageServerServiceRuntime, type LanguageServerServiceRuntimeOptions } from './lsp-service-runtime.js';
5
+ export interface LanguageServerFeatureOptions {
6
+ connection: Connection;
7
+ runtimeFactory?: LanguageServerServiceRuntimeFactory;
8
+ }
9
+ export type LanguageServerServiceRuntimeFactory = (commandService: CommandService, options: LanguageServerServiceRuntimeOptions) => LanguageServerServiceRuntime;
10
+ /**
11
+ * Creates a runtime feature that wires the language server to the shared runtime.
12
+ */
13
+ export declare function createLanguageServerFeature(options: LanguageServerFeatureOptions): RuntimeFeature;