@platformos/platformos-language-server-common 0.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 (711) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +87 -0
  3. package/dist/ClientCapabilities.d.ts +14 -0
  4. package/dist/ClientCapabilities.js +52 -0
  5. package/dist/ClientCapabilities.js.map +1 -0
  6. package/dist/PropertyShapeInference.d.ts +57 -0
  7. package/dist/PropertyShapeInference.js +336 -0
  8. package/dist/PropertyShapeInference.js.map +1 -0
  9. package/dist/TypeSystem.d.ts +94 -0
  10. package/dist/TypeSystem.js +1481 -0
  11. package/dist/TypeSystem.js.map +1 -0
  12. package/dist/VariableShapeExtractor.d.ts +14 -0
  13. package/dist/VariableShapeExtractor.js +283 -0
  14. package/dist/VariableShapeExtractor.js.map +1 -0
  15. package/dist/codeActions/BaseCodeActionsProvider.d.ts +11 -0
  16. package/dist/codeActions/BaseCodeActionsProvider.js +14 -0
  17. package/dist/codeActions/BaseCodeActionsProvider.js.map +1 -0
  18. package/dist/codeActions/CodeActionsProvider.d.ts +9 -0
  19. package/dist/codeActions/CodeActionsProvider.js +22 -0
  20. package/dist/codeActions/CodeActionsProvider.js.map +1 -0
  21. package/dist/codeActions/index.d.ts +1 -0
  22. package/dist/codeActions/index.js +7 -0
  23. package/dist/codeActions/index.js.map +1 -0
  24. package/dist/codeActions/providers/FixAllProvider.d.ts +23 -0
  25. package/dist/codeActions/providers/FixAllProvider.js +52 -0
  26. package/dist/codeActions/providers/FixAllProvider.js.map +1 -0
  27. package/dist/codeActions/providers/FixProvider.d.ts +6 -0
  28. package/dist/codeActions/providers/FixProvider.js +72 -0
  29. package/dist/codeActions/providers/FixProvider.js.map +1 -0
  30. package/dist/codeActions/providers/GenerateDocBlockProvider.d.ts +10 -0
  31. package/dist/codeActions/providers/GenerateDocBlockProvider.js +39 -0
  32. package/dist/codeActions/providers/GenerateDocBlockProvider.js.map +1 -0
  33. package/dist/codeActions/providers/SuggestionProvider.d.ts +6 -0
  34. package/dist/codeActions/providers/SuggestionProvider.js +41 -0
  35. package/dist/codeActions/providers/SuggestionProvider.js.map +1 -0
  36. package/dist/codeActions/providers/index.d.ts +3 -0
  37. package/dist/codeActions/providers/index.js +10 -0
  38. package/dist/codeActions/providers/index.js.map +1 -0
  39. package/dist/codeActions/providers/utils.d.ts +20 -0
  40. package/dist/codeActions/providers/utils.js +29 -0
  41. package/dist/codeActions/providers/utils.js.map +1 -0
  42. package/dist/commands/BaseExecuteCommandProvider.d.ts +13 -0
  43. package/dist/commands/BaseExecuteCommandProvider.js +13 -0
  44. package/dist/commands/BaseExecuteCommandProvider.js.map +1 -0
  45. package/dist/commands/ExecuteCommandProvider.d.ts +11 -0
  46. package/dist/commands/ExecuteCommandProvider.js +30 -0
  47. package/dist/commands/ExecuteCommandProvider.js.map +1 -0
  48. package/dist/commands/index.d.ts +2 -0
  49. package/dist/commands/index.js +9 -0
  50. package/dist/commands/index.js.map +1 -0
  51. package/dist/commands/providers/ApplyFixesProvider.d.ts +19 -0
  52. package/dist/commands/providers/ApplyFixesProvider.js +69 -0
  53. package/dist/commands/providers/ApplyFixesProvider.js.map +1 -0
  54. package/dist/commands/providers/ApplySuggestionProvider.d.ts +19 -0
  55. package/dist/commands/providers/ApplySuggestionProvider.js +73 -0
  56. package/dist/commands/providers/ApplySuggestionProvider.js.map +1 -0
  57. package/dist/commands/providers/GenerateDocBlockCommandProvider.d.ts +19 -0
  58. package/dist/commands/providers/GenerateDocBlockCommandProvider.js +64 -0
  59. package/dist/commands/providers/GenerateDocBlockCommandProvider.js.map +1 -0
  60. package/dist/commands/providers/RunChecksProvider.d.ts +26 -0
  61. package/dist/commands/providers/RunChecksProvider.js +32 -0
  62. package/dist/commands/providers/RunChecksProvider.js.map +1 -0
  63. package/dist/commands/providers/index.d.ts +3 -0
  64. package/dist/commands/providers/index.js +12 -0
  65. package/dist/commands/providers/index.js.map +1 -0
  66. package/dist/completions/CompletionsProvider.d.ts +35 -0
  67. package/dist/completions/CompletionsProvider.js +55 -0
  68. package/dist/completions/CompletionsProvider.js.map +1 -0
  69. package/dist/completions/index.d.ts +1 -0
  70. package/dist/completions/index.js +6 -0
  71. package/dist/completions/index.js.map +1 -0
  72. package/dist/completions/params/LiquidCompletionParams.d.ts +24 -0
  73. package/dist/completions/params/LiquidCompletionParams.js +436 -0
  74. package/dist/completions/params/LiquidCompletionParams.js.map +1 -0
  75. package/dist/completions/params/fix.d.ts +11 -0
  76. package/dist/completions/params/fix.js +238 -0
  77. package/dist/completions/params/fix.js.map +1 -0
  78. package/dist/completions/params/index.d.ts +2 -0
  79. package/dist/completions/params/index.js +8 -0
  80. package/dist/completions/params/index.js.map +1 -0
  81. package/dist/completions/providers/ContentForBlockTypeCompletionProvider.d.ts +8 -0
  82. package/dist/completions/providers/ContentForBlockTypeCompletionProvider.js +36 -0
  83. package/dist/completions/providers/ContentForBlockTypeCompletionProvider.js.map +1 -0
  84. package/dist/completions/providers/ContentForCompletionProvider.d.ts +7 -0
  85. package/dist/completions/providers/ContentForCompletionProvider.js +87 -0
  86. package/dist/completions/providers/ContentForCompletionProvider.js.map +1 -0
  87. package/dist/completions/providers/ContentForParameterCompletionProvider.d.ts +23 -0
  88. package/dist/completions/providers/ContentForParameterCompletionProvider.js +127 -0
  89. package/dist/completions/providers/ContentForParameterCompletionProvider.js.map +1 -0
  90. package/dist/completions/providers/FilterCompletionProvider.d.ts +21 -0
  91. package/dist/completions/providers/FilterCompletionProvider.js +162 -0
  92. package/dist/completions/providers/FilterCompletionProvider.js.map +1 -0
  93. package/dist/completions/providers/FilterNamedParameterCompletionProvider.d.ts +15 -0
  94. package/dist/completions/providers/FilterNamedParameterCompletionProvider.js +86 -0
  95. package/dist/completions/providers/FilterNamedParameterCompletionProvider.js.map +1 -0
  96. package/dist/completions/providers/HtmlAttributeCompletionProvider.d.ts +13 -0
  97. package/dist/completions/providers/HtmlAttributeCompletionProvider.js +83 -0
  98. package/dist/completions/providers/HtmlAttributeCompletionProvider.js.map +1 -0
  99. package/dist/completions/providers/HtmlAttributeValueCompletionProvider.d.ts +7 -0
  100. package/dist/completions/providers/HtmlAttributeValueCompletionProvider.js +53 -0
  101. package/dist/completions/providers/HtmlAttributeValueCompletionProvider.js.map +1 -0
  102. package/dist/completions/providers/HtmlTagCompletionProvider.d.ts +7 -0
  103. package/dist/completions/providers/HtmlTagCompletionProvider.js +90 -0
  104. package/dist/completions/providers/HtmlTagCompletionProvider.js.map +1 -0
  105. package/dist/completions/providers/LiquidDocParamTypeCompletionProvider.d.ts +9 -0
  106. package/dist/completions/providers/LiquidDocParamTypeCompletionProvider.js +56 -0
  107. package/dist/completions/providers/LiquidDocParamTypeCompletionProvider.js.map +1 -0
  108. package/dist/completions/providers/LiquidDocTagCompletionProvider.d.ts +8 -0
  109. package/dist/completions/providers/LiquidDocTagCompletionProvider.js +62 -0
  110. package/dist/completions/providers/LiquidDocTagCompletionProvider.js.map +1 -0
  111. package/dist/completions/providers/LiquidTagsCompletionProvider.d.ts +9 -0
  112. package/dist/completions/providers/LiquidTagsCompletionProvider.js +367 -0
  113. package/dist/completions/providers/LiquidTagsCompletionProvider.js.map +1 -0
  114. package/dist/completions/providers/ObjectAttributeCompletionProvider.d.ts +9 -0
  115. package/dist/completions/providers/ObjectAttributeCompletionProvider.js +71 -0
  116. package/dist/completions/providers/ObjectAttributeCompletionProvider.js.map +1 -0
  117. package/dist/completions/providers/ObjectCompletionProvider.d.ts +9 -0
  118. package/dist/completions/providers/ObjectCompletionProvider.js +35 -0
  119. package/dist/completions/providers/ObjectCompletionProvider.js.map +1 -0
  120. package/dist/completions/providers/PartialCompletionProvider.d.ts +9 -0
  121. package/dist/completions/providers/PartialCompletionProvider.js +34 -0
  122. package/dist/completions/providers/PartialCompletionProvider.js.map +1 -0
  123. package/dist/completions/providers/RenderPartialParameterCompletionProvider.d.ts +10 -0
  124. package/dist/completions/providers/RenderPartialParameterCompletionProvider.js +55 -0
  125. package/dist/completions/providers/RenderPartialParameterCompletionProvider.js.map +1 -0
  126. package/dist/completions/providers/TranslationCompletionProvider.d.ts +11 -0
  127. package/dist/completions/providers/TranslationCompletionProvider.js +78 -0
  128. package/dist/completions/providers/TranslationCompletionProvider.js.map +1 -0
  129. package/dist/completions/providers/common/CompletionItemProperties.d.ts +7 -0
  130. package/dist/completions/providers/common/CompletionItemProperties.js +52 -0
  131. package/dist/completions/providers/common/CompletionItemProperties.js.map +1 -0
  132. package/dist/completions/providers/common/Provider.d.ts +5 -0
  133. package/dist/completions/providers/common/Provider.js +3 -0
  134. package/dist/completions/providers/common/Provider.js.map +1 -0
  135. package/dist/completions/providers/common/index.d.ts +7 -0
  136. package/dist/completions/providers/common/index.js +17 -0
  137. package/dist/completions/providers/common/index.js.map +1 -0
  138. package/dist/completions/providers/data/contentForParameterCompletionOptions.d.ts +7 -0
  139. package/dist/completions/providers/data/contentForParameterCompletionOptions.js +13 -0
  140. package/dist/completions/providers/data/contentForParameterCompletionOptions.js.map +1 -0
  141. package/dist/completions/providers/index.d.ts +17 -0
  142. package/dist/completions/providers/index.js +36 -0
  143. package/dist/completions/providers/index.js.map +1 -0
  144. package/dist/css/CSSLanguageService.d.ts +12 -0
  145. package/dist/css/CSSLanguageService.js +94 -0
  146. package/dist/css/CSSLanguageService.js.map +1 -0
  147. package/dist/css/test/test-helpers.d.ts +4 -0
  148. package/dist/css/test/test-helpers.js +19 -0
  149. package/dist/css/test/test-helpers.js.map +1 -0
  150. package/dist/definitions/BaseDefinitionProvider.d.ts +5 -0
  151. package/dist/definitions/BaseDefinitionProvider.js +3 -0
  152. package/dist/definitions/BaseDefinitionProvider.js.map +1 -0
  153. package/dist/definitions/DefinitionProvider.d.ts +8 -0
  154. package/dist/definitions/DefinitionProvider.js +29 -0
  155. package/dist/definitions/DefinitionProvider.js.map +1 -0
  156. package/dist/definitions/providers/SchemaTranslationStringDefinitionProvider.d.ts +10 -0
  157. package/dist/definitions/providers/SchemaTranslationStringDefinitionProvider.js +55 -0
  158. package/dist/definitions/providers/SchemaTranslationStringDefinitionProvider.js.map +1 -0
  159. package/dist/definitions/providers/TranslationStringDefinitionProvider.d.ts +10 -0
  160. package/dist/definitions/providers/TranslationStringDefinitionProvider.js +48 -0
  161. package/dist/definitions/providers/TranslationStringDefinitionProvider.js.map +1 -0
  162. package/dist/diagnostics/DiagnosticsManager.d.ts +24 -0
  163. package/dist/diagnostics/DiagnosticsManager.js +40 -0
  164. package/dist/diagnostics/DiagnosticsManager.js.map +1 -0
  165. package/dist/diagnostics/index.d.ts +2 -0
  166. package/dist/diagnostics/index.js +8 -0
  167. package/dist/diagnostics/index.js.map +1 -0
  168. package/dist/diagnostics/offenseToDiagnostic.d.ts +4 -0
  169. package/dist/diagnostics/offenseToDiagnostic.js +68 -0
  170. package/dist/diagnostics/offenseToDiagnostic.js.map +1 -0
  171. package/dist/diagnostics/runChecks.d.ts +9 -0
  172. package/dist/diagnostics/runChecks.js +103 -0
  173. package/dist/diagnostics/runChecks.js.map +1 -0
  174. package/dist/docset/HtmlDocset.d.ts +35 -0
  175. package/dist/docset/HtmlDocset.js +39 -0
  176. package/dist/docset/HtmlDocset.js.map +1 -0
  177. package/dist/docset/MarkdownRenderer.d.ts +7 -0
  178. package/dist/docset/MarkdownRenderer.js +125 -0
  179. package/dist/docset/MarkdownRenderer.js.map +1 -0
  180. package/dist/docset/index.d.ts +2 -0
  181. package/dist/docset/index.js +22 -0
  182. package/dist/docset/index.js.map +1 -0
  183. package/dist/documentHighlights/BaseDocumentHighlightsProvider.d.ts +5 -0
  184. package/dist/documentHighlights/BaseDocumentHighlightsProvider.js +3 -0
  185. package/dist/documentHighlights/BaseDocumentHighlightsProvider.js.map +1 -0
  186. package/dist/documentHighlights/DocumentHighlightsProvider.d.ts +22 -0
  187. package/dist/documentHighlights/DocumentHighlightsProvider.js +41 -0
  188. package/dist/documentHighlights/DocumentHighlightsProvider.js.map +1 -0
  189. package/dist/documentHighlights/index.d.ts +1 -0
  190. package/dist/documentHighlights/index.js +7 -0
  191. package/dist/documentHighlights/index.js.map +1 -0
  192. package/dist/documentHighlights/providers/HtmlTagNameDocumentHighlightsProvider.d.ts +11 -0
  193. package/dist/documentHighlights/providers/HtmlTagNameDocumentHighlightsProvider.js +20 -0
  194. package/dist/documentHighlights/providers/HtmlTagNameDocumentHighlightsProvider.js.map +1 -0
  195. package/dist/documentHighlights/providers/LiquidBlockTagDocumentHighlightsProvider.d.ts +11 -0
  196. package/dist/documentHighlights/providers/LiquidBlockTagDocumentHighlightsProvider.js +48 -0
  197. package/dist/documentHighlights/providers/LiquidBlockTagDocumentHighlightsProvider.js.map +1 -0
  198. package/dist/documentHighlights/providers/index.d.ts +2 -0
  199. package/dist/documentHighlights/providers/index.js +8 -0
  200. package/dist/documentHighlights/providers/index.js.map +1 -0
  201. package/dist/documentLinks/DocumentLinksProvider.d.ts +12 -0
  202. package/dist/documentLinks/DocumentLinksProvider.js +78 -0
  203. package/dist/documentLinks/DocumentLinksProvider.js.map +1 -0
  204. package/dist/documentLinks/index.d.ts +1 -0
  205. package/dist/documentLinks/index.js +6 -0
  206. package/dist/documentLinks/index.js.map +1 -0
  207. package/dist/documents/DocumentManager.d.ts +60 -0
  208. package/dist/documents/DocumentManager.js +167 -0
  209. package/dist/documents/DocumentManager.js.map +1 -0
  210. package/dist/documents/index.d.ts +2 -0
  211. package/dist/documents/index.js +21 -0
  212. package/dist/documents/index.js.map +1 -0
  213. package/dist/documents/types.d.ts +39 -0
  214. package/dist/documents/types.js +11 -0
  215. package/dist/documents/types.js.map +1 -0
  216. package/dist/formatting/OnTypeFormattingProvider.d.ts +10 -0
  217. package/dist/formatting/OnTypeFormattingProvider.js +24 -0
  218. package/dist/formatting/OnTypeFormattingProvider.js.map +1 -0
  219. package/dist/formatting/index.d.ts +1 -0
  220. package/dist/formatting/index.js +6 -0
  221. package/dist/formatting/index.js.map +1 -0
  222. package/dist/formatting/providers/BracketsAutoclosingOnTypeFormattingProvider.d.ts +49 -0
  223. package/dist/formatting/providers/BracketsAutoclosingOnTypeFormattingProvider.js +105 -0
  224. package/dist/formatting/providers/BracketsAutoclosingOnTypeFormattingProvider.js.map +1 -0
  225. package/dist/formatting/providers/HtmlElementAutoclosingOnTypeFormattingProvider.d.ts +41 -0
  226. package/dist/formatting/providers/HtmlElementAutoclosingOnTypeFormattingProvider.js +105 -0
  227. package/dist/formatting/providers/HtmlElementAutoclosingOnTypeFormattingProvider.js.map +1 -0
  228. package/dist/formatting/types.d.ts +7 -0
  229. package/dist/formatting/types.js +3 -0
  230. package/dist/formatting/types.js.map +1 -0
  231. package/dist/hover/BaseHoverProvider.d.ts +5 -0
  232. package/dist/hover/BaseHoverProvider.js +3 -0
  233. package/dist/hover/BaseHoverProvider.js.map +1 -0
  234. package/dist/hover/HoverProvider.d.ts +20 -0
  235. package/dist/hover/HoverProvider.js +55 -0
  236. package/dist/hover/HoverProvider.js.map +1 -0
  237. package/dist/hover/index.d.ts +1 -0
  238. package/dist/hover/index.js +6 -0
  239. package/dist/hover/index.js.map +1 -0
  240. package/dist/hover/providers/ContentForArgumentHoverProvider.d.ts +8 -0
  241. package/dist/hover/providers/ContentForArgumentHoverProvider.js +37 -0
  242. package/dist/hover/providers/ContentForArgumentHoverProvider.js.map +1 -0
  243. package/dist/hover/providers/ContentForTypeHoverProvider.d.ts +8 -0
  244. package/dist/hover/providers/ContentForTypeHoverProvider.js +32 -0
  245. package/dist/hover/providers/ContentForTypeHoverProvider.js.map +1 -0
  246. package/dist/hover/providers/HtmlAttributeHoverProvider.d.ts +6 -0
  247. package/dist/hover/providers/HtmlAttributeHoverProvider.js +37 -0
  248. package/dist/hover/providers/HtmlAttributeHoverProvider.js.map +1 -0
  249. package/dist/hover/providers/HtmlAttributeValueHoverProvider.d.ts +6 -0
  250. package/dist/hover/providers/HtmlAttributeValueHoverProvider.js +42 -0
  251. package/dist/hover/providers/HtmlAttributeValueHoverProvider.js.map +1 -0
  252. package/dist/hover/providers/HtmlTagHoverProvider.d.ts +6 -0
  253. package/dist/hover/providers/HtmlTagHoverProvider.js +37 -0
  254. package/dist/hover/providers/HtmlTagHoverProvider.js.map +1 -0
  255. package/dist/hover/providers/LiquidDocTagHoverProvider.d.ts +9 -0
  256. package/dist/hover/providers/LiquidDocTagHoverProvider.js +42 -0
  257. package/dist/hover/providers/LiquidDocTagHoverProvider.js.map +1 -0
  258. package/dist/hover/providers/LiquidFilterArgumentHoverProvider.d.ts +8 -0
  259. package/dist/hover/providers/LiquidFilterArgumentHoverProvider.js +36 -0
  260. package/dist/hover/providers/LiquidFilterArgumentHoverProvider.js.map +1 -0
  261. package/dist/hover/providers/LiquidFilterHoverProvider.d.ts +8 -0
  262. package/dist/hover/providers/LiquidFilterHoverProvider.js +29 -0
  263. package/dist/hover/providers/LiquidFilterHoverProvider.js.map +1 -0
  264. package/dist/hover/providers/LiquidObjectAttributeHoverProvider.d.ts +9 -0
  265. package/dist/hover/providers/LiquidObjectAttributeHoverProvider.js +113 -0
  266. package/dist/hover/providers/LiquidObjectAttributeHoverProvider.js.map +1 -0
  267. package/dist/hover/providers/LiquidObjectHoverProvider.d.ts +9 -0
  268. package/dist/hover/providers/LiquidObjectHoverProvider.js +72 -0
  269. package/dist/hover/providers/LiquidObjectHoverProvider.js.map +1 -0
  270. package/dist/hover/providers/LiquidTagHoverProvider.d.ts +8 -0
  271. package/dist/hover/providers/LiquidTagHoverProvider.js +31 -0
  272. package/dist/hover/providers/LiquidTagHoverProvider.js.map +1 -0
  273. package/dist/hover/providers/RenderPartialHoverProvider.d.ts +8 -0
  274. package/dist/hover/providers/RenderPartialHoverProvider.js +28 -0
  275. package/dist/hover/providers/RenderPartialHoverProvider.js.map +1 -0
  276. package/dist/hover/providers/RenderPartialParameterHoverProvider.d.ts +8 -0
  277. package/dist/hover/providers/RenderPartialParameterHoverProvider.js +33 -0
  278. package/dist/hover/providers/RenderPartialParameterHoverProvider.js.map +1 -0
  279. package/dist/hover/providers/TranslationHoverProvider.d.ts +13 -0
  280. package/dist/hover/providers/TranslationHoverProvider.js +45 -0
  281. package/dist/hover/providers/TranslationHoverProvider.js.map +1 -0
  282. package/dist/hover/providers/index.d.ts +11 -0
  283. package/dist/hover/providers/index.js +26 -0
  284. package/dist/hover/providers/index.js.map +1 -0
  285. package/dist/index.d.ts +8 -0
  286. package/dist/index.js +33 -0
  287. package/dist/index.js.map +1 -0
  288. package/dist/internal-types.d.ts +1 -0
  289. package/dist/internal-types.js +3 -0
  290. package/dist/internal-types.js.map +1 -0
  291. package/dist/json/JSONContributions.d.ts +25 -0
  292. package/dist/json/JSONContributions.js +99 -0
  293. package/dist/json/JSONContributions.js.map +1 -0
  294. package/dist/json/JSONLanguageService.d.ts +27 -0
  295. package/dist/json/JSONLanguageService.js +171 -0
  296. package/dist/json/JSONLanguageService.js.map +1 -0
  297. package/dist/json/RequestContext.d.ts +22 -0
  298. package/dist/json/RequestContext.js +14 -0
  299. package/dist/json/RequestContext.js.map +1 -0
  300. package/dist/json/completions/JSONCompletionProvider.d.ts +30 -0
  301. package/dist/json/completions/JSONCompletionProvider.js +3 -0
  302. package/dist/json/completions/JSONCompletionProvider.js.map +1 -0
  303. package/dist/json/completions/providers/BlockSettingsPropertyCompletionProvider.d.ts +44 -0
  304. package/dist/json/completions/providers/BlockSettingsPropertyCompletionProvider.js +98 -0
  305. package/dist/json/completions/providers/BlockSettingsPropertyCompletionProvider.js.map +1 -0
  306. package/dist/json/completions/providers/BlockTypeCompletionProvider.d.ts +35 -0
  307. package/dist/json/completions/providers/BlockTypeCompletionProvider.js +97 -0
  308. package/dist/json/completions/providers/BlockTypeCompletionProvider.js.map +1 -0
  309. package/dist/json/completions/providers/ReferencedBlockTypeCompletionProvider.d.ts +34 -0
  310. package/dist/json/completions/providers/ReferencedBlockTypeCompletionProvider.js +95 -0
  311. package/dist/json/completions/providers/ReferencedBlockTypeCompletionProvider.js.map +1 -0
  312. package/dist/json/completions/providers/SchemaTranslationCompletionProvider.d.ts +9 -0
  313. package/dist/json/completions/providers/SchemaTranslationCompletionProvider.js +46 -0
  314. package/dist/json/completions/providers/SchemaTranslationCompletionProvider.js.map +1 -0
  315. package/dist/json/completions/providers/SettingsPropertyCompletionProvider.d.ts +33 -0
  316. package/dist/json/completions/providers/SettingsPropertyCompletionProvider.js +64 -0
  317. package/dist/json/completions/providers/SettingsPropertyCompletionProvider.js.map +1 -0
  318. package/dist/json/documentLinks/DocumentLinksProvider.d.ts +6 -0
  319. package/dist/json/documentLinks/DocumentLinksProvider.js +45 -0
  320. package/dist/json/documentLinks/DocumentLinksProvider.js.map +1 -0
  321. package/dist/json/hover/JSONHoverProvider.d.ts +7 -0
  322. package/dist/json/hover/JSONHoverProvider.js +3 -0
  323. package/dist/json/hover/JSONHoverProvider.js.map +1 -0
  324. package/dist/json/hover/providers/BlockSettingsHoverProvider.d.ts +12 -0
  325. package/dist/json/hover/providers/BlockSettingsHoverProvider.js +75 -0
  326. package/dist/json/hover/providers/BlockSettingsHoverProvider.js.map +1 -0
  327. package/dist/json/hover/providers/SchemaTranslationHoverProvider.d.ts +10 -0
  328. package/dist/json/hover/providers/SchemaTranslationHoverProvider.js +36 -0
  329. package/dist/json/hover/providers/SchemaTranslationHoverProvider.js.map +1 -0
  330. package/dist/json/hover/providers/SettingsHoverProvider.d.ts +10 -0
  331. package/dist/json/hover/providers/SettingsHoverProvider.js +62 -0
  332. package/dist/json/hover/providers/SettingsHoverProvider.js.map +1 -0
  333. package/dist/json/hover/providers/TranslationPathHoverProvider.d.ts +9 -0
  334. package/dist/json/hover/providers/TranslationPathHoverProvider.js +65 -0
  335. package/dist/json/hover/providers/TranslationPathHoverProvider.js.map +1 -0
  336. package/dist/json/schemaSettings.d.ts +4 -0
  337. package/dist/json/schemaSettings.js +45 -0
  338. package/dist/json/schemaSettings.js.map +1 -0
  339. package/dist/json/test/test-helpers.d.ts +8 -0
  340. package/dist/json/test/test-helpers.js +42 -0
  341. package/dist/json/test/test-helpers.js.map +1 -0
  342. package/dist/json/utils.d.ts +6 -0
  343. package/dist/json/utils.js +31 -0
  344. package/dist/json/utils.js.map +1 -0
  345. package/dist/linkedEditingRanges/BaseLinkedEditingRangesProvider.d.ts +5 -0
  346. package/dist/linkedEditingRanges/BaseLinkedEditingRangesProvider.js +3 -0
  347. package/dist/linkedEditingRanges/BaseLinkedEditingRangesProvider.js.map +1 -0
  348. package/dist/linkedEditingRanges/LinkedEditingRangesProvider.d.ts +8 -0
  349. package/dist/linkedEditingRanges/LinkedEditingRangesProvider.js +31 -0
  350. package/dist/linkedEditingRanges/LinkedEditingRangesProvider.js.map +1 -0
  351. package/dist/linkedEditingRanges/index.d.ts +1 -0
  352. package/dist/linkedEditingRanges/index.js +6 -0
  353. package/dist/linkedEditingRanges/index.js.map +1 -0
  354. package/dist/linkedEditingRanges/providers/EmptyHtmlTagLinkedRangesProvider.d.ts +9 -0
  355. package/dist/linkedEditingRanges/providers/EmptyHtmlTagLinkedRangesProvider.js +37 -0
  356. package/dist/linkedEditingRanges/providers/EmptyHtmlTagLinkedRangesProvider.js.map +1 -0
  357. package/dist/linkedEditingRanges/providers/HtmlTagNameLinkedRangesProvider.d.ts +12 -0
  358. package/dist/linkedEditingRanges/providers/HtmlTagNameLinkedRangesProvider.js +26 -0
  359. package/dist/linkedEditingRanges/providers/HtmlTagNameLinkedRangesProvider.js.map +1 -0
  360. package/dist/linkedEditingRanges/providers/index.d.ts +2 -0
  361. package/dist/linkedEditingRanges/providers/index.js +8 -0
  362. package/dist/linkedEditingRanges/providers/index.js.map +1 -0
  363. package/dist/linkedEditingRanges/wordPattern.d.ts +1 -0
  364. package/dist/linkedEditingRanges/wordPattern.js +7 -0
  365. package/dist/linkedEditingRanges/wordPattern.js.map +1 -0
  366. package/dist/plugins/css.d.ts +3 -0
  367. package/dist/plugins/css.js +12 -0
  368. package/dist/plugins/css.js.map +1 -0
  369. package/dist/progress.d.ts +42 -0
  370. package/dist/progress.js +74 -0
  371. package/dist/progress.js.map +1 -0
  372. package/dist/rename/BaseRenameProvider.d.ts +6 -0
  373. package/dist/rename/BaseRenameProvider.js +3 -0
  374. package/dist/rename/BaseRenameProvider.js.map +1 -0
  375. package/dist/rename/RenameProvider.d.ts +21 -0
  376. package/dist/rename/RenameProvider.js +58 -0
  377. package/dist/rename/RenameProvider.js.map +1 -0
  378. package/dist/rename/providers/HtmlTagNameRenameProvider.d.ts +10 -0
  379. package/dist/rename/providers/HtmlTagNameRenameProvider.js +39 -0
  380. package/dist/rename/providers/HtmlTagNameRenameProvider.js.map +1 -0
  381. package/dist/rename/providers/LiquidVariableRenameProvider.d.ts +16 -0
  382. package/dist/rename/providers/LiquidVariableRenameProvider.js +194 -0
  383. package/dist/rename/providers/LiquidVariableRenameProvider.js.map +1 -0
  384. package/dist/renamed/BaseRenameHandler.d.ts +4 -0
  385. package/dist/renamed/BaseRenameHandler.js +3 -0
  386. package/dist/renamed/BaseRenameHandler.js.map +1 -0
  387. package/dist/renamed/RenameHandler.d.ts +18 -0
  388. package/dist/renamed/RenameHandler.js +37 -0
  389. package/dist/renamed/RenameHandler.js.map +1 -0
  390. package/dist/renamed/handlers/AssetRenameHandler.d.ts +26 -0
  391. package/dist/renamed/handlers/AssetRenameHandler.js +99 -0
  392. package/dist/renamed/handlers/AssetRenameHandler.js.map +1 -0
  393. package/dist/renamed/handlers/BlockRenameHandler.d.ts +41 -0
  394. package/dist/renamed/handlers/BlockRenameHandler.js +304 -0
  395. package/dist/renamed/handlers/BlockRenameHandler.js.map +1 -0
  396. package/dist/renamed/handlers/PartialRenameHandler.d.ts +26 -0
  397. package/dist/renamed/handlers/PartialRenameHandler.js +99 -0
  398. package/dist/renamed/handlers/PartialRenameHandler.js.map +1 -0
  399. package/dist/renamed/handlers/SectionRenameHandler.d.ts +25 -0
  400. package/dist/renamed/handlers/SectionRenameHandler.js +176 -0
  401. package/dist/renamed/handlers/SectionRenameHandler.js.map +1 -0
  402. package/dist/renamed/handlers/utils.d.ts +3 -0
  403. package/dist/renamed/handlers/utils.js +20 -0
  404. package/dist/renamed/handlers/utils.js.map +1 -0
  405. package/dist/server/CachedFileSystem.d.ts +12 -0
  406. package/dist/server/CachedFileSystem.js +29 -0
  407. package/dist/server/CachedFileSystem.js.map +1 -0
  408. package/dist/server/Configuration.d.ts +25 -0
  409. package/dist/server/Configuration.js +77 -0
  410. package/dist/server/Configuration.js.map +1 -0
  411. package/dist/server/ThemeGraphManager.d.ts +35 -0
  412. package/dist/server/ThemeGraphManager.js +200 -0
  413. package/dist/server/ThemeGraphManager.js.map +1 -0
  414. package/dist/server/index.d.ts +1 -0
  415. package/dist/server/index.js +6 -0
  416. package/dist/server/index.js.map +1 -0
  417. package/dist/server/safe.d.ts +19 -0
  418. package/dist/server/safe.js +33 -0
  419. package/dist/server/safe.js.map +1 -0
  420. package/dist/server/startServer.d.ts +13 -0
  421. package/dist/server/startServer.js +598 -0
  422. package/dist/server/startServer.js.map +1 -0
  423. package/dist/settings/index.d.ts +29 -0
  424. package/dist/settings/index.js +11 -0
  425. package/dist/settings/index.js.map +1 -0
  426. package/dist/test/ApplyEditsAssertion.d.ts +14 -0
  427. package/dist/test/ApplyEditsAssertion.js +19 -0
  428. package/dist/test/ApplyEditsAssertion.js.map +1 -0
  429. package/dist/test/CompletionItemsAssertion.d.ts +25 -0
  430. package/dist/test/CompletionItemsAssertion.js +60 -0
  431. package/dist/test/CompletionItemsAssertion.js.map +1 -0
  432. package/dist/test/HoverAssertion.d.ts +16 -0
  433. package/dist/test/HoverAssertion.js +54 -0
  434. package/dist/test/HoverAssertion.js.map +1 -0
  435. package/dist/test/MockChecks.d.ts +2 -0
  436. package/dist/test/MockChecks.js +30 -0
  437. package/dist/test/MockChecks.js.map +1 -0
  438. package/dist/test/MockConnection.d.ts +44 -0
  439. package/dist/test/MockConnection.js +106 -0
  440. package/dist/test/MockConnection.js.map +1 -0
  441. package/dist/test/test-setup.d.ts +1 -0
  442. package/dist/test/test-setup.js +8 -0
  443. package/dist/test/test-setup.js.map +1 -0
  444. package/dist/translations.d.ts +19 -0
  445. package/dist/translations.js +73 -0
  446. package/dist/translations.js.map +1 -0
  447. package/dist/tsconfig.tsbuildinfo +1 -0
  448. package/dist/types.d.ts +149 -0
  449. package/dist/types.js +63 -0
  450. package/dist/types.js.map +1 -0
  451. package/dist/utils/array.d.ts +1 -0
  452. package/dist/utils/array.js +11 -0
  453. package/dist/utils/array.js.map +1 -0
  454. package/dist/utils/debounce.d.ts +37 -0
  455. package/dist/utils/debounce.js +44 -0
  456. package/dist/utils/debounce.js.map +1 -0
  457. package/dist/utils/htmlTagNames.d.ts +5 -0
  458. package/dist/utils/htmlTagNames.js +42 -0
  459. package/dist/utils/htmlTagNames.js.map +1 -0
  460. package/dist/utils/index.d.ts +5 -0
  461. package/dist/utils/index.js +26 -0
  462. package/dist/utils/index.js.map +1 -0
  463. package/dist/utils/isCovered.d.ts +4 -0
  464. package/dist/utils/isCovered.js +7 -0
  465. package/dist/utils/isCovered.js.map +1 -0
  466. package/dist/utils/liquidDoc.d.ts +22 -0
  467. package/dist/utils/liquidDoc.js +78 -0
  468. package/dist/utils/liquidDoc.js.map +1 -0
  469. package/dist/utils/node.d.ts +24 -0
  470. package/dist/utils/node.js +52 -0
  471. package/dist/utils/node.js.map +1 -0
  472. package/dist/utils/uri.d.ts +12 -0
  473. package/dist/utils/uri.js +30 -0
  474. package/dist/utils/uri.js.map +1 -0
  475. package/dist/version.d.ts +1 -0
  476. package/dist/version.js +9 -0
  477. package/dist/version.js.map +1 -0
  478. package/package.json +40 -0
  479. package/src/ClientCapabilities.ts +63 -0
  480. package/src/PropertyShapeInference.ts +394 -0
  481. package/src/TypeSystem.spec.ts +1150 -0
  482. package/src/TypeSystem.ts +1948 -0
  483. package/src/VariableShapeExtractor.ts +380 -0
  484. package/src/codeActions/BaseCodeActionsProvider.ts +18 -0
  485. package/src/codeActions/CodeActionsProvider.ts +28 -0
  486. package/src/codeActions/index.ts +1 -0
  487. package/src/codeActions/providers/FixAllProvider.spec.ts +115 -0
  488. package/src/codeActions/providers/FixAllProvider.ts +60 -0
  489. package/src/codeActions/providers/FixProvider.spec.ts +330 -0
  490. package/src/codeActions/providers/FixProvider.ts +105 -0
  491. package/src/codeActions/providers/SuggestionProvider.spec.ts +143 -0
  492. package/src/codeActions/providers/SuggestionProvider.ts +75 -0
  493. package/src/codeActions/providers/index.ts +3 -0
  494. package/src/codeActions/providers/utils.ts +47 -0
  495. package/src/commands/BaseExecuteCommandProvider.ts +15 -0
  496. package/src/commands/ExecuteCommandProvider.ts +59 -0
  497. package/src/commands/index.ts +2 -0
  498. package/src/commands/providers/ApplyFixesProvider.spec.ts +133 -0
  499. package/src/commands/providers/ApplyFixesProvider.ts +86 -0
  500. package/src/commands/providers/ApplySuggestionProvider.spec.ts +135 -0
  501. package/src/commands/providers/ApplySuggestionProvider.ts +105 -0
  502. package/src/commands/providers/RunChecksProvider.spec.ts +55 -0
  503. package/src/commands/providers/RunChecksProvider.ts +36 -0
  504. package/src/commands/providers/index.ts +3 -0
  505. package/src/completions/CompletionsProvider.ts +128 -0
  506. package/src/completions/index.ts +1 -0
  507. package/src/completions/params/LiquidCompletionParams.spec.ts +319 -0
  508. package/src/completions/params/LiquidCompletionParams.ts +538 -0
  509. package/src/completions/params/fix.spec.ts +159 -0
  510. package/src/completions/params/fix.ts +269 -0
  511. package/src/completions/params/index.ts +2 -0
  512. package/src/completions/params/testcases.txt +104 -0
  513. package/src/completions/providers/ContentForBlockTypeCompletionProvider.spec.ts +41 -0
  514. package/src/completions/providers/ContentForBlockTypeCompletionProvider.ts +42 -0
  515. package/src/completions/providers/ContentForCompletionProvider.spec.ts +96 -0
  516. package/src/completions/providers/ContentForCompletionProvider.ts +113 -0
  517. package/src/completions/providers/ContentForParameterCompletionProvider.spec.ts +362 -0
  518. package/src/completions/providers/ContentForParameterCompletionProvider.ts +187 -0
  519. package/src/completions/providers/FilterCompletionProvider.spec.ts +377 -0
  520. package/src/completions/providers/FilterCompletionProvider.ts +225 -0
  521. package/src/completions/providers/FilterNamedParameterCompletionProvider.spec.ts +239 -0
  522. package/src/completions/providers/FilterNamedParameterCompletionProvider.ts +121 -0
  523. package/src/completions/providers/HtmlAttributeCompletionProvider.spec.ts +150 -0
  524. package/src/completions/providers/HtmlAttributeCompletionProvider.ts +117 -0
  525. package/src/completions/providers/HtmlAttributeValueCompletionProvider.spec.ts +38 -0
  526. package/src/completions/providers/HtmlAttributeValueCompletionProvider.ts +65 -0
  527. package/src/completions/providers/HtmlTagCompletionProvider.spec.ts +57 -0
  528. package/src/completions/providers/HtmlTagCompletionProvider.ts +119 -0
  529. package/src/completions/providers/LiquidDocParamTypeCompletionProvider.spec.ts +79 -0
  530. package/src/completions/providers/LiquidDocParamTypeCompletionProvider.ts +65 -0
  531. package/src/completions/providers/LiquidDocTagCompletionProvider.spec.ts +144 -0
  532. package/src/completions/providers/LiquidDocTagCompletionProvider.ts +74 -0
  533. package/src/completions/providers/LiquidTagsCompletionProvider.spec.ts +377 -0
  534. package/src/completions/providers/LiquidTagsCompletionProvider.ts +459 -0
  535. package/src/completions/providers/ObjectAttributeCompletionProvider.spec.ts +524 -0
  536. package/src/completions/providers/ObjectAttributeCompletionProvider.ts +95 -0
  537. package/src/completions/providers/ObjectCompletionProvider.spec.ts +232 -0
  538. package/src/completions/providers/ObjectCompletionProvider.ts +44 -0
  539. package/src/completions/providers/PartialCompletionProvider.spec.ts +107 -0
  540. package/src/completions/providers/PartialCompletionProvider.ts +50 -0
  541. package/src/completions/providers/RenderPartialParameterCompletionProvider.spec.ts +91 -0
  542. package/src/completions/providers/RenderPartialParameterCompletionProvider.ts +79 -0
  543. package/src/completions/providers/TranslationCompletionProvider.spec.ts +65 -0
  544. package/src/completions/providers/TranslationCompletionProvider.ts +103 -0
  545. package/src/completions/providers/common/CompletionItemProperties.ts +66 -0
  546. package/src/completions/providers/common/Provider.ts +6 -0
  547. package/src/completions/providers/common/index.ts +18 -0
  548. package/src/completions/providers/data/contentForParameterCompletionOptions.ts +9 -0
  549. package/src/completions/providers/index.ts +20 -0
  550. package/src/css/CSSLanguageService.spec.ts +161 -0
  551. package/src/css/CSSLanguageService.ts +113 -0
  552. package/src/css/test/test-helpers.ts +30 -0
  553. package/src/definitions/BaseDefinitionProvider.ts +10 -0
  554. package/src/definitions/DefinitionProvider.ts +48 -0
  555. package/src/definitions/providers/SchemaTranslationStringDefinitionProvider.spec.ts +96 -0
  556. package/src/definitions/providers/SchemaTranslationStringDefinitionProvider.ts +82 -0
  557. package/src/definitions/providers/TranslationStringDefinitionProvider.spec.ts +77 -0
  558. package/src/definitions/providers/TranslationStringDefinitionProvider.ts +72 -0
  559. package/src/diagnostics/DiagnosticsManager.spec.ts +79 -0
  560. package/src/diagnostics/DiagnosticsManager.ts +58 -0
  561. package/src/diagnostics/index.ts +2 -0
  562. package/src/diagnostics/offenseToDiagnostic.ts +80 -0
  563. package/src/diagnostics/runChecks.spec.ts +285 -0
  564. package/src/diagnostics/runChecks.ts +147 -0
  565. package/src/docset/HtmlDocset.ts +43 -0
  566. package/src/docset/MarkdownRenderer.spec.ts +46 -0
  567. package/src/docset/MarkdownRenderer.ts +179 -0
  568. package/src/docset/index.ts +2 -0
  569. package/src/documentHighlights/BaseDocumentHighlightsProvider.ts +10 -0
  570. package/src/documentHighlights/DocumentHighlightsProvider.ts +54 -0
  571. package/src/documentHighlights/index.ts +1 -0
  572. package/src/documentHighlights/providers/HtmlTagNameDocumentHighlightsProvider.spec.ts +94 -0
  573. package/src/documentHighlights/providers/HtmlTagNameDocumentHighlightsProvider.ts +22 -0
  574. package/src/documentHighlights/providers/LiquidBlockTagDocumentHighlightsProvider.spec.ts +188 -0
  575. package/src/documentHighlights/providers/LiquidBlockTagDocumentHighlightsProvider.ts +73 -0
  576. package/src/documentHighlights/providers/index.ts +2 -0
  577. package/src/documentLinks/DocumentLinksProvider.spec.ts +66 -0
  578. package/src/documentLinks/DocumentLinksProvider.ts +123 -0
  579. package/src/documentLinks/index.ts +1 -0
  580. package/src/documents/DocumentManager.spec.ts +276 -0
  581. package/src/documents/DocumentManager.ts +232 -0
  582. package/src/documents/index.ts +2 -0
  583. package/src/documents/types.ts +55 -0
  584. package/src/formatting/OnTypeFormattingProvider.spec.ts +74 -0
  585. package/src/formatting/OnTypeFormattingProvider.ts +26 -0
  586. package/src/formatting/index.ts +1 -0
  587. package/src/formatting/providers/BracketsAutoclosingOnTypeFormattingProvider.spec.ts +88 -0
  588. package/src/formatting/providers/BracketsAutoclosingOnTypeFormattingProvider.ts +114 -0
  589. package/src/formatting/providers/HtmlElementAutoclosingOnTypeFormattingProvider.spec.ts +183 -0
  590. package/src/formatting/providers/HtmlElementAutoclosingOnTypeFormattingProvider.ts +127 -0
  591. package/src/formatting/types.ts +12 -0
  592. package/src/hover/BaseHoverProvider.ts +10 -0
  593. package/src/hover/HoverProvider.ts +86 -0
  594. package/src/hover/index.ts +1 -0
  595. package/src/hover/providers/ContentForArgumentHoverProvider.spec.ts +76 -0
  596. package/src/hover/providers/ContentForArgumentHoverProvider.ts +56 -0
  597. package/src/hover/providers/ContentForTypeHoverProvider.spec.ts +91 -0
  598. package/src/hover/providers/ContentForTypeHoverProvider.ts +42 -0
  599. package/src/hover/providers/HtmlAttributeHoverProvider.spec.ts +50 -0
  600. package/src/hover/providers/HtmlAttributeHoverProvider.ts +48 -0
  601. package/src/hover/providers/HtmlAttributeValueHoverProvider.spec.ts +38 -0
  602. package/src/hover/providers/HtmlAttributeValueHoverProvider.ts +52 -0
  603. package/src/hover/providers/HtmlTagHoverProvider.spec.ts +39 -0
  604. package/src/hover/providers/HtmlTagHoverProvider.ts +42 -0
  605. package/src/hover/providers/LiquidDocTagHoverProvider.spec.ts +64 -0
  606. package/src/hover/providers/LiquidDocTagHoverProvider.ts +58 -0
  607. package/src/hover/providers/LiquidFilterArgumentHoverProvider.spec.ts +57 -0
  608. package/src/hover/providers/LiquidFilterArgumentHoverProvider.ts +42 -0
  609. package/src/hover/providers/LiquidFilterHoverProvider.spec.ts +50 -0
  610. package/src/hover/providers/LiquidFilterHoverProvider.ts +29 -0
  611. package/src/hover/providers/LiquidObjectAttributeHoverProvider.spec.ts +238 -0
  612. package/src/hover/providers/LiquidObjectAttributeHoverProvider.ts +156 -0
  613. package/src/hover/providers/LiquidObjectHoverProvider.spec.ts +278 -0
  614. package/src/hover/providers/LiquidObjectHoverProvider.ts +95 -0
  615. package/src/hover/providers/LiquidTagHoverProvider.spec.ts +51 -0
  616. package/src/hover/providers/LiquidTagHoverProvider.ts +33 -0
  617. package/src/hover/providers/RenderPartialHoverProvider.spec.ts +85 -0
  618. package/src/hover/providers/RenderPartialHoverProvider.ts +38 -0
  619. package/src/hover/providers/RenderPartialParameterHoverProvider.spec.ts +70 -0
  620. package/src/hover/providers/RenderPartialParameterHoverProvider.ts +47 -0
  621. package/src/hover/providers/TranslationHoverProvider.spec.ts +59 -0
  622. package/src/hover/providers/TranslationHoverProvider.ts +61 -0
  623. package/src/hover/providers/index.ts +11 -0
  624. package/src/index.spec.ts +8 -0
  625. package/src/index.ts +34 -0
  626. package/src/internal-types.ts +1 -0
  627. package/src/json/JSONContributions.ts +150 -0
  628. package/src/json/JSONLanguageService.spec.ts +424 -0
  629. package/src/json/JSONLanguageService.ts +239 -0
  630. package/src/json/RequestContext.ts +35 -0
  631. package/src/json/completions/JSONCompletionProvider.ts +33 -0
  632. package/src/json/completions/providers/BlockSettingsPropertyCompletionProvider.spec.ts +163 -0
  633. package/src/json/completions/providers/BlockSettingsPropertyCompletionProvider.ts +121 -0
  634. package/src/json/completions/providers/BlockTypeCompletionProvider.spec.ts +137 -0
  635. package/src/json/completions/providers/BlockTypeCompletionProvider.ts +108 -0
  636. package/src/json/completions/providers/ReferencedBlockTypeCompletionProvider.spec.ts +132 -0
  637. package/src/json/completions/providers/ReferencedBlockTypeCompletionProvider.ts +120 -0
  638. package/src/json/completions/providers/SchemaTranslationCompletionProvider.ts +51 -0
  639. package/src/json/completions/providers/SettingsPropertyCompletionProvider.spec.ts +211 -0
  640. package/src/json/completions/providers/SettingsPropertyCompletionProvider.ts +75 -0
  641. package/src/json/documentLinks/DocumentLinksProvider.spec.ts +223 -0
  642. package/src/json/documentLinks/DocumentLinksProvider.ts +61 -0
  643. package/src/json/hover/JSONHoverProvider.ts +8 -0
  644. package/src/json/hover/providers/BlockSettingsHoverProvider.spec.ts +292 -0
  645. package/src/json/hover/providers/BlockSettingsHoverProvider.ts +99 -0
  646. package/src/json/hover/providers/SchemaTranslationHoverProvider.ts +35 -0
  647. package/src/json/hover/providers/SettingsHoverProvider.spec.ts +139 -0
  648. package/src/json/hover/providers/SettingsHoverProvider.ts +79 -0
  649. package/src/json/hover/providers/TranslationPathHoverProvider.ts +71 -0
  650. package/src/json/schemaSettings.spec.ts +103 -0
  651. package/src/json/schemaSettings.ts +53 -0
  652. package/src/json/test/test-helpers.ts +68 -0
  653. package/src/json/utils.ts +30 -0
  654. package/src/linkedEditingRanges/BaseLinkedEditingRangesProvider.ts +10 -0
  655. package/src/linkedEditingRanges/LinkedEditingRangesProvider.ts +40 -0
  656. package/src/linkedEditingRanges/index.ts +1 -0
  657. package/src/linkedEditingRanges/providers/EmptyHtmlTagLinkedRangesProvider.spec.ts +74 -0
  658. package/src/linkedEditingRanges/providers/EmptyHtmlTagLinkedRangesProvider.ts +47 -0
  659. package/src/linkedEditingRanges/providers/HtmlTagNameLinkedRangesProvider.spec.ts +102 -0
  660. package/src/linkedEditingRanges/providers/HtmlTagNameLinkedRangesProvider.ts +28 -0
  661. package/src/linkedEditingRanges/providers/index.ts +2 -0
  662. package/src/linkedEditingRanges/wordPattern.ts +3 -0
  663. package/src/plugins/css.ts +12 -0
  664. package/src/progress.ts +83 -0
  665. package/src/rename/BaseRenameProvider.ts +21 -0
  666. package/src/rename/RenameProvider.ts +91 -0
  667. package/src/rename/providers/HtmlTagNameRenameProvider.spec.ts +84 -0
  668. package/src/rename/providers/HtmlTagNameRenameProvider.ts +59 -0
  669. package/src/rename/providers/LiquidVariableRenameProvider.spec.ts +511 -0
  670. package/src/rename/providers/LiquidVariableRenameProvider.ts +300 -0
  671. package/src/renamed/BaseRenameHandler.ts +5 -0
  672. package/src/renamed/RenameHandler.ts +45 -0
  673. package/src/renamed/handlers/AssetRenameHandler.spec.ts +217 -0
  674. package/src/renamed/handlers/AssetRenameHandler.ts +108 -0
  675. package/src/renamed/handlers/BlockRenameHandler.spec.ts +399 -0
  676. package/src/renamed/handlers/BlockRenameHandler.ts +402 -0
  677. package/src/renamed/handlers/PartialRenameHandler.spec.ts +153 -0
  678. package/src/renamed/handlers/PartialRenameHandler.ts +110 -0
  679. package/src/renamed/handlers/SectionRenameHandler.spec.ts +321 -0
  680. package/src/renamed/handlers/SectionRenameHandler.ts +224 -0
  681. package/src/renamed/handlers/utils.ts +22 -0
  682. package/src/server/CachedFileSystem.ts +39 -0
  683. package/src/server/Configuration.ts +89 -0
  684. package/src/server/ThemeGraphManager.ts +265 -0
  685. package/src/server/index.ts +1 -0
  686. package/src/server/safe.ts +30 -0
  687. package/src/server/startServer.spec.ts +423 -0
  688. package/src/server/startServer.ts +771 -0
  689. package/src/settings/index.ts +50 -0
  690. package/src/test/ApplyEditsAssertion.spec.ts +57 -0
  691. package/src/test/ApplyEditsAssertion.ts +34 -0
  692. package/src/test/CompletionItemsAssertion.spec.ts +48 -0
  693. package/src/test/CompletionItemsAssertion.ts +99 -0
  694. package/src/test/HoverAssertion.ts +84 -0
  695. package/src/test/MockChecks.ts +32 -0
  696. package/src/test/MockConnection.ts +158 -0
  697. package/src/test/test-setup.ts +6 -0
  698. package/src/translations.ts +83 -0
  699. package/src/types.ts +173 -0
  700. package/src/utils/array.ts +6 -0
  701. package/src/utils/debounce.ts +60 -0
  702. package/src/utils/htmlTagNames.ts +61 -0
  703. package/src/utils/index.ts +12 -0
  704. package/src/utils/isCovered.ts +3 -0
  705. package/src/utils/liquidDoc.spec.ts +167 -0
  706. package/src/utils/liquidDoc.ts +102 -0
  707. package/src/utils/node.ts +69 -0
  708. package/src/utils/uri.ts +22 -0
  709. package/src/version.ts +3 -0
  710. package/tsconfig.build.json +10 -0
  711. package/tsconfig.json +24 -0
