@platformos/platformos-language-server-common 0.0.7 → 0.0.9

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 (249) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/PropertyShapeInference.d.ts +18 -0
  3. package/dist/PropertyShapeInference.js +62 -0
  4. package/dist/PropertyShapeInference.js.map +1 -1
  5. package/dist/TypeSystem.d.ts +4 -9
  6. package/dist/TypeSystem.js +246 -390
  7. package/dist/TypeSystem.js.map +1 -1
  8. package/dist/codeActions/providers/GenerateDocBlockProvider.d.ts +10 -0
  9. package/dist/codeActions/providers/GenerateDocBlockProvider.js +39 -0
  10. package/dist/codeActions/providers/GenerateDocBlockProvider.js.map +1 -0
  11. package/dist/commands/providers/GenerateDocBlockCommandProvider.d.ts +19 -0
  12. package/dist/commands/providers/GenerateDocBlockCommandProvider.js +64 -0
  13. package/dist/commands/providers/GenerateDocBlockCommandProvider.js.map +1 -0
  14. package/dist/completions/CompletionsProvider.d.ts +6 -10
  15. package/dist/completions/CompletionsProvider.js +6 -9
  16. package/dist/completions/CompletionsProvider.js.map +1 -1
  17. package/dist/completions/params/LiquidCompletionParams.js +6 -17
  18. package/dist/completions/params/LiquidCompletionParams.js.map +1 -1
  19. package/dist/completions/providers/ContentForCompletionProvider.js +2 -4
  20. package/dist/completions/providers/ContentForCompletionProvider.js.map +1 -1
  21. package/dist/completions/providers/FilterNamedParameterCompletionProvider.d.ts +3 -3
  22. package/dist/completions/providers/FilterNamedParameterCompletionProvider.js +6 -6
  23. package/dist/completions/providers/FilterNamedParameterCompletionProvider.js.map +1 -1
  24. package/dist/completions/providers/LiquidDocParamTypeCompletionProvider.d.ts +3 -3
  25. package/dist/completions/providers/LiquidDocParamTypeCompletionProvider.js +3 -3
  26. package/dist/completions/providers/LiquidDocParamTypeCompletionProvider.js.map +1 -1
  27. package/dist/completions/providers/LiquidTagsCompletionProvider.d.ts +3 -3
  28. package/dist/completions/providers/LiquidTagsCompletionProvider.js +3 -3
  29. package/dist/completions/providers/LiquidTagsCompletionProvider.js.map +1 -1
  30. package/dist/completions/providers/RenderPartialParameterCompletionProvider.js +1 -1
  31. package/dist/completions/providers/RenderPartialParameterCompletionProvider.js.map +1 -1
  32. package/dist/completions/providers/index.d.ts +0 -3
  33. package/dist/completions/providers/index.js +1 -7
  34. package/dist/completions/providers/index.js.map +1 -1
  35. package/dist/css/CSSLanguageService.d.ts +19 -5
  36. package/dist/css/CSSLanguageService.js +77 -63
  37. package/dist/css/CSSLanguageService.js.map +1 -1
  38. package/dist/definitions/DefinitionProvider.d.ts +1 -1
  39. package/dist/definitions/DefinitionProvider.js +1 -3
  40. package/dist/definitions/DefinitionProvider.js.map +1 -1
  41. package/dist/diagnostics/offenseToDiagnostic.js +1 -1
  42. package/dist/diagnostics/offenseToDiagnostic.js.map +1 -1
  43. package/dist/diagnostics/runChecks.d.ts +3 -5
  44. package/dist/diagnostics/runChecks.js +12 -64
  45. package/dist/diagnostics/runChecks.js.map +1 -1
  46. package/dist/docset/MarkdownRenderer.js +1 -1
  47. package/dist/docset/MarkdownRenderer.js.map +1 -1
  48. package/dist/documentLinks/DocumentLinksProvider.d.ts +3 -3
  49. package/dist/documentLinks/DocumentLinksProvider.js +3 -3
  50. package/dist/documentLinks/DocumentLinksProvider.js.map +1 -1
  51. package/dist/documents/DocumentManager.d.ts +4 -5
  52. package/dist/documents/DocumentManager.js +17 -12
  53. package/dist/documents/DocumentManager.js.map +1 -1
  54. package/dist/documents/types.d.ts +16 -3
  55. package/dist/documents/types.js +3 -3
  56. package/dist/documents/types.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/rename/RenameProvider.d.ts +2 -2
  92. package/dist/rename/RenameProvider.js +2 -2
  93. package/dist/rename/RenameProvider.js.map +1 -1
  94. package/dist/rename/providers/LiquidVariableRenameProvider.d.ts +3 -3
  95. package/dist/rename/providers/LiquidVariableRenameProvider.js +4 -4
  96. package/dist/rename/providers/LiquidVariableRenameProvider.js.map +1 -1
  97. package/dist/renamed/RenameHandler.d.ts +2 -3
  98. package/dist/renamed/RenameHandler.js +3 -8
  99. package/dist/renamed/RenameHandler.js.map +1 -1
  100. package/dist/renamed/handlers/AssetRenameHandler.d.ts +3 -3
  101. package/dist/renamed/handlers/AssetRenameHandler.js +5 -5
  102. package/dist/renamed/handlers/AssetRenameHandler.js.map +1 -1
  103. package/dist/renamed/handlers/PartialRenameHandler.d.ts +3 -3
  104. package/dist/renamed/handlers/PartialRenameHandler.js +5 -5
  105. package/dist/renamed/handlers/PartialRenameHandler.js.map +1 -1
  106. package/dist/renamed/handlers/utils.d.ts +1 -1
  107. package/dist/server/AppGraphManager.d.ts +32 -0
  108. package/dist/server/AppGraphManager.js +155 -0
  109. package/dist/server/AppGraphManager.js.map +1 -0
  110. package/dist/server/startServer.d.ts +2 -2
  111. package/dist/server/startServer.js +62 -164
  112. package/dist/server/startServer.js.map +1 -1
  113. package/dist/tsconfig.tsbuildinfo +1 -1
  114. package/dist/types.d.ts +33 -54
  115. package/dist/types.js +21 -26
  116. package/dist/types.js.map +1 -1
  117. package/dist/utils/liquidDoc.js +1 -1
  118. package/dist/utils/liquidDoc.js.map +1 -1
  119. package/dist/utils/uri.d.ts +2 -9
  120. package/dist/utils/uri.js +5 -21
  121. package/dist/utils/uri.js.map +1 -1
  122. package/package.json +4 -4
  123. package/src/ClientCapabilities.ts +1 -1
  124. package/src/PropertyShapeInference.ts +81 -1
  125. package/src/TypeSystem.spec.ts +206 -449
  126. package/src/TypeSystem.ts +267 -460
  127. package/src/codeActions/providers/FixAllProvider.spec.ts +1 -1
  128. package/src/codeActions/providers/FixProvider.spec.ts +11 -11
  129. package/src/codeActions/providers/SuggestionProvider.spec.ts +2 -2
  130. package/src/commands/providers/ApplyFixesProvider.ts +2 -2
  131. package/src/commands/providers/ApplySuggestionProvider.ts +2 -2
  132. package/src/commands/providers/RunChecksProvider.ts +2 -2
  133. package/src/completions/CompletionsProvider.ts +14 -35
  134. package/src/completions/params/LiquidCompletionParams.spec.ts +0 -9
  135. package/src/completions/params/LiquidCompletionParams.ts +8 -17
  136. package/src/completions/params/fix.spec.ts +0 -3
  137. package/src/completions/providers/FilterCompletionProvider.spec.ts +2 -8
  138. package/src/completions/providers/FilterNamedParameterCompletionProvider.spec.ts +1 -5
  139. package/src/completions/providers/FilterNamedParameterCompletionProvider.ts +6 -6
  140. package/src/completions/providers/HtmlAttributeCompletionProvider.spec.ts +1 -4
  141. package/src/completions/providers/HtmlAttributeValueCompletionProvider.spec.ts +1 -4
  142. package/src/completions/providers/HtmlTagCompletionProvider.spec.ts +1 -4
  143. package/src/completions/providers/LiquidDocParamTypeCompletionProvider.spec.ts +1 -28
  144. package/src/completions/providers/LiquidDocParamTypeCompletionProvider.ts +3 -3
  145. package/src/completions/providers/LiquidDocTagCompletionProvider.spec.ts +1 -26
  146. package/src/completions/providers/LiquidTagsCompletionProvider.spec.ts +4 -18
  147. package/src/completions/providers/LiquidTagsCompletionProvider.ts +3 -3
  148. package/src/completions/providers/ObjectAttributeCompletionProvider.spec.ts +2 -31
  149. package/src/completions/providers/ObjectCompletionProvider.spec.ts +34 -123
  150. package/src/completions/providers/PartialCompletionProvider.spec.ts +6 -15
  151. package/src/completions/providers/RenderPartialParameterCompletionProvider.spec.ts +13 -15
  152. package/src/completions/providers/RenderPartialParameterCompletionProvider.ts +2 -3
  153. package/src/completions/providers/TranslationCompletionProvider.spec.ts +1 -4
  154. package/src/completions/providers/TranslationCompletionProvider.ts +3 -3
  155. package/src/completions/providers/index.ts +0 -3
  156. package/src/css/CSSLanguageService.ts +97 -81
  157. package/src/definitions/DefinitionProvider.ts +0 -6
  158. package/src/definitions/providers/TranslationStringDefinitionProvider.spec.ts +1 -5
  159. package/src/diagnostics/offenseToDiagnostic.ts +1 -1
  160. package/src/diagnostics/runChecks.spec.ts +22 -30
  161. package/src/diagnostics/runChecks.ts +17 -91
  162. package/src/docset/MarkdownRenderer.ts +1 -1
  163. package/src/documentLinks/DocumentLinksProvider.ts +10 -10
  164. package/src/documents/DocumentManager.spec.ts +46 -119
  165. package/src/documents/DocumentManager.ts +19 -15
  166. package/src/documents/types.ts +18 -9
  167. package/src/hover/HoverProvider.ts +9 -21
  168. package/src/hover/providers/HtmlAttributeHoverProvider.spec.ts +1 -3
  169. package/src/hover/providers/HtmlAttributeValueHoverProvider.spec.ts +1 -3
  170. package/src/hover/providers/HtmlTagHoverProvider.spec.ts +1 -3
  171. package/src/hover/providers/LiquidDocTagHoverProvider.spec.ts +1 -4
  172. package/src/hover/providers/LiquidFilterArgumentHoverProvider.spec.ts +0 -3
  173. package/src/hover/providers/LiquidFilterArgumentHoverProvider.ts +3 -3
  174. package/src/hover/providers/LiquidFilterHoverProvider.spec.ts +0 -3
  175. package/src/hover/providers/LiquidFilterHoverProvider.ts +3 -3
  176. package/src/hover/providers/LiquidObjectAttributeHoverProvider.spec.ts +1 -3
  177. package/src/hover/providers/LiquidObjectHoverProvider.spec.ts +46 -129
  178. package/src/hover/providers/LiquidTagHoverProvider.spec.ts +0 -3
  179. package/src/hover/providers/LiquidTagHoverProvider.ts +3 -3
  180. package/src/hover/providers/RenderPartialHoverProvider.spec.ts +11 -14
  181. package/src/hover/providers/RenderPartialHoverProvider.ts +1 -5
  182. package/src/hover/providers/RenderPartialParameterHoverProvider.spec.ts +10 -13
  183. package/src/hover/providers/RenderPartialParameterHoverProvider.ts +2 -3
  184. package/src/hover/providers/TranslationHoverProvider.spec.ts +1 -4
  185. package/src/hover/providers/TranslationHoverProvider.ts +3 -3
  186. package/src/index.ts +4 -7
  187. package/src/internal-types.ts +1 -1
  188. package/src/json/JSONContributions.ts +4 -61
  189. package/src/json/JSONLanguageService.ts +19 -117
  190. package/src/json/test/test-helpers.ts +4 -35
  191. package/src/json/utils.ts +0 -27
  192. package/src/rename/RenameProvider.ts +4 -4
  193. package/src/rename/providers/LiquidVariableRenameProvider.spec.ts +5 -5
  194. package/src/rename/providers/LiquidVariableRenameProvider.ts +6 -6
  195. package/src/renamed/RenameHandler.ts +4 -9
  196. package/src/renamed/handlers/AssetRenameHandler.spec.ts +28 -28
  197. package/src/renamed/handlers/AssetRenameHandler.ts +6 -6
  198. package/src/renamed/handlers/PartialRenameHandler.spec.ts +9 -9
  199. package/src/renamed/handlers/PartialRenameHandler.ts +10 -10
  200. package/src/server/{ThemeGraphManager.ts → AppGraphManager.ts} +21 -90
  201. package/src/server/safe.ts +1 -1
  202. package/src/server/startServer.spec.ts +10 -12
  203. package/src/server/startServer.ts +69 -222
  204. package/src/test/CompletionItemsAssertion.spec.ts +1 -4
  205. package/src/types.ts +33 -63
  206. package/src/utils/debounce.ts +1 -1
  207. package/src/utils/liquidDoc.ts +6 -6
  208. package/src/utils/uri.ts +5 -17
  209. package/src/completions/providers/ContentForBlockTypeCompletionProvider.spec.ts +0 -41
  210. package/src/completions/providers/ContentForBlockTypeCompletionProvider.ts +0 -42
  211. package/src/completions/providers/ContentForCompletionProvider.spec.ts +0 -96
  212. package/src/completions/providers/ContentForCompletionProvider.ts +0 -113
  213. package/src/completions/providers/ContentForParameterCompletionProvider.spec.ts +0 -362
  214. package/src/completions/providers/ContentForParameterCompletionProvider.ts +0 -187
  215. package/src/completions/providers/data/contentForParameterCompletionOptions.ts +0 -9
  216. package/src/css/CSSLanguageService.spec.ts +0 -159
  217. package/src/css/test/test-helpers.ts +0 -30
  218. package/src/definitions/providers/SchemaTranslationStringDefinitionProvider.spec.ts +0 -96
  219. package/src/definitions/providers/SchemaTranslationStringDefinitionProvider.ts +0 -82
  220. package/src/hover/providers/ContentForArgumentHoverProvider.spec.ts +0 -76
  221. package/src/hover/providers/ContentForArgumentHoverProvider.ts +0 -56
  222. package/src/hover/providers/ContentForTypeHoverProvider.spec.ts +0 -91
  223. package/src/hover/providers/ContentForTypeHoverProvider.ts +0 -42
  224. package/src/json/JSONLanguageService.spec.ts +0 -424
  225. package/src/json/completions/providers/BlockSettingsPropertyCompletionProvider.spec.ts +0 -163
  226. package/src/json/completions/providers/BlockSettingsPropertyCompletionProvider.ts +0 -121
  227. package/src/json/completions/providers/BlockTypeCompletionProvider.spec.ts +0 -137
  228. package/src/json/completions/providers/BlockTypeCompletionProvider.ts +0 -108
  229. package/src/json/completions/providers/ReferencedBlockTypeCompletionProvider.spec.ts +0 -132
  230. package/src/json/completions/providers/ReferencedBlockTypeCompletionProvider.ts +0 -120
  231. package/src/json/completions/providers/SchemaTranslationCompletionProvider.ts +0 -51
  232. package/src/json/completions/providers/SettingsPropertyCompletionProvider.spec.ts +0 -211
  233. package/src/json/completions/providers/SettingsPropertyCompletionProvider.ts +0 -75
  234. package/src/json/documentLinks/DocumentLinksProvider.spec.ts +0 -223
  235. package/src/json/documentLinks/DocumentLinksProvider.ts +0 -61
  236. package/src/json/hover/providers/BlockSettingsHoverProvider.spec.ts +0 -292
  237. package/src/json/hover/providers/BlockSettingsHoverProvider.ts +0 -99
  238. package/src/json/hover/providers/SchemaTranslationHoverProvider.ts +0 -35
  239. package/src/json/hover/providers/SettingsHoverProvider.spec.ts +0 -139
  240. package/src/json/hover/providers/SettingsHoverProvider.ts +0 -79
  241. package/src/json/schemaSettings.spec.ts +0 -103
  242. package/src/json/schemaSettings.ts +0 -53
  243. package/src/plugins/css.ts +0 -12
  244. package/src/renamed/handlers/BlockRenameHandler.spec.ts +0 -399
  245. package/src/renamed/handlers/BlockRenameHandler.ts +0 -402
  246. package/src/renamed/handlers/SectionRenameHandler.spec.ts +0 -321
  247. package/src/renamed/handlers/SectionRenameHandler.ts +0 -224
  248. package/src/renamed/handlers/utils.ts +0 -22
  249. package/src/settings/index.ts +0 -50
