@platformos/platformos-language-server-common 0.0.6 → 0.0.8

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 (247) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/PropertyShapeInference.d.ts +18 -0
  3. package/dist/PropertyShapeInference.js +58 -0
  4. package/dist/PropertyShapeInference.js.map +1 -1
  5. package/dist/TypeSystem.d.ts +4 -9
  6. package/dist/TypeSystem.js +234 -388
  7. package/dist/TypeSystem.js.map +1 -1
  8. package/dist/completions/CompletionsProvider.d.ts +6 -10
  9. package/dist/completions/CompletionsProvider.js +6 -9
  10. package/dist/completions/CompletionsProvider.js.map +1 -1
  11. package/dist/completions/params/LiquidCompletionParams.js +4 -16
  12. package/dist/completions/params/LiquidCompletionParams.js.map +1 -1
  13. package/dist/completions/providers/ContentForCompletionProvider.js +2 -4
  14. package/dist/completions/providers/ContentForCompletionProvider.js.map +1 -1
  15. package/dist/completions/providers/FilterCompletionProvider.js.map +1 -1
  16. package/dist/completions/providers/FilterNamedParameterCompletionProvider.d.ts +3 -3
  17. package/dist/completions/providers/FilterNamedParameterCompletionProvider.js +6 -6
  18. package/dist/completions/providers/FilterNamedParameterCompletionProvider.js.map +1 -1
  19. package/dist/completions/providers/LiquidDocParamTypeCompletionProvider.d.ts +3 -3
  20. package/dist/completions/providers/LiquidDocParamTypeCompletionProvider.js +3 -3
  21. package/dist/completions/providers/LiquidDocParamTypeCompletionProvider.js.map +1 -1
  22. package/dist/completions/providers/LiquidTagsCompletionProvider.d.ts +3 -3
  23. package/dist/completions/providers/LiquidTagsCompletionProvider.js +3 -3
  24. package/dist/completions/providers/LiquidTagsCompletionProvider.js.map +1 -1
  25. package/dist/completions/providers/RenderPartialParameterCompletionProvider.js +1 -1
  26. package/dist/completions/providers/RenderPartialParameterCompletionProvider.js.map +1 -1
  27. package/dist/completions/providers/TranslationCompletionProvider.js +1 -1
  28. package/dist/completions/providers/TranslationCompletionProvider.js.map +1 -1
  29. package/dist/completions/providers/index.d.ts +0 -3
  30. package/dist/completions/providers/index.js +1 -7
  31. package/dist/completions/providers/index.js.map +1 -1
  32. package/dist/css/CSSLanguageService.d.ts +19 -5
  33. package/dist/css/CSSLanguageService.js +77 -63
  34. package/dist/css/CSSLanguageService.js.map +1 -1
  35. package/dist/definitions/DefinitionProvider.d.ts +1 -1
  36. package/dist/definitions/DefinitionProvider.js +1 -3
  37. package/dist/definitions/DefinitionProvider.js.map +1 -1
  38. package/dist/diagnostics/offenseToDiagnostic.js +1 -1
  39. package/dist/diagnostics/offenseToDiagnostic.js.map +1 -1
  40. package/dist/diagnostics/runChecks.d.ts +3 -5
  41. package/dist/diagnostics/runChecks.js +12 -64
  42. package/dist/diagnostics/runChecks.js.map +1 -1
  43. package/dist/docset/MarkdownRenderer.js +1 -1
  44. package/dist/docset/MarkdownRenderer.js.map +1 -1
  45. package/dist/documentHighlights/providers/HtmlTagNameDocumentHighlightsProvider.d.ts +1 -1
  46. package/dist/documentLinks/DocumentLinksProvider.d.ts +3 -3
  47. package/dist/documentLinks/DocumentLinksProvider.js +3 -3
  48. package/dist/documentLinks/DocumentLinksProvider.js.map +1 -1
  49. package/dist/documents/DocumentManager.d.ts +4 -5
  50. package/dist/documents/DocumentManager.js +12 -11
  51. package/dist/documents/DocumentManager.js.map +1 -1
  52. package/dist/documents/types.d.ts +16 -3
  53. package/dist/documents/types.js +3 -3
  54. package/dist/documents/types.js.map +1 -1
  55. package/dist/formatting/OnTypeFormattingProvider.d.ts +1 -1
  56. package/dist/formatting/providers/HtmlElementAutoclosingOnTypeFormattingProvider.js.map +1 -1
  57. package/dist/hover/HoverProvider.d.ts +5 -8
  58. package/dist/hover/HoverProvider.js +8 -14
  59. package/dist/hover/HoverProvider.js.map +1 -1
  60. package/dist/hover/providers/LiquidFilterArgumentHoverProvider.d.ts +3 -3
  61. package/dist/hover/providers/LiquidFilterArgumentHoverProvider.js +3 -3
  62. package/dist/hover/providers/LiquidFilterArgumentHoverProvider.js.map +1 -1
  63. package/dist/hover/providers/LiquidFilterHoverProvider.d.ts +3 -3
  64. package/dist/hover/providers/LiquidFilterHoverProvider.js +3 -3
  65. package/dist/hover/providers/LiquidFilterHoverProvider.js.map +1 -1
  66. package/dist/hover/providers/LiquidTagHoverProvider.d.ts +3 -3
  67. package/dist/hover/providers/LiquidTagHoverProvider.js +3 -3
  68. package/dist/hover/providers/LiquidTagHoverProvider.js.map +1 -1
  69. package/dist/hover/providers/RenderPartialHoverProvider.js +1 -1
  70. package/dist/hover/providers/RenderPartialHoverProvider.js.map +1 -1
  71. package/dist/hover/providers/RenderPartialParameterHoverProvider.js +1 -1
  72. package/dist/hover/providers/RenderPartialParameterHoverProvider.js.map +1 -1
  73. package/dist/hover/providers/TranslationHoverProvider.d.ts +3 -3
  74. package/dist/hover/providers/TranslationHoverProvider.js +3 -3
  75. package/dist/hover/providers/TranslationHoverProvider.js.map +1 -1
  76. package/dist/index.d.ts +1 -1
  77. package/dist/index.js.map +1 -1
  78. package/dist/internal-types.d.ts +1 -1
  79. package/dist/json/JSONContributions.d.ts +1 -5
  80. package/dist/json/JSONContributions.js +4 -36
  81. package/dist/json/JSONContributions.js.map +1 -1
  82. package/dist/json/JSONLanguageService.d.ts +4 -12
  83. package/dist/json/JSONLanguageService.js +17 -80
  84. package/dist/json/JSONLanguageService.js.map +1 -1
  85. package/dist/json/test/test-helpers.d.ts +1 -3
  86. package/dist/json/test/test-helpers.js +3 -19
  87. package/dist/json/test/test-helpers.js.map +1 -1
  88. package/dist/json/utils.d.ts +0 -5
  89. package/dist/json/utils.js +0 -24
  90. package/dist/json/utils.js.map +1 -1
  91. package/dist/linkedEditingRanges/providers/HtmlTagNameLinkedRangesProvider.d.ts +1 -1
  92. package/dist/progress.js.map +1 -1
  93. package/dist/rename/RenameProvider.d.ts +2 -2
  94. package/dist/rename/RenameProvider.js +2 -2
  95. package/dist/rename/RenameProvider.js.map +1 -1
  96. package/dist/rename/providers/LiquidVariableRenameProvider.d.ts +3 -3
  97. package/dist/rename/providers/LiquidVariableRenameProvider.js +4 -4
  98. package/dist/rename/providers/LiquidVariableRenameProvider.js.map +1 -1
  99. package/dist/renamed/RenameHandler.d.ts +2 -3
  100. package/dist/renamed/RenameHandler.js +3 -8
  101. package/dist/renamed/RenameHandler.js.map +1 -1
  102. package/dist/renamed/handlers/AssetRenameHandler.d.ts +3 -3
  103. package/dist/renamed/handlers/AssetRenameHandler.js +5 -5
  104. package/dist/renamed/handlers/AssetRenameHandler.js.map +1 -1
  105. package/dist/renamed/handlers/PartialRenameHandler.d.ts +3 -3
  106. package/dist/renamed/handlers/PartialRenameHandler.js +5 -5
  107. package/dist/renamed/handlers/PartialRenameHandler.js.map +1 -1
  108. package/dist/renamed/handlers/utils.d.ts +1 -1
  109. package/dist/server/AppGraphManager.d.ts +32 -0
  110. package/dist/server/AppGraphManager.js +155 -0
  111. package/dist/server/AppGraphManager.js.map +1 -0
  112. package/dist/server/Configuration.js.map +1 -1
  113. package/dist/server/startServer.d.ts +2 -2
  114. package/dist/server/startServer.js +62 -164
  115. package/dist/server/startServer.js.map +1 -1
  116. package/dist/tsconfig.tsbuildinfo +1 -1
  117. package/dist/types.d.ts +33 -54
  118. package/dist/types.js +21 -26
  119. package/dist/types.js.map +1 -1
  120. package/dist/utils/liquidDoc.js +1 -1
  121. package/dist/utils/liquidDoc.js.map +1 -1
  122. package/dist/utils/uri.d.ts +0 -8
  123. package/dist/utils/uri.js +1 -17
  124. package/dist/utils/uri.js.map +1 -1
  125. package/package.json +9 -9
  126. package/src/PropertyShapeInference.ts +76 -1
  127. package/src/TypeSystem.spec.ts +187 -452
  128. package/src/TypeSystem.ts +253 -459
  129. package/src/completions/CompletionsProvider.ts +13 -34
  130. package/src/completions/params/LiquidCompletionParams.spec.ts +0 -9
  131. package/src/completions/params/LiquidCompletionParams.ts +4 -14
  132. package/src/completions/params/fix.spec.ts +0 -3
  133. package/src/completions/providers/FilterCompletionProvider.spec.ts +2 -8
  134. package/src/completions/providers/FilterCompletionProvider.ts +6 -6
  135. package/src/completions/providers/FilterNamedParameterCompletionProvider.spec.ts +1 -5
  136. package/src/completions/providers/FilterNamedParameterCompletionProvider.ts +6 -6
  137. package/src/completions/providers/HtmlAttributeCompletionProvider.spec.ts +1 -4
  138. package/src/completions/providers/HtmlAttributeValueCompletionProvider.spec.ts +1 -4
  139. package/src/completions/providers/HtmlTagCompletionProvider.spec.ts +1 -4
  140. package/src/completions/providers/LiquidDocParamTypeCompletionProvider.spec.ts +1 -28
  141. package/src/completions/providers/LiquidDocParamTypeCompletionProvider.ts +3 -3
  142. package/src/completions/providers/LiquidDocTagCompletionProvider.spec.ts +1 -26
  143. package/src/completions/providers/LiquidTagsCompletionProvider.spec.ts +2 -16
  144. package/src/completions/providers/LiquidTagsCompletionProvider.ts +3 -3
  145. package/src/completions/providers/ObjectAttributeCompletionProvider.spec.ts +2 -31
  146. package/src/completions/providers/ObjectCompletionProvider.spec.ts +34 -123
  147. package/src/completions/providers/PartialCompletionProvider.spec.ts +4 -13
  148. package/src/completions/providers/RenderPartialParameterCompletionProvider.spec.ts +3 -5
  149. package/src/completions/providers/RenderPartialParameterCompletionProvider.ts +0 -1
  150. package/src/completions/providers/TranslationCompletionProvider.spec.ts +1 -4
  151. package/src/completions/providers/TranslationCompletionProvider.ts +1 -1
  152. package/src/completions/providers/index.ts +0 -3
  153. package/src/css/CSSLanguageService.ts +97 -81
  154. package/src/definitions/DefinitionProvider.ts +0 -6
  155. package/src/definitions/providers/TranslationStringDefinitionProvider.spec.ts +1 -5
  156. package/src/diagnostics/offenseToDiagnostic.ts +1 -1
  157. package/src/diagnostics/runChecks.spec.ts +16 -24
  158. package/src/diagnostics/runChecks.ts +17 -91
  159. package/src/docset/MarkdownRenderer.ts +1 -1
  160. package/src/documentLinks/DocumentLinksProvider.ts +3 -3
  161. package/src/documents/DocumentManager.spec.ts +12 -97
  162. package/src/documents/DocumentManager.ts +13 -14
  163. package/src/documents/types.ts +18 -9
  164. package/src/formatting/providers/HtmlElementAutoclosingOnTypeFormattingProvider.ts +1 -3
  165. package/src/hover/HoverProvider.ts +9 -21
  166. package/src/hover/providers/HtmlAttributeHoverProvider.spec.ts +1 -3
  167. package/src/hover/providers/HtmlAttributeValueHoverProvider.spec.ts +1 -3
  168. package/src/hover/providers/HtmlTagHoverProvider.spec.ts +1 -3
  169. package/src/hover/providers/LiquidDocTagHoverProvider.spec.ts +0 -3
  170. package/src/hover/providers/LiquidFilterArgumentHoverProvider.spec.ts +0 -3
  171. package/src/hover/providers/LiquidFilterArgumentHoverProvider.ts +3 -3
  172. package/src/hover/providers/LiquidFilterHoverProvider.spec.ts +0 -3
  173. package/src/hover/providers/LiquidFilterHoverProvider.ts +3 -3
  174. package/src/hover/providers/LiquidObjectAttributeHoverProvider.spec.ts +1 -3
  175. package/src/hover/providers/LiquidObjectHoverProvider.spec.ts +46 -129
  176. package/src/hover/providers/LiquidTagHoverProvider.spec.ts +0 -3
  177. package/src/hover/providers/LiquidTagHoverProvider.ts +3 -3
  178. package/src/hover/providers/RenderPartialHoverProvider.spec.ts +1 -4
  179. package/src/hover/providers/RenderPartialHoverProvider.ts +1 -5
  180. package/src/hover/providers/RenderPartialParameterHoverProvider.spec.ts +1 -4
  181. package/src/hover/providers/RenderPartialParameterHoverProvider.ts +0 -1
  182. package/src/hover/providers/TranslationHoverProvider.spec.ts +1 -4
  183. package/src/hover/providers/TranslationHoverProvider.ts +3 -3
  184. package/src/index.ts +2 -5
  185. package/src/internal-types.ts +1 -1
  186. package/src/json/JSONContributions.ts +4 -61
  187. package/src/json/JSONLanguageService.ts +19 -117
  188. package/src/json/test/test-helpers.ts +4 -35
  189. package/src/json/utils.ts +0 -27
  190. package/src/progress.ts +4 -1
  191. package/src/rename/RenameProvider.ts +3 -3
  192. package/src/rename/providers/LiquidVariableRenameProvider.spec.ts +4 -4
  193. package/src/rename/providers/LiquidVariableRenameProvider.ts +4 -4
  194. package/src/renamed/RenameHandler.ts +4 -9
  195. package/src/renamed/handlers/AssetRenameHandler.spec.ts +3 -3
  196. package/src/renamed/handlers/AssetRenameHandler.ts +5 -5
  197. package/src/renamed/handlers/PartialRenameHandler.spec.ts +2 -2
  198. package/src/renamed/handlers/PartialRenameHandler.ts +5 -5
  199. package/src/renamed/handlers/utils.ts +1 -1
  200. package/src/server/{ThemeGraphManager.ts → AppGraphManager.ts} +21 -90
  201. package/src/server/Configuration.ts +4 -1
  202. package/src/server/startServer.spec.ts +7 -9
  203. package/src/server/startServer.ts +65 -217
  204. package/src/test/CompletionItemsAssertion.spec.ts +1 -4
  205. package/src/types.ts +33 -63
  206. package/src/utils/liquidDoc.ts +1 -1
  207. package/src/utils/uri.ts +0 -14
  208. package/src/completions/providers/ContentForBlockTypeCompletionProvider.spec.ts +0 -41
  209. package/src/completions/providers/ContentForBlockTypeCompletionProvider.ts +0 -42
  210. package/src/completions/providers/ContentForCompletionProvider.spec.ts +0 -96
  211. package/src/completions/providers/ContentForCompletionProvider.ts +0 -113
  212. package/src/completions/providers/ContentForParameterCompletionProvider.spec.ts +0 -362
  213. package/src/completions/providers/ContentForParameterCompletionProvider.ts +0 -187
  214. package/src/completions/providers/data/contentForParameterCompletionOptions.ts +0 -9
  215. package/src/css/CSSLanguageService.spec.ts +0 -161
  216. package/src/css/test/test-helpers.ts +0 -30
  217. package/src/definitions/providers/SchemaTranslationStringDefinitionProvider.spec.ts +0 -96
  218. package/src/definitions/providers/SchemaTranslationStringDefinitionProvider.ts +0 -82
  219. package/src/hover/providers/ContentForArgumentHoverProvider.spec.ts +0 -76
  220. package/src/hover/providers/ContentForArgumentHoverProvider.ts +0 -56
  221. package/src/hover/providers/ContentForTypeHoverProvider.spec.ts +0 -91
  222. package/src/hover/providers/ContentForTypeHoverProvider.ts +0 -42
  223. package/src/json/JSONLanguageService.spec.ts +0 -424
  224. package/src/json/completions/providers/BlockSettingsPropertyCompletionProvider.spec.ts +0 -163
  225. package/src/json/completions/providers/BlockSettingsPropertyCompletionProvider.ts +0 -121
  226. package/src/json/completions/providers/BlockTypeCompletionProvider.spec.ts +0 -137
  227. package/src/json/completions/providers/BlockTypeCompletionProvider.ts +0 -108
  228. package/src/json/completions/providers/ReferencedBlockTypeCompletionProvider.spec.ts +0 -132
  229. package/src/json/completions/providers/ReferencedBlockTypeCompletionProvider.ts +0 -120
  230. package/src/json/completions/providers/SchemaTranslationCompletionProvider.ts +0 -51
  231. package/src/json/completions/providers/SettingsPropertyCompletionProvider.spec.ts +0 -211
  232. package/src/json/completions/providers/SettingsPropertyCompletionProvider.ts +0 -75
  233. package/src/json/documentLinks/DocumentLinksProvider.spec.ts +0 -223
  234. package/src/json/documentLinks/DocumentLinksProvider.ts +0 -61
  235. package/src/json/hover/providers/BlockSettingsHoverProvider.spec.ts +0 -292
  236. package/src/json/hover/providers/BlockSettingsHoverProvider.ts +0 -99
  237. package/src/json/hover/providers/SchemaTranslationHoverProvider.ts +0 -35
  238. package/src/json/hover/providers/SettingsHoverProvider.spec.ts +0 -139
  239. package/src/json/hover/providers/SettingsHoverProvider.ts +0 -79
  240. package/src/json/schemaSettings.spec.ts +0 -103
  241. package/src/json/schemaSettings.ts +0 -53
  242. package/src/plugins/css.ts +0 -12
  243. package/src/renamed/handlers/BlockRenameHandler.spec.ts +0 -399
  244. package/src/renamed/handlers/BlockRenameHandler.ts +0 -402
  245. package/src/renamed/handlers/SectionRenameHandler.spec.ts +0 -321
  246. package/src/renamed/handlers/SectionRenameHandler.ts +0 -224
  247. package/src/settings/index.ts +0 -50