@@ -0,0 +1,19 @@
1
+ /**
2
+ * This function wraps a function that might throw an error and handles it by
3
+ * returning the default value instead.
4
+ *
5
+ * There are cases, such as fs.readDirectory, that might throw an error if the
6
+ * directory doesn't exist. Since there _is_ a difference between a directory that
7
+ * doesn't exist and a directory that is empty, we don't want to change the API
8
+ * of fs.readDirectory either.
9
+ *
10
+ * In such cases, we can use this helper to wrap the function and gracefully handle
11
+ * the error by returning a default value instead.
12
+ *
13
+ * @param fn
14
+ * @param defaultReturnValue
15
+ *
16
+ * @example
17
+ * const getThemeBlockNames = safe(async function () { ... }, []);
18
+ */
19
+ export declare const safe: <T extends (...args: any[]) => Promise<any>>(fn: T, defaultReturnValue: Awaited<ReturnType<T>>) => (...args: Parameters<T>) => Promise<Awaited<ReturnType<T>>>;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.safe = void 0;
4
+ /**
5
+ * This function wraps a function that might throw an error and handles it by
6
+ * returning the default value instead.
7
+ *
8
+ * There are cases, such as fs.readDirectory, that might throw an error if the
9
+ * directory doesn't exist. Since there _is_ a difference between a directory that
10
+ * doesn't exist and a directory that is empty, we don't want to change the API
11
+ * of fs.readDirectory either.
12
+ *
13
+ * In such cases, we can use this helper to wrap the function and gracefully handle
14
+ * the error by returning a default value instead.
15
+ *
16
+ * @param fn
17
+ * @param defaultReturnValue
18
+ *
19
+ * @example
20
+ * const getThemeBlockNames = safe(async function () { ... }, []);
21
+ */
22
+ const safe = (fn, defaultReturnValue) => {
23
+ return async function safeFn(...args) {
24
+ try {
25
+ return await fn(...args);
26
+ }
27
+ catch (error) {
28
+ return defaultReturnValue;
29
+ }
30
+ };
31
+ };
32
+ exports.safe = safe;
33
+ //# sourceMappingURL=safe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe.js","sourceRoot":"","sources":["../../src/server/safe.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;GAiBG;AACI,MAAM,IAAI,GAAG,CAClB,EAAK,EACL,kBAA0C,EAC1C,EAAE;IACF,OAAO,KAAK,UAAU,MAAM,CAAC,GAAG,IAAmB;QACjD,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,kBAAkB,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,IAAI,QAWf"}
@@ -0,0 +1,13 @@
1
+ import { Connection } from 'vscode-languageserver';
2
+ import { Dependencies } from '../types';
3
+ /**
4
+ * This code runs in node and the browser, it can't talk to the file system
5
+ * or make requests. Stuff like that should be injected.
6
+ *
7
+ * In browser, theme-check-js wants these things:
8
+ * - fileExists(path)
9
+ * - defaultTranslations
10
+ *
11
+ * Which means we gotta provide 'em from here too!
12
+ */
13
+ export declare function startServer(connection: Connection, { fs: injectedFs, loadConfig: injectedLoadConfig, log, jsonValidationSet, themeDocset: remoteThemeDocset, fetchMetafieldDefinitionsForURI, }: Dependencies): void;
@@ -0,0 +1,598 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.startServer = startServer;
4
+ const platformos_check_common_1 = require("@platformos/platformos-check-common");
5
+ const platformos_common_1 = require("@platformos/platformos-common");
6
+ const vscode_languageserver_1 = require("vscode-languageserver");
7
+ const ClientCapabilities_1 = require("../ClientCapabilities");
8
+ const codeActions_1 = require("../codeActions");
9
+ const commands_1 = require("../commands");
10
+ const completions_1 = require("../completions");
11
+ const CSSLanguageService_1 = require("../css/CSSLanguageService");
12
+ const DefinitionProvider_1 = require("../definitions/DefinitionProvider");
13
+ const diagnostics_1 = require("../diagnostics");
14
+ const DocumentHighlightsProvider_1 = require("../documentHighlights/DocumentHighlightsProvider");
15
+ const documentLinks_1 = require("../documentLinks");
16
+ const documents_1 = require("../documents");
17
+ const formatting_1 = require("../formatting");
18
+ const hover_1 = require("../hover");
19
+ const JSONLanguageService_1 = require("../json/JSONLanguageService");
20
+ const LinkedEditingRangesProvider_1 = require("../linkedEditingRanges/LinkedEditingRangesProvider");
21
+ const RenameProvider_1 = require("../rename/RenameProvider");
22
+ const RenameHandler_1 = require("../renamed/RenameHandler");
23
+ const types_1 = require("../types");
24
+ const utils_1 = require("../utils");
25
+ const version_1 = require("../version");
26
+ const CachedFileSystem_1 = require("./CachedFileSystem");
27
+ const Configuration_1 = require("./Configuration");
28
+ const safe_1 = require("./safe");
29
+ const ThemeGraphManager_1 = require("./ThemeGraphManager");
30
+ const platformos_common_2 = require("@platformos/platformos-common");
31
+ const vscode_uri_1 = require("vscode-uri");
32
+ const defaultLogger = () => { };
33
+ /**
34
+ * The `git:` VFS does not support the `fs.readDirectory` call and makes most things break.
35
+ * `git` URIs are the ones you'd encounter when doing a git diff in VS Code. They're not
36
+ * real files, they're just a way to represent changes in a git repository. As such, I don't
37
+ * think we want to sync those in our document manager or try to offer document links, etc.
38
+ *
39
+ * A middleware would be nice but it'd be a bit of a pain to implement.
40
+ */
41
+ const hasUnsupportedDocument = (params) => {
42
+ return ('textDocument' in params &&
43
+ 'uri' in params.textDocument &&
44
+ typeof params.textDocument.uri === 'string' &&
45
+ (params.textDocument.uri.startsWith('git:') || params.textDocument.uri.startsWith('output:')));
46
+ };
47
+ /**
48
+ * This code runs in node and the browser, it can't talk to the file system
49
+ * or make requests. Stuff like that should be injected.
50
+ *
51
+ * In browser, theme-check-js wants these things:
52
+ * - fileExists(path)
53
+ * - defaultTranslations
54
+ *
55
+ * Which means we gotta provide 'em from here too!
56
+ */
57
+ function startServer(connection, { fs: injectedFs, loadConfig: injectedLoadConfig, log = defaultLogger, jsonValidationSet, themeDocset: remoteThemeDocset, fetchMetafieldDefinitionsForURI, }) {
58
+ const fs = new CachedFileSystem_1.CachedFileSystem(injectedFs);
59
+ const fileExists = (0, platformos_check_common_1.makeFileExists)(fs);
60
+ const loadConfig = (0, platformos_check_common_1.memoize)(injectedLoadConfig, (uri) => uri);
61
+ const clientCapabilities = new ClientCapabilities_1.ClientCapabilities();
62
+ const configuration = new Configuration_1.Configuration(connection, clientCapabilities);
63
+ const documentManager = new documents_1.DocumentManager(fs, connection, clientCapabilities, getModeForURI, isValidSchema);
64
+ const themeGraphManager = new ThemeGraphManager_1.ThemeGraphManager(connection, documentManager, fs, findThemeRootURI);
65
+ const diagnosticsManager = new diagnostics_1.DiagnosticsManager(connection);
66
+ const documentsLocator = new platformos_common_2.DocumentsLocator(fs);
67
+ const translationProvider = new platformos_common_1.TranslationProvider(fs);
68
+ const documentLinksProvider = new documentLinks_1.DocumentLinksProvider(documentManager, findThemeRootURI, documentsLocator, translationProvider);
69
+ const codeActionsProvider = new codeActions_1.CodeActionsProvider(documentManager, diagnosticsManager);
70
+ const onTypeFormattingProvider = new formatting_1.OnTypeFormattingProvider(documentManager, async function setCursorPosition(textDocument, position) {
71
+ if (!clientCapabilities.hasShowDocumentSupport)
72
+ return;
73
+ connection.sendRequest(vscode_languageserver_1.ShowDocumentRequest.type, {
74
+ uri: textDocument.uri,
75
+ takeFocus: true,
76
+ selection: {
77
+ start: position,
78
+ end: position,
79
+ },
80
+ });
81
+ });
82
+ const linkedEditingRangesProvider = new LinkedEditingRangesProvider_1.LinkedEditingRangesProvider(documentManager);
83
+ const documentHighlightProvider = new DocumentHighlightsProvider_1.DocumentHighlightsProvider(documentManager);
84
+ const renameProvider = new RenameProvider_1.RenameProvider(connection, clientCapabilities, documentManager, findThemeRootURI);
85
+ const renameHandler = new RenameHandler_1.RenameHandler(connection, clientCapabilities, documentManager, findThemeRootURI);
86
+ async function findThemeRootURI(uri) {
87
+ const rootUri = await (0, platformos_check_common_1.findRoot)(uri, fileExists);
88
+ if (!rootUri)
89
+ return null;
90
+ const config = await loadConfig(rootUri, fs);
91
+ return config.rootUri;
92
+ }
93
+ const getMetafieldDefinitionsForRootUri = (0, platformos_check_common_1.memoize)((0, platformos_check_common_1.makeGetMetafieldDefinitions)(fs), (rootUri) => rootUri);
94
+ const getMetafieldDefinitions = async (uri) => {
95
+ const rootUri = await findThemeRootURI(uri);
96
+ if (!rootUri) {
97
+ return {};
98
+ }
99
+ return getMetafieldDefinitionsForRootUri(rootUri);
100
+ };
101
+ // These are augmented here so that the caching is maintained over different runs.
102
+ const themeDocset = new platformos_check_common_1.AugmentedThemeDocset(remoteThemeDocset);
103
+ const cssLanguageService = new CSSLanguageService_1.CSSLanguageService(documentManager);
104
+ const runChecks = (0, utils_1.debounce)((0, diagnostics_1.makeRunChecks)(documentManager, diagnosticsManager, {
105
+ fs,
106
+ loadConfig,
107
+ themeDocset,
108
+ jsonValidationSet,
109
+ getMetafieldDefinitions,
110
+ cssLanguageService,
111
+ themeGraphManager,
112
+ }), 100);
113
+ const getTranslationsForURI = async (uri) => {
114
+ const rootURI = await findThemeRootURI(uri);
115
+ if (!rootURI)
116
+ return {};
117
+ const theme = documentManager.theme(rootURI);
118
+ const getDefaultTranslations = (0, platformos_check_common_1.makeGetDefaultTranslations)(fs, theme, rootURI);
119
+ const [defaultTranslations, shopifyTranslations] = await Promise.all([
120
+ getDefaultTranslations(),
121
+ themeDocset.systemTranslations(),
122
+ ]);
123
+ return { ...shopifyTranslations, ...defaultTranslations };
124
+ };
125
+ const getSchemaTranslationsForURI = async (uri) => {
126
+ const rootURI = await findThemeRootURI(uri);
127
+ if (!rootURI)
128
+ return {};
129
+ const theme = documentManager.theme(rootURI);
130
+ const getDefaultSchemaTranslations = (0, platformos_check_common_1.makeGetDefaultSchemaTranslations)(fs, theme, rootURI);
131
+ return getDefaultSchemaTranslations();
132
+ };
133
+ const getDocDefinitionForURI = async (uri, category, name) => {
134
+ const rootUri = await findThemeRootURI(uri);
135
+ if (!rootUri)
136
+ return undefined;
137
+ const fileUri = platformos_check_common_1.path.join(rootUri, category, `${name}.liquid`);
138
+ const file = documentManager.get(fileUri);
139
+ if (!file || file.type !== platformos_check_common_1.SourceCodeType.LiquidHtml || (0, platformos_check_common_1.isError)(file.ast)) {
140
+ return undefined;
141
+ }
142
+ return file.getLiquidDoc();
143
+ };
144
+ const getPartialNamesForURI = (0, safe_1.safe)(async (uri, partial, type) => {
145
+ const rootUri = await findThemeRootURI(uri);
146
+ if (!rootUri)
147
+ return [];
148
+ return await documentsLocator.list(vscode_uri_1.URI.parse(rootUri), type, partial);
149
+ }, []);
150
+ const getThemeSettingsSchemaForURI = (0, safe_1.safe)(async (uri) => {
151
+ const rootUri = await findThemeRootURI(uri);
152
+ if (!rootUri)
153
+ return [];
154
+ const settingsSchemaUri = platformos_check_common_1.path.join(rootUri, 'config', 'settings_schema.json');
155
+ const contents = await fs.readFile(settingsSchemaUri);
156
+ const json = (0, platformos_check_common_1.parseJSON)(contents);
157
+ if ((0, platformos_check_common_1.isError)(json) || !Array.isArray(json)) {
158
+ throw new Error('Settings JSON file not in correct format');
159
+ }
160
+ return json;
161
+ }, []);
162
+ async function getModeForURI(uri) {
163
+ const rootUri = await (0, platformos_check_common_1.findRoot)(uri, fileExists);
164
+ if (!rootUri)
165
+ return 'theme';
166
+ const config = await loadConfig(rootUri, fs);
167
+ return config.context;
168
+ }
169
+ const getThemeBlockNames = (0, safe_1.safe)(async (uri, includePrivate) => {
170
+ const rootUri = await findThemeRootURI(uri);
171
+ if (!rootUri)
172
+ return [];
173
+ const blocks = await fs.readDirectory(platformos_check_common_1.path.join(rootUri, 'blocks'));
174
+ const blockNames = blocks.map(([uri]) => platformos_check_common_1.path.basename(uri, '.liquid'));
175
+ if (includePrivate) {
176
+ return blockNames;
177
+ }
178
+ return blockNames.filter((blockName) => !blockName.startsWith('_'));
179
+ }, []);
180
+ async function getThemeBlockSchema(uri, name) {
181
+ const rootUri = await findThemeRootURI(uri);
182
+ if (!rootUri)
183
+ return;
184
+ const blockUri = platformos_check_common_1.path.join(rootUri, 'blocks', `${name}.liquid`);
185
+ const doc = documentManager.get(blockUri);
186
+ if (!doc || doc.type !== platformos_check_common_1.SourceCodeType.LiquidHtml) {
187
+ return;
188
+ }
189
+ return doc.getSchema();
190
+ }
191
+ // Defined as a function to solve a circular dependency (doc manager & json
192
+ // lang service both need each other)
193
+ async function isValidSchema(uri, jsonString) {
194
+ return jsonLanguageService.isValidSchema(uri, jsonString);
195
+ }
196
+ const getDefaultLocaleFileUri = (0, platformos_check_common_1.makeGetDefaultLocaleFileUri)(fs);
197
+ async function getDefaultLocaleSourceCode(uri) {
198
+ const rootUri = await findThemeRootURI(uri);
199
+ if (!rootUri)
200
+ return null;
201
+ const defaultLocaleFileUri = await getDefaultLocaleFileUri(rootUri);
202
+ if (!defaultLocaleFileUri)
203
+ return null;
204
+ return documentManager.get(defaultLocaleFileUri) ?? null;
205
+ }
206
+ const getDefaultSchemaLocaleFileUri = (0, platformos_check_common_1.makeGetDefaultSchemaLocaleFileUri)(fs);
207
+ async function getDefaultSchemaLocaleSourceCode(uri) {
208
+ const rootUri = await findThemeRootURI(uri);
209
+ if (!rootUri)
210
+ return null;
211
+ const defaultLocaleFileUri = await getDefaultSchemaLocaleFileUri(rootUri);
212
+ if (!defaultLocaleFileUri)
213
+ return null;
214
+ return documentManager.get(defaultLocaleFileUri) ?? null;
215
+ }
216
+ const definitionsProvider = new DefinitionProvider_1.DefinitionProvider(documentManager, getDefaultLocaleSourceCode, getDefaultSchemaLocaleSourceCode);
217
+ const jsonLanguageService = new JSONLanguageService_1.JSONLanguageService(documentManager, jsonValidationSet, getSchemaTranslationsForURI, getModeForURI, getThemeBlockNames, getThemeBlockSchema, findThemeRootURI);
218
+ const completionsProvider = new completions_1.CompletionsProvider({
219
+ documentManager,
220
+ themeDocset,
221
+ getTranslationsForURI,
222
+ getPartialNamesForURI,
223
+ getThemeSettingsSchemaForURI,
224
+ log,
225
+ getThemeBlockNames,
226
+ getMetafieldDefinitions,
227
+ getDocDefinitionForURI,
228
+ fs,
229
+ documentsLocator,
230
+ findThemeRootURI,
231
+ notifyUnableToInferProperties: (variableName) => {
232
+ connection.window.showInformationMessage(`Unable to infer properties for '${variableName}'. Property completion is only supported for variables from parse_json, to_hash, or graphql.`);
233
+ },
234
+ });
235
+ const hoverProvider = new hover_1.HoverProvider(documentManager, themeDocset, translationProvider, getMetafieldDefinitions, getTranslationsForURI, getThemeSettingsSchemaForURI, getDocDefinitionForURI, findThemeRootURI);
236
+ const executeCommandProvider = new commands_1.ExecuteCommandProvider(documentManager, diagnosticsManager, clientCapabilities, runChecks, connection);
237
+ const fetchMetafieldDefinitionsForWorkspaceFolders = async (folders) => {
238
+ if (!fetchMetafieldDefinitionsForURI)
239
+ return;
240
+ for (let folder of folders) {
241
+ const mode = await getModeForURI(folder.uri);
242
+ if (mode === 'theme') {
243
+ fetchMetafieldDefinitionsForURI(folder.uri);
244
+ }
245
+ }
246
+ };
247
+ connection.onInitialize((params) => {
248
+ clientCapabilities.setup(params.capabilities, params.initializationOptions);
249
+ cssLanguageService.setup(params.capabilities);
250
+ jsonLanguageService.setup(params.capabilities);
251
+ configuration.setup();
252
+ const fileOperationRegistrationOptions = {
253
+ filters: [
254
+ {
255
+ pattern: {
256
+ glob: '**/*.{liquid,json,graphql}',
257
+ },
258
+ },
259
+ {
260
+ pattern: {
261
+ glob: '**/assets/*',
262
+ },
263
+ },
264
+ ],
265
+ };
266
+ const result = {
267
+ capabilities: {
268
+ textDocumentSync: {
269
+ change: vscode_languageserver_1.TextDocumentSyncKind.Full,
270
+ save: true,
271
+ openClose: true,
272
+ },
273
+ codeActionProvider: {
274
+ codeActionKinds: [...codeActions_1.CodeActionKinds],
275
+ },
276
+ completionProvider: {
277
+ triggerCharacters: ['.', '{{ ', '{% ', '<', '/', '[', '"', "'", ':', '@'],
278
+ },
279
+ definitionProvider: true,
280
+ documentOnTypeFormattingProvider: {
281
+ firstTriggerCharacter: ' ',
282
+ moreTriggerCharacter: ['{', '%', '-', '>'],
283
+ },
284
+ documentLinkProvider: {
285
+ resolveProvider: false,
286
+ workDoneProgress: false,
287
+ },
288
+ documentHighlightProvider: true,
289
+ linkedEditingRangeProvider: true,
290
+ renameProvider: {
291
+ prepareProvider: true,
292
+ },
293
+ executeCommandProvider: {
294
+ commands: [...commands_1.Commands],
295
+ },
296
+ hoverProvider: {
297
+ workDoneProgress: false,
298
+ },
299
+ workspace: {
300
+ workspaceFolders: {
301
+ supported: true,
302
+ changeNotifications: true,
303
+ },
304
+ fileOperations: {
305
+ didRename: fileOperationRegistrationOptions,
306
+ },
307
+ },
308
+ },
309
+ serverInfo: {
310
+ name: 'theme-language-server',
311
+ version: version_1.VERSION,
312
+ },
313
+ };
314
+ return result;
315
+ });
316
+ connection.onInitialized(() => {
317
+ log(`[SERVER] Let's roll!`);
318
+ configuration.fetchConfiguration();
319
+ configuration.registerDidChangeCapability();
320
+ configuration.registerDidChangeWatchedFilesNotification({
321
+ watchers: [
322
+ {
323
+ globPattern: '**/*.liquid',
324
+ },
325
+ {
326
+ globPattern: '**/translations/**/*.yml',
327
+ },
328
+ {
329
+ globPattern: '**/*.graphql',
330
+ },
331
+ ],
332
+ });
333
+ if (clientCapabilities.hasWorkspaceFoldersSupport) {
334
+ connection.workspace.getWorkspaceFolders().then(async (folders) => {
335
+ if (!folders)
336
+ return;
337
+ fetchMetafieldDefinitionsForWorkspaceFolders(folders);
338
+ });
339
+ connection.workspace.onDidChangeWorkspaceFolders(async (params) => {
340
+ fetchMetafieldDefinitionsForWorkspaceFolders(params.added);
341
+ });
342
+ }
343
+ });
344
+ connection.onDidChangeConfiguration((_params) => {
345
+ configuration.clearCache();
346
+ });
347
+ connection.onDidOpenTextDocument(async (params) => {
348
+ if (hasUnsupportedDocument(params))
349
+ return;
350
+ const { uri, text, version } = params.textDocument;
351
+ documentManager.open(uri, text, version);
352
+ if (await configuration.shouldCheckOnOpen()) {
353
+ runChecks([uri]);
354
+ }
355
+ // The objective at the time of writing this is to make {Asset,Snippet}Rename
356
+ // fast when you eventually need it.
357
+ //
358
+ // I'm choosing the textDocument/didOpen notification as a hook because
359
+ // I'm not sure we have a better solution than this. Yes we have the
360
+ // initialize request with the workspace folders, but you might have opened
361
+ // an app folder. The root of a theme app extension would probably be
362
+ // at ${workspaceRoot}/extensions/${appExtensionName}. It'd be hard to
363
+ // figure out from the initialize request params.
364
+ //
365
+ // If we open a file that we know is liquid, then we can kind of guarantee
366
+ // we'll find a theme root and we'll preload that.
367
+ if (await configuration.shouldPreloadOnBoot()) {
368
+ const rootUri = await findThemeRootURI(uri);
369
+ if (rootUri) {
370
+ documentManager.preload(rootUri);
371
+ }
372
+ }
373
+ });
374
+ connection.onDidChangeTextDocument(async (params) => {
375
+ if (hasUnsupportedDocument(params))
376
+ return;
377
+ const { uri, version } = params.textDocument;
378
+ documentManager.change(uri, params.contentChanges[0].text, version);
379
+ if (await configuration.shouldCheckOnChange()) {
380
+ runChecks([uri]);
381
+ }
382
+ else {
383
+ // The diagnostics may be stale! Clear em!
384
+ diagnosticsManager.clear(params.textDocument.uri);
385
+ }
386
+ });
387
+ connection.onDidSaveTextDocument(async (params) => {
388
+ if (hasUnsupportedDocument(params))
389
+ return;
390
+ const { uri } = params.textDocument;
391
+ if (await configuration.shouldCheckOnSave()) {
392
+ runChecks([uri]);
393
+ }
394
+ });
395
+ connection.onDidCloseTextDocument((params) => {
396
+ if (hasUnsupportedDocument(params))
397
+ return;
398
+ const { uri } = params.textDocument;
399
+ documentManager.close(uri);
400
+ diagnosticsManager.clear(uri);
401
+ });
402
+ connection.onDocumentLinks(async (params) => {
403
+ if (hasUnsupportedDocument(params))
404
+ return [];
405
+ const [liquidLinks, jsonLinks] = await Promise.all([
406
+ documentLinksProvider.documentLinks(params.textDocument.uri),
407
+ jsonLanguageService.documentLinks(params),
408
+ ]);
409
+ return [...liquidLinks, ...jsonLinks];
410
+ });
411
+ connection.onDefinition(async (params) => {
412
+ if (hasUnsupportedDocument(params))
413
+ return [];
414
+ return definitionsProvider.definitions(params);
415
+ });
416
+ connection.onCodeAction(async (params) => {
417
+ return codeActionsProvider.codeActions(params);
418
+ });
419
+ connection.onExecuteCommand(async (params) => {
420
+ await executeCommandProvider.execute(params);
421
+ });
422
+ connection.onCompletion(async (params) => {
423
+ if (hasUnsupportedDocument(params))
424
+ return [];
425
+ return ((await cssLanguageService.completions(params)) ??
426
+ (await jsonLanguageService.completions(params)) ??
427
+ (await completionsProvider.completions(params)));
428
+ });
429
+ connection.onHover(async (params) => {
430
+ if (hasUnsupportedDocument(params))
431
+ return null;
432
+ return ((await cssLanguageService.hover(params)) ??
433
+ (await jsonLanguageService.hover(params)) ??
434
+ (await hoverProvider.hover(params)));
435
+ });
436
+ connection.onDocumentOnTypeFormatting(async (params) => {
437
+ if (hasUnsupportedDocument(params))
438
+ return null;
439
+ return onTypeFormattingProvider.onTypeFormatting(params);
440
+ });
441
+ connection.onDocumentHighlight(async (params) => {
442
+ if (hasUnsupportedDocument(params))
443
+ return [];
444
+ return documentHighlightProvider.documentHighlights(params);
445
+ });
446
+ connection.onPrepareRename(async (params) => {
447
+ if (hasUnsupportedDocument(params))
448
+ return null;
449
+ return renameProvider.prepare(params);
450
+ });
451
+ connection.onRenameRequest(async (params) => {
452
+ if (hasUnsupportedDocument(params))
453
+ return null;
454
+ return renameProvider.rename(params);
455
+ });
456
+ connection.languages.onLinkedEditingRange(async (params) => {
457
+ if (hasUnsupportedDocument(params))
458
+ return null;
459
+ return linkedEditingRangesProvider.linkedEditingRanges(params);
460
+ });
461
+ connection.workspace.onDidRenameFiles(async (params) => {
462
+ const triggerUris = params.files.map((fileRename) => fileRename.newUri);
463
+ // Behold the cache invalidation monster
464
+ for (const { oldUri, newUri } of params.files) {
465
+ // When a file is renamed, we paste the content of the old file into the
466
+ // new file in the document manager. We don't need to invalidate preload
467
+ // because that's the only thing that changed.
468
+ documentManager.rename(oldUri, newUri);
469
+ // When a file is renamed, readDirectory to the parent folder is invalidated.
470
+ fs.readDirectory.invalidate(platformos_check_common_1.path.dirname(oldUri));
471
+ fs.readDirectory.invalidate(platformos_check_common_1.path.dirname(newUri));
472
+ // When a file is renamed, readFile and stat for both the old and new URIs are invalidated.
473
+ fs.readFile.invalidate(oldUri);
474
+ fs.readFile.invalidate(newUri);
475
+ fs.stat.invalidate(oldUri);
476
+ fs.stat.invalidate(newUri);
477
+ themeGraphManager.rename(oldUri, newUri);
478
+ }
479
+ // We should complete refactors before running theme check
480
+ await renameHandler.onDidRenameFiles(params);
481
+ // MissingAssets/MissingSnippet should be rerun when a file is deleted
482
+ // since the file rename might cause an error.
483
+ runChecks.force(triggerUris);
484
+ });
485
+ /**
486
+ * onDidChangeWatchedFiles is triggered by file operations (in or out of the editor).
487
+ *
488
+ * For in-editor changes, happens redundantly with
489
+ * - onDidCreateFiles
490
+ * - onDidRenameFiles
491
+ * - onDidDeleteFiles
492
+ * - onDidSaveTextDocument
493
+ *
494
+ * Not redundant for operations that happen outside of the editor
495
+ * - git pull, checkout, reset, stash pop, etc.
496
+ * - shopify theme metafields pull
497
+ * - etc.
498
+ *
499
+ * It always runs and onDid* will never fire without a corresponding onDidChangeWatchedFiles.
500
+ *
501
+ * This is why the bulk of the cache invalidation logic is in this handler.
502
+ */
503
+ connection.onDidChangeWatchedFiles(async (params) => {
504
+ if (params.changes.length === 0)
505
+ return;
506
+ const triggerUris = params.changes.map((change) => change.uri);
507
+ const updates = [];
508
+ for (const change of params.changes) {
509
+ // Theme Check config changes should clear the config cache
510
+ if (change.uri.endsWith('.theme-check.yml')) {
511
+ loadConfig.clearCache();
512
+ continue;
513
+ }
514
+ // Rename cache invalidation is handled by onDidRenameFiles
515
+ if (documentManager.hasRecentRename(change.uri)) {
516
+ documentManager.clearRecentRename(change.uri);
517
+ continue;
518
+ }
519
+ switch (change.type) {
520
+ case vscode_languageserver_1.FileChangeType.Created:
521
+ // A created file invalidates readDirectory, readFile and stat
522
+ fs.readDirectory.invalidate(platformos_check_common_1.path.dirname(change.uri));
523
+ fs.readFile.invalidate(change.uri);
524
+ fs.stat.invalidate(change.uri);
525
+ themeGraphManager.create(change.uri);
526
+ // If a file is created under out feet, we update its contents.
527
+ updates.push(documentManager.changeFromDisk(change.uri));
528
+ break;
529
+ case vscode_languageserver_1.FileChangeType.Changed:
530
+ // A changed file invalidates readFile and stat (but not readDirectory)
531
+ fs.readFile.invalidate(change.uri);
532
+ fs.stat.invalidate(change.uri);
533
+ themeGraphManager.change(change.uri);
534
+ // If the file is not open, we update its contents in the doc manager
535
+ // If it is open, then we don't need to update it because the document manager
536
+ // will have the version from the editor.
537
+ if (documentManager.get(change.uri)?.version === undefined) {
538
+ updates.push(documentManager.changeFromDisk(change.uri));
539
+ }
540
+ break;
541
+ case vscode_languageserver_1.FileChangeType.Deleted:
542
+ // A deleted file invalides readDirectory, readFile, and stat
543
+ fs.readDirectory.invalidate(platformos_check_common_1.path.dirname(change.uri));
544
+ fs.readFile.invalidate(change.uri);
545
+ fs.stat.invalidate(change.uri);
546
+ themeGraphManager.delete(change.uri);
547
+ // If a file is deleted, it's removed from the document manager
548
+ documentManager.delete(change.uri);
549
+ break;
550
+ }
551
+ if (change.uri.endsWith('metafields.json')) {
552
+ updates.push(findThemeRootURI(change.uri).then((rootUri) => {
553
+ if (rootUri) {
554
+ getMetafieldDefinitionsForRootUri.invalidate(rootUri);
555
+ }
556
+ }));
557
+ }
558
+ }
559
+ await Promise.all(updates);
560
+ // MissingAssets/MissingSnippet should be rerun when a file is deleted
561
+ // since an error might be introduced (and vice versa).
562
+ runChecks.force(triggerUris);
563
+ });
564
+ connection.onRequest(types_1.ThemeGraphReferenceRequest.type, async (params) => {
565
+ if (hasUnsupportedDocument(params))
566
+ return [];
567
+ const { uri, offset, includeIndirect } = params;
568
+ return themeGraphManager.getReferences(uri, offset, { includeIndirect }).catch((_) => []);
569
+ });
570
+ connection.onRequest(types_1.ThemeGraphDependenciesRequest.type, async (params) => {
571
+ if (hasUnsupportedDocument(params))
572
+ return [];
573
+ const { uri, offset, includeIndirect } = params;
574
+ return themeGraphManager.getDependencies(uri, offset, { includeIndirect }).catch((_) => []);
575
+ });
576
+ connection.onRequest(types_1.ThemeGraphRootRequest.type, async (params) => {
577
+ if (hasUnsupportedDocument(params))
578
+ return '';
579
+ const { uri } = params;
580
+ const rootUri = await findThemeRootURI(uri).catch((_) => undefined);
581
+ if (!rootUri || platformos_check_common_1.path.dirname(rootUri) === rootUri) {
582
+ console.error(uri);
583
+ }
584
+ return rootUri;
585
+ });
586
+ connection.onRequest(types_1.ThemeGraphDeadCodeRequest.type, async (params) => {
587
+ if (hasUnsupportedDocument(params))
588
+ return [];
589
+ const { uri } = params;
590
+ const rootUri = await findThemeRootURI(uri);
591
+ if (!rootUri)
592
+ return [];
593
+ const deadFiles = await themeGraphManager.deadCode(rootUri);
594
+ return deadFiles;
595
+ });
596
+ connection.listen();
597
+ }
598
+ //# sourceMappingURL=startServer.js.map