@@ -6,13 +6,13 @@ import { URI, Utils } from 'vscode-uri';
6
6
 
7
7
  import { visit, Visitor } from '@platformos/platformos-check-common';
8
8
  import { DocumentManager } from '../documents';
9
- import { FindThemeRootURI } from '../internal-types';
9
+ import { FindAppRootURI } from '../internal-types';
10
10
  import { DocumentsLocator, TranslationProvider } from '@platformos/platformos-common';
11
11
 
12
12
  export class DocumentLinksProvider {
13
13
  constructor(
14
14
  private documentManager: DocumentManager,
15
- private findThemeRootURI: FindThemeRootURI,
15
+ private findAppRootURI: FindAppRootURI,
16
16
  private documentsLocator: DocumentsLocator,
17
17
  private translationProvider: TranslationProvider,
18
18
  ) {}
@@ -27,7 +27,7 @@ export class DocumentLinksProvider {
27
27
  return [];
28
28
  }
29
29
 
30
- const rootUri = await this.findThemeRootURI(uriString);
30
+ const rootUri = await this.findAppRootURI(uriString);
31
31
  if (!rootUri) {
32
32
  return [];
33
33
  }
@@ -53,12 +53,12 @@ function documentLinksVisitor(
53
53
  if (
54
54
  (node.name === 'render' || node.name === 'include') &&
55
55
  typeof node.markup !== 'string' &&
56
- isLiquidString(node.markup.snippet)
56
+ isLiquidString(node.markup.partial)
57
57
  ) {
58
- const snippet = node.markup.snippet;
58
+ const partial = node.markup.partial;
59
59
  return DocumentLink.create(
60
- range(textDocument, snippet),
61
- await documentsLocator.locate(root, node.name, snippet.value),
60
+ range(textDocument, partial),
61
+ await documentsLocator.locate(root, node.name, partial.value),
62
62
  );
63
63
  }
64
64
 
@@ -67,10 +67,10 @@ function documentLinksVisitor(
67
67
  typeof node.markup !== 'string' &&
68
68
  isLiquidString(node.markup.partial)
69
69
  ) {
70
- const snippet = node.markup.partial;
70
+ const partial = node.markup.partial;
71
71
  return DocumentLink.create(
72
- range(textDocument, snippet),
73
- await documentsLocator.locate(root, node.name, snippet.value),
72
+ range(textDocument, partial),
73
+ await documentsLocator.locate(root, node.name, partial.value),
74
74
  );
75
75
  }
76
76
 
@@ -1,10 +1,4 @@
1
- import {
2
- path,
3
- Section,
4
- Setting,
5
- ThemeBlock,
6
- ThemeSchemaType,
7
- } from '@platformos/platformos-check-common';
1
+ import { path } from '@platformos/platformos-check-common';
8
2
  import { AbstractFileSystem } from '@platformos/platformos-common';
9
3
  import { MockFileSystem } from '@platformos/platformos-check-common/src/test';
10
4
  import { assert, beforeEach, describe, expect, it, vi } from 'vitest';
@@ -23,28 +17,28 @@ describe('Module: DocumentManager', () => {
23
17
  documentManager = new DocumentManager();
24
18
  });
25
19
 
26
- it('should return a theme for a root', () => {
20
+ it('should return an app for a root', () => {
27
21
  // these will be different in windows vs unix
28
22
  const rootUri = URI.file(__dirname);
29
- const fileUri = Utils.joinPath(rootUri, 'test.liquid');
23
+ const fileUri = Utils.joinPath(rootUri, 'app', 'views', 'partials', 'test.liquid');
30
24
 
31
25
  // We expect forward slash paths (windows path get normalized)
32
26
  expect(fileUri.path).not.to.include('\\');
33
27
  documentManager.open(fileUri.toString(), '{{ "hi" }}', 0);
34
- const theme = documentManager.theme(path.normalize(rootUri));
35
- expect(theme).to.have.lengthOf(1);
36
- expect(theme[0].uri).not.to.include('\\');
28
+ const app = documentManager.app(path.normalize(rootUri));
29
+ expect(app).to.have.lengthOf(1);
30
+ expect(app[0].uri).not.to.include('\\');
37
31
  // `fileURI.toString()` lowercases c: in 'C:\dir\path'
38
32
  // Without the URI.parse().path, this test was failing for a dumb reason
39
- expect(theme[0].uri).to.equal(path.normalize(fileUri));
33
+ expect(app[0].uri).to.equal(path.normalize(fileUri));
40
34
  });
41
35
 
42
36
  describe('when initialized with an abstract file system', () => {
43
37
  beforeEach(async () => {
44
38
  fs = new MockFileSystem(
45
39
  {
46
- 'snippet/foo.liquid': `hello {% render 'bar' %}`,
47
- 'snippet/bar.liquid': `world`,
40
+ 'app/views/partials/foo.liquid': `hello {% render 'bar' %}`,
41
+ 'app/views/partials/bar.liquid': `world`,
48
42
  },
49
43
  'mock-fs:',
50
44
  );
@@ -58,35 +52,43 @@ describe('Module: DocumentManager', () => {
58
52
  });
59
53
 
60
54
  it('preloads source codes with a version of undefined', async () => {
61
- const sc = documentManager.get('mock-fs:/snippet/foo.liquid');
55
+ const sc = documentManager.get('mock-fs:/app/views/partials/foo.liquid');
62
56
  assert(sc);
63
57
  expect(sc.version).to.equal(undefined);
64
58
  });
65
59
 
66
60
  it('returns defined versions of opened files', () => {
67
- documentManager.open('mock-fs:/snippet/foo.liquid', 'hello {% render "bar" %}', 0);
68
- const sc = documentManager.get('mock-fs:/snippet/foo.liquid');
61
+ documentManager.open(
62
+ 'mock-fs:/app/views/partials/foo.liquid',
63
+ 'hello {% render "bar" %}',
64
+ 0,
65
+ );
66
+ const sc = documentManager.get('mock-fs:/app/views/partials/foo.liquid');
69
67
  assert(sc);
70
68
  expect(sc.version).to.equal(0);
71
69
  });
72
70
 
73
- describe('Unit: theme(rootUri, includeFilesFromDisk)', () => {
71
+ describe('Unit: app(rootUri, includeFilesFromDisk)', () => {
74
72
  it('only returns the source codes of the opened files by default', () => {
75
- const theme = documentManager.theme('mock-fs:/');
76
- expect(theme).to.have.lengthOf(0);
73
+ const app = documentManager.app('mock-fs:/');
74
+ expect(app).to.have.lengthOf(0);
77
75
  });
78
76
 
79
77
  it('returns all the files when called with includeFilesFromDisk', async () => {
80
- const theme = documentManager.theme('mock-fs:/', true);
81
- expect(theme).to.have.lengthOf(2);
78
+ const app = documentManager.app('mock-fs:/', true);
79
+ expect(app).to.have.lengthOf(2);
82
80
  });
83
81
  });
84
82
 
85
83
  describe('Unit: close(uri)', () => {
86
84
  it('sets the source version to undefined (value is on disk)', () => {
87
- documentManager.open('mock-fs:/snippet/foo.liquid', 'hello {% render "bar" %}', 10);
88
- documentManager.close('mock-fs:/snippet/foo.liquid');
89
- const sc = documentManager.get('mock-fs:/snippet/foo.liquid');
85
+ documentManager.open(
86
+ 'mock-fs:/app/views/partials/foo.liquid',
87
+ 'hello {% render "bar" %}',
88
+ 10,
89
+ );
90
+ documentManager.close('mock-fs:/app/views/partials/foo.liquid');
91
+ const sc = documentManager.get('mock-fs:/app/views/partials/foo.liquid');
90
92
  assert(sc);
91
93
  expect(sc.source).to.equal('hello {% render "bar" %}');
92
94
  expect(sc.version).to.equal(undefined);
@@ -96,9 +98,13 @@ describe('Module: DocumentManager', () => {
96
98
  describe('Unit: delete(uri)', () => {
97
99
  it('deletes the source code from the document manager', () => {
98
100
  // as though the file no longer exists
99
- documentManager.open('mock-fs:/snippet/foo.liquid', 'hello {% render "bar" %}', 10);
100
- documentManager.delete('mock-fs:/snippet/foo.liquid');
101
- const sc = documentManager.get('mock-fs:/snippet/foo.liquid');
101
+ documentManager.open(
102
+ 'mock-fs:/app/views/partials/foo.liquid',
103
+ 'hello {% render "bar" %}',
104
+ 10,
105
+ );
106
+ documentManager.delete('mock-fs:/app/views/partials/foo.liquid');
107
+ const sc = documentManager.get('mock-fs:/app/views/partials/foo.liquid');
102
108
  assert(!sc);
103
109
  });
104
110
  });
@@ -110,7 +116,7 @@ describe('Module: DocumentManager', () => {
110
116
  await documentManager.preload('mock-fs:/');
111
117
  await documentManager.preload('mock-fs:/');
112
118
  expect(vi.mocked(fs.readFile)).toHaveBeenCalledTimes(
113
- documentManager.theme('mock-fs:/', true).length,
119
+ documentManager.app('mock-fs:/', true).length,
114
120
  );
115
121
  });
116
122
  });
@@ -137,16 +143,16 @@ describe('Module: DocumentManager', () => {
137
143
 
138
144
  fs = new MockFileSystem(
139
145
  {
140
- 'snippet/1.liquid': `hello {% render 'bar' %}`,
141
- 'snippet/2.liquid': `hello {% render 'bar' %}`,
142
- 'snippet/3.liquid': `hello {% render 'bar' %}`,
143
- 'snippet/4.liquid': `hello {% render 'bar' %}`,
144
- 'snippet/5.liquid': `hello {% render 'bar' %}`,
145
- 'snippet/6.liquid': `hello {% render 'bar' %}`,
146
- 'snippet/7.liquid': `hello {% render 'bar' %}`,
147
- 'snippet/8.liquid': `hello {% render 'bar' %}`,
148
- 'snippet/9.liquid': `hello {% render 'bar' %}`,
149
- 'snippet/10.liquid': `hello {% render 'bar' %}`,
146
+ 'app/views/partials/1.liquid': `hello {% render 'bar' %}`,
147
+ 'app/views/partials/2.liquid': `hello {% render 'bar' %}`,
148
+ 'app/views/partials/3.liquid': `hello {% render 'bar' %}`,
149
+ 'app/views/partials/4.liquid': `hello {% render 'bar' %}`,
150
+ 'app/views/partials/5.liquid': `hello {% render 'bar' %}`,
151
+ 'app/views/partials/6.liquid': `hello {% render 'bar' %}`,
152
+ 'app/views/partials/7.liquid': `hello {% render 'bar' %}`,
153
+ 'app/views/partials/8.liquid': `hello {% render 'bar' %}`,
154
+ 'app/views/partials/9.liquid': `hello {% render 'bar' %}`,
155
+ 'app/views/partials/10.liquid': `hello {% render 'bar' %}`,
150
156
  },
151
157
  mockRoot,
152
158
  );
@@ -194,83 +200,4 @@ describe('Module: DocumentManager', () => {
194
200
  );
195
201
  });
196
202
  });
197
-
198
- describe('when initialized with a fs, getModeForURI, and isValidSchema', () => {
199
- const mockFsRoot = path.normalize('mock-fs:/theme');
200
- const sectionSchema: Section.Schema = {
201
- name: 'hello',
202
- settings: [{ type: 'number' as Setting.Type.Number, id: 'my_num' }],
203
- default: { settings: { my_num: 1 } },
204
- };
205
- const blockSchema: ThemeBlock.Schema = {
206
- name: 'world',
207
- blocks: [{ type: '@theme' }],
208
- };
209
-
210
- beforeEach(async () => {
211
- fs = new MockFileSystem(
212
- {
213
- 'sections/foo.liquid': `
214
- {% schema %}
215
- ${JSON.stringify(sectionSchema, null, 2)}
216
- {% endschema %}`,
217
- 'blocks/bar.liquid': `
218
- {% schema %}
219
- ${JSON.stringify(blockSchema, null, 2)}
220
- {% endschema %}`,
221
- },
222
- mockFsRoot,
223
- );
224
- documentManager = new DocumentManager(
225
- fs,
226
- undefined,
227
- undefined,
228
- async () => 'theme',
229
- async () => true, // let's assume they are valid for testing purposes...
230
- );
231
- await documentManager.preload(mockFsRoot);
232
- });
233
-
234
- it('should augment section files with a getSchema property that resolves to a type-safe schema', async () => {
235
- const section = documentManager.get(path.join(mockFsRoot, 'sections/foo.liquid'));
236
- assert(section);
237
- assert(section.type === 'LiquidHtml');
238
- const schema = await section.getSchema();
239
- assert(schema);
240
- assert(schema.type === ThemeSchemaType.Section);
241
- expect(schema.parsed).to.eql(sectionSchema);
242
- const validSchema = schema.validSchema;
243
- assert(!(validSchema instanceof Error));
244
-
245
- // Note below that validSchema.name is accessed in a type-safe manner
246
- expect(validSchema.name).to.equal(sectionSchema.name);
247
- assert(validSchema.settings);
248
- for (const setting of validSchema.settings) {
249
- assert(setting.type);
250
- assert(setting.id);
251
- }
252
-
253
- // Default is a section-only property
254
- assert(validSchema.default);
255
- });
256
-
257
- it('should augment block files with a getSchema property that resolves to a type-safe schema', async () => {
258
- const block = documentManager.get(path.join(mockFsRoot, 'blocks/bar.liquid'));
259
- assert(block);
260
- assert(block.type === 'LiquidHtml');
261
- const schema = await block.getSchema();
262
- assert(schema);
263
- assert(schema.type === ThemeSchemaType.Block);
264
- expect(schema.parsed).to.eql(blockSchema);
265
- const validSchema = schema.validSchema;
266
- assert(!(validSchema instanceof Error));
267
-
268
- // Note below that validSchema.name is accessed in a type-safe manner
269
- expect(validSchema.name).to.equal(blockSchema.name);
270
- assert(validSchema.blocks);
271
- for (const block of validSchema.blocks) {
272
- assert(block.type);
273
- }
274
- });
275
- });
276
203
  });
@@ -1,16 +1,15 @@
1
1
  import {
2
2
  assertNever,
3
+ isKnownLiquidFile,
3
4
  memoize,
4
5
  path,
5
6
  recursiveReadDirectory,
6
7
  SourceCodeType,
7
- Theme,
8
+ App,
8
9
  toSourceCode,
9
- toSchema,
10
10
  UriString,
11
11
  IsValidSchema,
12
12
  memo,
13
- Mode,
14
13
  isError,
15
14
  } from '@platformos/platformos-check-common';
16
15
 
@@ -40,7 +39,6 @@ export class DocumentManager {
40
39
  private readonly fs?: AbstractFileSystem,
41
40
  private readonly connection?: Connection,
42
41
  private readonly clientCapabilities?: ClientCapabilities,
43
- private readonly getModeForUri?: (uri: UriString) => Promise<Mode>,
44
42
  private readonly isValidSchema?: IsValidSchema,
45
43
  ) {
46
44
  this.sourceCodes = new Map();
@@ -78,12 +76,16 @@ export class DocumentManager {
78
76
  this.set(newUri, sourceCode.source, sourceCode.version);
79
77
  }
80
78
 
81
- public theme(root: UriString, includeFilesFromDisk = false): AugmentedSourceCode[] {
79
+ public app(root: UriString, includeFilesFromDisk = false): AugmentedSourceCode[] {
82
80
  return [...this.sourceCodes.values()]
83
81
  .filter((sourceCode) => sourceCode.uri.startsWith(root))
82
+ .filter((sourceCode) => includeFilesFromDisk || sourceCode.version !== undefined)
84
83
  .filter(
85
- (sourceCode) => includeFilesFromDisk || sourceCode.version !== undefined,
86
- ) satisfies Theme;
84
+ // Exclude .liquid files that aren't in a recognized platformOS directory
85
+ // (e.g. generator templates). Non-liquid files are always included.
86
+ (sourceCode) =>
87
+ sourceCode.type !== SourceCodeType.LiquidHtml || isKnownLiquidFile(sourceCode.uri),
88
+ ) satisfies App;
87
89
  }
88
90
 
89
91
  public get openDocuments(): AugmentedSourceCode[] {
@@ -109,8 +111,8 @@ export class DocumentManager {
109
111
 
110
112
  private set(uri: UriString, source: string, version: number | undefined) {
111
113
  uri = path.normalize(uri);
112
- // We only support json and liquid files.
113
- if (!/\.(json|liquid|graphql)$/.test(uri) || /\.(s?css|js).liquid$/.test(uri)) {
114
+ // We only support json, liquid, graphql, and yaml files.
115
+ if (!/\.(json|liquid|graphql|ya?ml)$/.test(uri) || /\.(s?css|js).liquid$/.test(uri)) {
114
116
  return;
115
117
  }
116
118
 
@@ -119,7 +121,7 @@ export class DocumentManager {
119
121
 
120
122
  /**
121
123
  * The preload method is used to pre-load and pre-parse all the files in the
122
- * theme. It is smart and only will load files that are not already in the
124
+ * app. It is smart and only will load files that are not already in the
123
125
  * DocumentManager.
124
126
  *
125
127
  * Files that are loaded from the AbstractFileSystem will have a version of `undefined`.
@@ -137,7 +139,7 @@ export class DocumentManager {
137
139
  const filesToLoad = await recursiveReadDirectory(
138
140
  this.fs,
139
141
  rootUri,
140
- ([uri]) => /\.(liquid|json|graphql)$/.test(uri) && !this.sourceCodes.has(uri),
142
+ ([uri]) => /\.(liquid|json|graphql|ya?ml)$/.test(uri) && !this.sourceCodes.has(uri),
141
143
  );
142
144
 
143
145
  progress.report(10, 'Preloading files');
@@ -189,16 +191,18 @@ export class DocumentManager {
189
191
  ...sourceCode,
190
192
  textDocument,
191
193
  };
194
+ case SourceCodeType.YAML:
195
+ return {
196
+ ...sourceCode,
197
+ textDocument,
198
+ };
192
199
  case SourceCodeType.LiquidHtml:
193
200
  return {
194
201
  ...sourceCode,
195
202
  textDocument,
196
203
  /** Lazy and only computed once per file version */
197
204
  getSchema: memo(async () => {
198
- if (!this.getModeForUri || !this.isValidSchema) return undefined;
199
-
200
- const mode = await this.getModeForUri!(uri);
201
- return toSchema(mode, uri, sourceCode, this.isValidSchema, false);
205
+ return undefined;
202
206
  }),
203
207
  /** Lazy and only computed once per file version */
204
208
  getLiquidDoc: memo(async () => {
@@ -1,13 +1,19 @@
1
- import {
2
- SourceCodeType,
3
- SourceCode,
4
- SectionSchema,
5
- ThemeBlockSchema,
6
- AppBlockSchema,
7
- } from '@platformos/platformos-check-common';
1
+ import { SourceCodeType, SourceCode } from '@platformos/platformos-check-common';
2
+ import { JSONNode } from '@platformos/platformos-check-common';
8
3
  import { TextDocument } from 'vscode-languageserver-textdocument';
9
4
  import { DocDefinition } from '@platformos/platformos-check-common';
10
5
 
6
+ /**
7
+ * Reserved for future use. platformOS does not use `{% schema %}` blocks,
8
+ * so `getSchema()` always returns `undefined`.
9
+ */
10
+ export interface SchemaObject {
11
+ parsed: any;
12
+ validSchema?: unknown;
13
+ ast: JSONNode | Error;
14
+ offset: number;
15
+ }
16
+
11
17
  /** Util type to add the common `textDocument` property to the SourceCode. */
12
18
  type _AugmentedSourceCode<SCT extends SourceCodeType = SourceCodeType> = SourceCode<SCT> & {
13
19
  textDocument: TextDocument;
@@ -25,7 +31,7 @@ export type AugmentedGraphQLSourceCode = _AugmentedSourceCode<SourceCodeType.Gra
25
31
  * about cache invalidation and will mean we'll parse the schema at most once.
26
32
  */
27
33
  export type AugmentedLiquidSourceCode = _AugmentedSourceCode<SourceCodeType.LiquidHtml> & {
28
- getSchema: () => Promise<SectionSchema | ThemeBlockSchema | AppBlockSchema | undefined>;
34
+ getSchema: () => Promise<SchemaObject | undefined>;
29
35
  getLiquidDoc: () => Promise<DocDefinition | undefined>;
30
36
  };
31
37
 
@@ -39,10 +45,13 @@ export type AugmentedLiquidSourceCode = _AugmentedSourceCode<SourceCodeType.Liqu
39
45
  * AugmentedSourceCode<SourceCodeType.JSON> -> AugmentedJsonSourceCode
40
46
  * AugmentedSourceCode<SourceCodeType.LiquidHtml> -> AugmentedLiquidSourceCode
41
47
  */
48
+ export type AugmentedYAMLSourceCode = _AugmentedSourceCode<SourceCodeType.YAML>;
49
+
42
50
  export type AugmentedSourceCode<SCT extends SourceCodeType = SourceCodeType> = {
43
51
  [SourceCodeType.JSON]: AugmentedJsonSourceCode;
44
52
  [SourceCodeType.LiquidHtml]: AugmentedLiquidSourceCode;
45
53
  [SourceCodeType.GraphQL]: AugmentedGraphQLSourceCode;
54
+ [SourceCodeType.YAML]: AugmentedYAMLSourceCode;
46
55
  }[SCT];
47
56
 
48
57
  export const isLiquidSourceCode = (file: AugmentedSourceCode): file is AugmentedLiquidSourceCode =>
@@ -51,5 +60,5 @@ export const isLiquidSourceCode = (file: AugmentedSourceCode): file is Augmented
51
60
  export const isJsonSourceCode = (file: AugmentedSourceCode): file is AugmentedJsonSourceCode =>
52
61
  file.type === SourceCodeType.JSON;
53
62
 
54
- export const isGraphQLSourceceCode = (file: AugmentedSourceCode): file is AugmentedJsonSourceCode =>
63
+ export const isGraphQLSourceCode = (file: AugmentedSourceCode): file is AugmentedJsonSourceCode =>
55
64
  file.type === SourceCodeType.GraphQL;
@@ -1,8 +1,7 @@
1
1
  import {
2
2
  GetDocDefinitionForURI,
3
- MetafieldDefinitionMap,
4
3
  SourceCodeType,
5
- ThemeDocset,
4
+ PlatformOSDocset,
6
5
  } from '@platformos/platformos-check-common';
7
6
  import { Hover, HoverParams } from 'vscode-languageserver';
8
7
  import { TypeSystem } from '../TypeSystem';
@@ -23,42 +22,31 @@ import {
23
22
  } from './providers';
24
23
  import { HtmlAttributeValueHoverProvider } from './providers/HtmlAttributeValueHoverProvider';
25
24
  import { findCurrentNode } from '@platformos/platformos-check-common';
26
- import { GetThemeSettingsSchemaForURI } from '../settings';
27
25
  import { LiquidDocTagHoverProvider } from './providers/LiquidDocTagHoverProvider';
28
- import { ContentForArgumentHoverProvider } from './providers/ContentForArgumentHoverProvider';
29
- import { ContentForTypeHoverProvider } from './providers/ContentForTypeHoverProvider';
30
26
  import { TranslationProvider } from '@platformos/platformos-common';
31
- import { FindThemeRootURI } from '../../src/internal-types';
27
+ import { FindAppRootURI } from '../../src/internal-types';
32
28
  export class HoverProvider {
33
29
  private providers: BaseHoverProvider[] = [];
34
30
 
35
31
  constructor(
36
32
  readonly documentManager: DocumentManager,
37
- readonly themeDocset: ThemeDocset,
33
+ readonly platformosDocset: PlatformOSDocset,
38
34
  readonly translationProvider: TranslationProvider,
39
- readonly getMetafieldDefinitions: (rootUri: string) => Promise<MetafieldDefinitionMap>,
40
35
  readonly getTranslationsForURI: GetTranslationsForURI = async () => ({}),
41
- readonly getSettingsSchemaForURI: GetThemeSettingsSchemaForURI = async () => [],
42
36
  readonly getDocDefinitionForURI: GetDocDefinitionForURI = async () => undefined,
43
- readonly findThemeRootURI: FindThemeRootURI = async () => null,
37
+ readonly findAppRootURI: FindAppRootURI = async () => null,
44
38
  ) {
45
- const typeSystem = new TypeSystem(
46
- themeDocset,
47
- getSettingsSchemaForURI,
48
- getMetafieldDefinitions,
49
- );
39
+ const typeSystem = new TypeSystem(platformosDocset);
50
40
  this.providers = [
51
- new ContentForArgumentHoverProvider(getDocDefinitionForURI),
52
- new ContentForTypeHoverProvider(getDocDefinitionForURI),
53
- new LiquidTagHoverProvider(themeDocset),
54
- new LiquidFilterArgumentHoverProvider(themeDocset),
55
- new LiquidFilterHoverProvider(themeDocset),
41
+ new LiquidTagHoverProvider(platformosDocset),
42
+ new LiquidFilterArgumentHoverProvider(platformosDocset),
43
+ new LiquidFilterHoverProvider(platformosDocset),
56
44
  new LiquidObjectHoverProvider(typeSystem),
57
45
  new LiquidObjectAttributeHoverProvider(typeSystem),
58
46
  new HtmlTagHoverProvider(),
59
47
  new HtmlAttributeHoverProvider(),
60
48
  new HtmlAttributeValueHoverProvider(),
61
- new TranslationHoverProvider(documentManager, translationProvider, findThemeRootURI),
49
+ new TranslationHoverProvider(documentManager, translationProvider, findAppRootURI),
62
50
  new RenderPartialHoverProvider(getDocDefinitionForURI),
63
51
  new RenderPartialParameterHoverProvider(getDocDefinitionForURI),
64
52
  new LiquidDocTagHoverProvider(documentManager),
@@ -1,7 +1,7 @@
1
1
  import { describe, beforeEach, it, expect } from 'vitest';
2
2
  import { DocumentManager } from '../../documents';
3
3
  import { HoverProvider } from '../HoverProvider';
4
- import { MetafieldDefinitionMap } from '@platformos/platformos-check-common';
4
+
5
5
  import { TranslationProvider } from '@platformos/platformos-common';
6
6
  import { MockFileSystem } from '@platformos/platformos-check-common/src/test';
7
7
 
@@ -17,10 +17,8 @@ describe('Module: HtmlAttributeHoverProvider', async () => {
17
17
  objects: async () => [],
18
18
  liquidDrops: async () => [],
19
19
  tags: async () => [],
20
- systemTranslations: async () => ({}),
21
20
  },
22
21
  new TranslationProvider(new MockFileSystem({}, '.')),
23
- async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
24
22
  );
25
23
  });
26
24
 
@@ -1,7 +1,7 @@
1
1
  import { describe, beforeEach, it, expect } from 'vitest';
2
2
  import { DocumentManager } from '../../documents';
3
3
  import { HoverProvider } from '../HoverProvider';
4
- import { MetafieldDefinitionMap } from '@platformos/platformos-check-common';
4
+
5
5
  import { TranslationProvider } from '@platformos/platformos-common';
6
6
  import { MockFileSystem } from '@platformos/platformos-check-common/src/test';
7
7
 
@@ -17,10 +17,8 @@ describe('Module: HtmlAttributeHoverProvider', async () => {
17
17
  objects: async () => [],
18
18
  liquidDrops: async () => [],
19
19
  tags: async () => [],
20
- systemTranslations: async () => ({}),
21
20
  },
22
21
  new TranslationProvider(new MockFileSystem({}, '.')),
23
- async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
24
22
  );
25
23
  });
26
24
 
@@ -1,7 +1,7 @@
1
1
  import { describe, beforeEach, it, expect } from 'vitest';
2
2
  import { DocumentManager } from '../../documents';
3
3
  import { HoverProvider } from '../HoverProvider';
4
- import { MetafieldDefinitionMap } from '@platformos/platformos-check-common';
4
+
5
5
  import { TranslationProvider } from '@platformos/platformos-common';
6
6
  import { MockFileSystem } from '@platformos/platformos-check-common/src/test';
7
7
 
@@ -17,10 +17,8 @@ describe('Module: HtmlTagHoverProvider', async () => {
17
17
  objects: async () => [],
18
18
  liquidDrops: async () => [],
19
19
  tags: async () => [],
20
- systemTranslations: async () => ({}),
21
20
  },
22
21
  new TranslationProvider(new MockFileSystem({})),
23
- async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
24
22
  );
25
23
  });
26
24
 
@@ -1,13 +1,12 @@
1
1
  import { describe, beforeEach, it, expect } from 'vitest';
2
2
  import { DocumentManager } from '../../documents';
3
3
  import { HoverProvider } from '../HoverProvider';
4
- import { MetafieldDefinitionMap } from '@platformos/platformos-check-common';
5
4
  import '../../../../platformos-check-common/src/test/test-setup';
6
5
  import { formatLiquidDocTagHandle, SUPPORTED_LIQUID_DOC_TAG_HANDLES } from '../../utils/liquidDoc';
7
6
  import { TranslationProvider } from '@platformos/platformos-common';
8
7
  import { MockFileSystem } from '@platformos/platformos-check-common/src/test';
9
8
 
10
- describe('Module: RenderSnippetParameterHoverProvider', async () => {
9
+ describe('Module: RenderPartialParameterHoverProvider', async () => {
11
10
  let provider: HoverProvider;
12
11
 
13
12
  beforeEach(() => {
@@ -19,10 +18,8 @@ describe('Module: RenderSnippetParameterHoverProvider', async () => {
19
18
  objects: async () => [],
20
19
  liquidDrops: async () => [],
21
20
  tags: async () => [],
22
- systemTranslations: async () => ({}),
23
21
  },
24
22
  new TranslationProvider(new MockFileSystem({})),
25
- async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
26
23
  );
27
24
  });
28
25
 
@@ -1,7 +1,6 @@
1
1
  import { describe, beforeEach, it, expect } from 'vitest';
2
2
  import { DocumentManager } from '../../documents';
3
3
  import { HoverProvider } from '../HoverProvider';
4
- import { MetafieldDefinitionMap } from '@platformos/platformos-check-common';
5
4
  import { TranslationProvider } from '@platformos/platformos-common';
6
5
  import { MockFileSystem } from '@platformos/platformos-check-common/src/test';
7
6
 
@@ -33,10 +32,8 @@ describe('Module: LiquidFilterArgumentHoverProvider', async () => {
33
32
  objects: async () => [],
34
33
  liquidDrops: async () => [],
35
34
  tags: async () => [],
36
- systemTranslations: async () => ({}),
37
35
  },
38
36
  new TranslationProvider(new MockFileSystem({})),
39
- async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
40
37
  );
41
38
  });
42
39
 
@@ -1,11 +1,11 @@
1
1
  import { NodeTypes } from '@platformos/liquid-html-parser';
2
- import { LiquidHtmlNode, ThemeDocset } from '@platformos/platformos-check-common';
2
+ import { LiquidHtmlNode, PlatformOSDocset } from '@platformos/platformos-check-common';
3
3
  import { Hover } from 'vscode-languageserver';
4
4
  import { render } from '../../docset';
5
5
  import { BaseHoverProvider } from '../BaseHoverProvider';
6
6
 
7
7
  export class LiquidFilterArgumentHoverProvider implements BaseHoverProvider {
8
- constructor(private themeDocset: ThemeDocset) {}
8
+ constructor(private platformosDocset: PlatformOSDocset) {}
9
9
 
10
10
  async hover(currentNode: LiquidHtmlNode, ancestors: LiquidHtmlNode[]): Promise<Hover | null> {
11
11
  const parentNode = ancestors.at(-1);
@@ -19,7 +19,7 @@ export class LiquidFilterArgumentHoverProvider implements BaseHoverProvider {
19
19
  }
20
20
 
21
21
  const parentName = parentNode.name;
22
- const entries = await this.themeDocset.filters();
22
+ const entries = await this.platformosDocset.filters();
23
23
  const entry = entries.find((entry) => entry.name === parentName);
24
24
 
25
25
  if (!entry) {
@@ -1,7 +1,6 @@
1
1
  import { describe, beforeEach, it, expect } from 'vitest';
2
2
  import { DocumentManager } from '../../documents';
3
3
  import { HoverProvider } from '../HoverProvider';
4
- import { MetafieldDefinitionMap } from '@platformos/platformos-check-common';
5
4
  import { TranslationProvider } from '@platformos/platformos-common';
6
5
  import { MockFileSystem } from '@platformos/platformos-check-common/src/test';
7
6
 
@@ -24,10 +23,8 @@ describe('Module: LiquidFilterHoverProvider', async () => {
24
23
  objects: async () => [],
25
24
  liquidDrops: async () => [],
26
25
  tags: async () => [],
27
- systemTranslations: async () => ({}),
28
26
  },
29
27
  new TranslationProvider(new MockFileSystem({})),
30
- async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
31
28
  );
32
29
  });
33
30