@@ -2,12 +2,10 @@ import { describe, beforeEach, it, expect, vi } from 'vitest';
2
2
  import { CompletionItemKind } from 'vscode-languageserver';
3
3
  import { DocumentManager } from '../../documents';
4
4
  import { CompletionsProvider } from '../CompletionsProvider';
5
- import { SettingsSchemaJSONFile } from '../../settings';
6
- import { MetafieldDefinitionMap, ObjectEntry } from '@platformos/platformos-check-common';
5
+ import { ObjectEntry } from '@platformos/platformos-check-common';
7
6
 
8
7
  describe('Module: ObjectAttributeCompletionProvider', async () => {
9
8
  let provider: CompletionsProvider;
10
- let settingsProvider: any;
11
9
 
12
10
  beforeEach(async () => {
13
11
  const _objects: ObjectEntry[] = [
@@ -62,10 +60,9 @@ describe('Module: ObjectAttributeCompletionProvider', async () => {
62
60
  },
63
61
  ];
64
62
 
65
- settingsProvider = vi.fn().mockResolvedValue([]);
66
63
  provider = new CompletionsProvider({
67
64
  documentManager: new DocumentManager(),
68
- themeDocset: {
65
+ platformosDocset: {
69
66
  graphQL: async () => null,
70
67
  filters: async () => [
71
68
  { name: 'split', return_type: [{ type: 'array', array_value: 'string' }] },
@@ -75,10 +72,7 @@ describe('Module: ObjectAttributeCompletionProvider', async () => {
75
72
  objects: async () => _objects,
76
73
  liquidDrops: async () => _objects,
77
74
  tags: async () => [],
78
- systemTranslations: async () => ({}),
79
75
  },
80
- getThemeSettingsSchemaForURI: settingsProvider,
81
- getMetafieldDefinitions: async (_rootUri: string) => ({} as MetafieldDefinitionMap),
82
76
  });
83
77
  });
84
78
 
@@ -498,27 +492,4 @@ describe('Module: ObjectAttributeCompletionProvider', async () => {
498
492
  await expect(provider).to.complete(source, ['deep']);
499
493
  });
500
494
  });
501
-
502
- describe('Case: global settings', () => {
503
- it('should complete basic settings by id as expected', async () => {
504
- const settings: SettingsSchemaJSONFile = [
505
- {
506
- name: 'Category',
507
- settings: [
508
- {
509
- type: 'product',
510
- id: 'my_product_setting',
511
- label: 'Product',
512
- },
513
- ],
514
- },
515
- ];
516
- settingsProvider.mockResolvedValue(settings);
517
-
518
- const source = `
519
- {{ settings.█ }}
520
- `;
521
- await expect(provider).to.complete(source, ['my_product_setting']);
522
- });
523
- });
524
495
  });
@@ -1,33 +1,24 @@
1
1
  import { describe, beforeEach, it, expect } from 'vitest';
2
2
  import { DocumentManager } from '../../documents';
3
3
  import { CompletionsProvider } from '../CompletionsProvider';
4
- import { MetafieldDefinitionMap, ObjectEntry } from '@platformos/platformos-check-common';
4
+ import { ObjectEntry } from '@platformos/platformos-check-common';
5
5
 
6
6
  describe('Module: ObjectCompletionProvider', async () => {
7
7
  let provider: CompletionsProvider;
8
8
 
9
9
  beforeEach(async () => {
10
10
  const _objects: ObjectEntry[] = [
11
- { name: 'all_products' },
12
- { name: 'global' },
13
- {
14
- name: 'section',
15
- access: {
16
- global: false,
17
- template: [],
18
- parents: [],
19
- },
20
- },
21
11
  {
22
- name: 'block',
23
- access: {
24
- global: false,
25
- template: [],
26
- parents: [],
27
- },
12
+ name: 'context',
13
+ access: { global: true, parents: [], template: [] },
14
+ properties: [
15
+ { name: 'current_user', return_type: [{ type: 'current_user', name: '' }] },
16
+ { name: 'params', return_type: [{ type: 'untyped', name: '' }] },
17
+ ],
28
18
  },
19
+ { name: 'global' },
29
20
  {
30
- name: 'predictive_search',
21
+ name: 'form',
31
22
  access: {
32
23
  global: false,
33
24
  template: [],
@@ -35,7 +26,7 @@ describe('Module: ObjectCompletionProvider', async () => {
35
26
  },
36
27
  },
37
28
  {
38
- name: 'recommendations',
29
+ name: 'app',
39
30
  access: {
40
31
  global: false,
41
32
  template: [],
@@ -43,107 +34,43 @@ describe('Module: ObjectCompletionProvider', async () => {
43
34
  },
44
35
  },
45
36
  {
46
- name: 'product',
47
- properties: [
48
- {
49
- name: 'metafields',
50
- },
51
- ],
52
- },
53
- {
54
- name: 'metafield',
55
- access: {
56
- global: false,
57
- template: [],
58
- parents: [],
59
- },
60
- properties: [
61
- {
62
- name: 'type',
63
- description: 'the type of the metafield',
64
- return_type: [{ type: 'string', name: '' }],
65
- },
66
- {
67
- name: 'value',
68
- description: 'the value of the metafield',
69
- return_type: [{ type: 'untyped', name: '' }],
70
- },
71
- ],
37
+ name: 'current_user',
38
+ access: { global: false, parents: [], template: [] },
39
+ properties: [{ name: 'name' }, { name: 'email' }],
72
40
  },
73
41
  ];
74
42
 
75
43
  provider = new CompletionsProvider({
76
44
  documentManager: new DocumentManager(),
77
- themeDocset: {
45
+ platformosDocset: {
78
46
  graphQL: async () => null,
79
47
  filters: async () => [],
80
48
  objects: async () => _objects,
81
49
  liquidDrops: async () => _objects,
82
50
  tags: async () => [],
83
- systemTranslations: async () => ({}),
84
- },
85
- getMetafieldDefinitions: async (_rootUri: string) => {
86
- return {
87
- article: [],
88
- blog: [],
89
- collection: [],
90
- company: [],
91
- company_location: [],
92
- location: [],
93
- market: [],
94
- order: [],
95
- page: [],
96
- product: [
97
- {
98
- key: 'color',
99
- name: 'color',
100
- namespace: 'custom',
101
- description: 'the color of the product',
102
- type: {
103
- category: 'COLOR',
104
- name: 'color',
105
- },
106
- },
107
- ],
108
- variant: [],
109
- shop: [],
110
- } as MetafieldDefinitionMap;
111
51
  },
112
52
  });
113
53
  });
114
54
 
115
55
  it('should complete variable lookups', async () => {
116
56
  const contexts = [
117
- `{{ a█`,
118
- `{% echo a█ %}`,
119
- `{% assign x = a█ %}`,
120
- `{% for a in a█ %}`,
121
- `{% for a in b reversed limit: a█ %}`,
122
- `{% paginate b by a█ %}`,
123
- `{% paginate b by col, window_size: a█ %}`,
124
- `{% if a█ %}`,
125
- `{% if a > a█ %}`,
126
- `{% if a > b or a%}`,
127
- `{% if a > b or c > a%}`,
128
- `{% elsif a > a%}`,
129
- `{% when a%}`,
130
- `{% when a, a%}`,
131
- `{% cycle a█ %}`,
132
- `{% cycle 'foo', a█ %}`,
133
- `{% cycle 'foo': a█ %}`,
134
- `{% render 'snip', var: a█ %}`,
135
- `{% render 'snip' for a█ as item %}`,
136
- `{% render 'snip' with a█ as name %}`,
137
- `{% for x in (1..a█) %}`,
138
- // `{% paginate a█ by 50 %}`,
139
- `<a-{{ a█ }}`,
140
- `<a data-{{ a█ }}`,
141
- `<a data={{ a█ }}`,
142
- `<a data="{{ a█ }}"`,
143
- `<a data='x{{ a█ }}'`,
57
+ `{{ c█`,
58
+ `{% echo c█ %}`,
59
+ `{% assign x = c█ %}`,
60
+ `{% for a in c█ %}`,
61
+ `{% for a in b reversed limit: c█ %}`,
62
+ `{% if c█ %}`,
63
+ `{% if a > c█ %}`,
64
+ `{% if a > b or c█ %}`,
65
+ `{% for x in (1..c) %}`,
66
+ `<a-{{ c█ }}`,
67
+ `<a data-{{ c█ }}`,
68
+ `<a data={{ c█ }}`,
69
+ `<a data="{{ c█ }}"`,
70
+ `<a data='x{{ c█ }}'`,
144
71
  ];
145
72
  await Promise.all(
146
- contexts.map((context) => expect(provider, context).to.complete(context, ['all_products'])),
73
+ contexts.map((context) => expect(provider, context).to.complete(context, ['context'])),
147
74
  );
148
75
  });
149
76
 
@@ -154,8 +81,6 @@ describe('Module: ObjectCompletionProvider', async () => {
154
81
  `{% assign x = █ %}`,
155
82
  `{% for a in █ %}`,
156
83
  `{% for a in b reversed limit: █ %}`,
157
- `{% paginate b by █ %}`,
158
- `{% paginate b by col, window_size: █ %}`,
159
84
  `{% if █ %}`,
160
85
  `{% if a > █ %}`,
161
86
  `{% if a > b or █ %}`,
@@ -170,7 +95,6 @@ describe('Module: ObjectCompletionProvider', async () => {
170
95
  `{% render 'snip' for █ as item %}`,
171
96
  `{% render 'snip' with █ as name %}`,
172
97
  `{% for x in (1..█) %}`,
173
- // `{% paginate █ by 50 %}`,
174
98
  `<a-{{ █ }}`,
175
99
  `<a data-{{ █ }}`,
176
100
  `<a data={{ █ }}`,
@@ -180,17 +104,15 @@ describe('Module: ObjectCompletionProvider', async () => {
180
104
 
181
105
  await Promise.all(
182
106
  contexts.map((context) =>
183
- expect(provider, context).to.complete(context, ['all_products', 'global', 'product']),
107
+ expect(provider, context).to.complete(context, ['context', 'global']),
184
108
  ),
185
109
  );
186
110
  });
187
111
 
188
112
  it('should complete contextual variables', async () => {
189
113
  const contexts: [string, string][] = [
190
- ['{% paginate all_products by 5 %}{{ pagi█ }}{% endpaginate %}', 'paginate'],
191
- ['{% form "cart" %}{{ for█ }}{% endform %}', 'form'],
192
- ['{% for p in all_products %}{{ for█ }}{% endfor %}', 'forloop'],
193
- ['{% tablerow p in all_products %}{{ tablerow█ }}{% endtablerow %}', 'tablerowloop'],
114
+ ['{% for p in context.posts %}{{ for█ }}{% endfor %}', 'forloop'],
115
+ ['{% tablerow p in context.posts %}{{ tablerow█ }}{% endtablerow %}', 'tablerowloop'],
194
116
  ['{% layout non█ %}', 'none'],
195
117
  ['{% increment var %}{{ var█ }}', 'var'],
196
118
  ['{% decrement var %}{{ var█ }}', 'var'],
@@ -205,10 +127,8 @@ describe('Module: ObjectCompletionProvider', async () => {
205
127
 
206
128
  it('should complete relative-path-dependent contextual variables', async () => {
207
129
  const contexts: [string, string][] = [
208
- ['section', 'sections/main-product.liquid'],
209
- ['block', 'blocks/my-block.liquid'],
210
- ['predictive_search', 'sections/predictive-search.liquid'],
211
- ['recommendations', 'sections/recommendations.liquid'],
130
+ ['app', 'app/views/partials/my-partial.liquid'],
131
+ ['app', 'app/lib/helpers/my-helper.liquid'],
212
132
  ];
213
133
  for (const [object, relativePath] of contexts) {
214
134
  const source = `{{ ${object}█ }}`;
@@ -220,13 +140,4 @@ describe('Module: ObjectCompletionProvider', async () => {
220
140
  it('should not complete anything if there is nothing to complete', async () => {
221
141
  await expect(provider).to.complete('{% assign x = "█" %}', []);
222
142
  });
223
-
224
- it('should complete metafields defined by getMetafieldDefinitions', async () => {
225
- await expect(provider).to.complete('{% echo product.metafields.█ %}', ['custom']);
226
- await expect(provider).to.complete('{% echo product.metafields.custom.█ %}', ['color']);
227
- await expect(provider).to.complete('{% echo product.metafields.custom.color.█ %}', [
228
- 'type',
229
- 'value',
230
- ]);
231
- });
232
143
  });
@@ -1,7 +1,6 @@
1
1
  import { describe, beforeEach, it, expect } from 'vitest';
2
2
  import { DocumentManager } from '../../documents';
3
3
  import { CompletionsProvider } from '../CompletionsProvider';
4
- import { MetafieldDefinitionMap } from '@platformos/platformos-check-common';
5
4
 
6
5
  describe('Module: RenderSnippetCompletionProvider', async () => {
7
6
  let provider: CompletionsProvider;
@@ -9,17 +8,15 @@ describe('Module: RenderSnippetCompletionProvider', async () => {
9
8
  beforeEach(async () => {
10
9
  provider = new CompletionsProvider({
11
10
  documentManager: new DocumentManager(),
12
- themeDocset: {
11
+ platformosDocset: {
13
12
  graphQL: async () => null,
14
13
  filters: async () => [],
15
14
  objects: async () => [],
16
15
  liquidDrops: async () => [],
17
16
  tags: async () => [],
18
- systemTranslations: async () => ({}),
19
17
  },
20
18
  getTranslationsForURI: async (_) => ({}),
21
19
  getPartialNamesForURI: async (_) => ['product-card', 'image'],
22
- getMetafieldDefinitions: async (_rootUri: string) => ({} as MetafieldDefinitionMap),
23
20
  });
24
21
  });
25
22
 
@@ -32,13 +29,12 @@ describe('Module: PartialCompletionProvider with paths', async () => {
32
29
  it('should complete module paths - /modules/user/commands/test', async () => {
33
30
  const provider = new CompletionsProvider({
34
31
  documentManager: new DocumentManager(),
35
- themeDocset: {
32
+ platformosDocset: {
36
33
  graphQL: async () => null,
37
34
  filters: async () => [],
38
35
  objects: async () => [],
39
36
  liquidDrops: async () => [],
40
37
  tags: async () => [],
41
- systemTranslations: async () => ({}),
42
38
  },
43
39
  getTranslationsForURI: async (_) => ({}),
44
40
  getPartialNamesForURI: async (_uri, partial, _tag) => {
@@ -47,7 +43,6 @@ describe('Module: PartialCompletionProvider with paths', async () => {
47
43
  }
48
44
  return [];
49
45
  },
50
- getMetafieldDefinitions: async (_rootUri: string) => ({} as MetafieldDefinitionMap),
51
46
  });
52
47
 
53
48
  await expect(provider).to.complete('{% render "/modules/user/commands', ['test']);
@@ -56,13 +51,12 @@ describe('Module: PartialCompletionProvider with paths', async () => {
56
51
  it('should complete root commands path - /commands/test2', async () => {
57
52
  const provider = new CompletionsProvider({
58
53
  documentManager: new DocumentManager(),
59
- themeDocset: {
54
+ platformosDocset: {
60
55
  graphQL: async () => null,
61
56
  filters: async () => [],
62
57
  objects: async () => [],
63
58
  liquidDrops: async () => [],
64
59
  tags: async () => [],
65
- systemTranslations: async () => ({}),
66
60
  },
67
61
  getTranslationsForURI: async (_) => ({}),
68
62
  getPartialNamesForURI: async (_uri, partial, _tag) => {
@@ -71,7 +65,6 @@ describe('Module: PartialCompletionProvider with paths', async () => {
71
65
  }
72
66
  return [];
73
67
  },
74
- getMetafieldDefinitions: async (_rootUri: string) => ({} as MetafieldDefinitionMap),
75
68
  });
76
69
 
77
70
  await expect(provider).to.complete('{% render "/commands', ['test2']);
@@ -80,13 +73,12 @@ describe('Module: PartialCompletionProvider with paths', async () => {
80
73
  it('should complete multiple files in directory', async () => {
81
74
  const provider = new CompletionsProvider({
82
75
  documentManager: new DocumentManager(),
83
- themeDocset: {
76
+ platformosDocset: {
84
77
  graphQL: async () => null,
85
78
  filters: async () => [],
86
79
  objects: async () => [],
87
80
  liquidDrops: async () => [],
88
81
  tags: async () => [],
89
- systemTranslations: async () => ({}),
90
82
  },
91
83
  getTranslationsForURI: async (_) => ({}),
92
84
  getPartialNamesForURI: async (_uri, partial, _tag) => {
@@ -95,7 +87,6 @@ describe('Module: PartialCompletionProvider with paths', async () => {
95
87
  }
96
88
  return [];
97
89
  },
98
- getMetafieldDefinitions: async (_rootUri: string) => ({} as MetafieldDefinitionMap),
99
90
  });
100
91
 
101
92
  await expect(provider).to.complete('{% render "/modules/user/commands', [
@@ -1,7 +1,7 @@
1
1
  import { describe, beforeEach, it, expect } from 'vitest';
2
2
  import { CompletionsProvider } from '../CompletionsProvider';
3
3
  import { DocumentManager } from '../../documents';
4
- import { MetafieldDefinitionMap, DocDefinition } from '@platformos/platformos-check-common';
4
+ import { DocDefinition } from '@platformos/platformos-check-common';
5
5
 
6
6
  const uri = 'file:///snippets/product-card.liquid';
7
7
 
@@ -54,16 +54,14 @@ describe('Module: RenderSnippetParameterCompletionProvider', async () => {
54
54
  beforeEach(async () => {
55
55
  provider = new CompletionsProvider({
56
56
  documentManager: new DocumentManager(),
57
- themeDocset: {
57
+ platformosDocset: {
58
58
  graphQL: async () => null,
59
59
  filters: async () => [],
60
60
  objects: async () => [],
61
61
  liquidDrops: async () => [],
62
62
  tags: async () => [],
63
- systemTranslations: async () => ({}),
64
63
  },
65
- getMetafieldDefinitions: async (_rootUri: string) => ({} as MetafieldDefinitionMap),
66
- getDocDefinitionForURI: async (_uri, _type, snippetName) => {
64
+ getDocDefinitionForURI: async (_uri, snippetName) => {
67
65
  if (mockSnippetName === snippetName) {
68
66
  return mockSnippetDefinition;
69
67
  }
@@ -37,7 +37,6 @@ export class RenderPartialParameterCompletionProvider implements Provider {
37
37
 
38
38
  const partialDefinition = await this.getDocDefinitionForURI(
39
39
  params.textDocument.uri,
40
- 'app/views/partials',
41
40
  parentNode.snippet.value,
42
41
  );
43
42
 
@@ -1,7 +1,6 @@
1
1
  import { describe, beforeEach, it, expect } from 'vitest';
2
2
  import { DocumentManager } from '../../documents';
3
3
  import { CompletionsProvider } from '../CompletionsProvider';
4
- import { MetafieldDefinitionMap } from '@platformos/platformos-check-common';
5
4
 
6
5
  describe('Module: TranslationCompletionProvider', async () => {
7
6
  let provider: CompletionsProvider;
@@ -9,15 +8,13 @@ describe('Module: TranslationCompletionProvider', async () => {
9
8
  beforeEach(async () => {
10
9
  provider = new CompletionsProvider({
11
10
  documentManager: new DocumentManager(),
12
- themeDocset: {
11
+ platformosDocset: {
13
12
  graphQL: async () => null,
14
13
  filters: async () => [],
15
14
  objects: async () => [],
16
15
  liquidDrops: async () => [],
17
16
  tags: async () => [],
18
- systemTranslations: async () => ({}),
19
17
  },
20
- getMetafieldDefinitions: async (_rootUri: string) => ({} as MetafieldDefinitionMap),
21
18
  getTranslationsForURI: async (_) => ({
22
19
  general: {
23
20
  username_html: '<b>username</b>',
@@ -82,7 +82,7 @@ export class TranslationCompletionProvider implements Provider {
82
82
 
83
83
  return options.map(({ path, translation }): CompletionItem => {
84
84
  const params = extractParams(
85
- typeof translation === 'string' ? translation : Object.values(translation)[0] ?? '',
85
+ typeof translation === 'string' ? translation : (Object.values(translation)[0] ?? ''),
86
86
  );
87
87
  const parameters = paramsString(params);
88
88
  return {
@@ -1,6 +1,3 @@
1
- export { ContentForCompletionProvider } from './ContentForCompletionProvider';
2
- export { ContentForBlockTypeCompletionProvider } from './ContentForBlockTypeCompletionProvider';
3
- export { ContentForParameterCompletionProvider } from './ContentForParameterCompletionProvider';
4
1
  export { HtmlTagCompletionProvider } from './HtmlTagCompletionProvider';
5
2
  export { HtmlAttributeCompletionProvider } from './HtmlAttributeCompletionProvider';
6
3
  export { HtmlAttributeValueCompletionProvider } from './HtmlAttributeValueCompletionProvider';