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

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 (77) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/ClientCapabilities.js +1 -1
  3. package/dist/ClientCapabilities.js.map +1 -1
  4. package/dist/PropertyShapeInference.d.ts +0 -18
  5. package/dist/PropertyShapeInference.js +1 -59
  6. package/dist/PropertyShapeInference.js.map +1 -1
  7. package/dist/TypeSystem.js +26 -225
  8. package/dist/TypeSystem.js.map +1 -1
  9. package/dist/completions/params/LiquidCompletionParams.js +0 -3
  10. package/dist/completions/params/LiquidCompletionParams.js.map +1 -1
  11. package/dist/completions/providers/FilterCompletionProvider.js.map +1 -1
  12. package/dist/completions/providers/TranslationCompletionProvider.js +1 -1
  13. package/dist/completions/providers/TranslationCompletionProvider.js.map +1 -1
  14. package/dist/diagnostics/runChecks.d.ts +2 -1
  15. package/dist/diagnostics/runChecks.js +2 -2
  16. package/dist/diagnostics/runChecks.js.map +1 -1
  17. package/dist/documentHighlights/providers/HtmlTagNameDocumentHighlightsProvider.d.ts +1 -1
  18. package/dist/formatting/OnTypeFormattingProvider.d.ts +1 -1
  19. package/dist/formatting/providers/HtmlElementAutoclosingOnTypeFormattingProvider.js.map +1 -1
  20. package/dist/linkedEditingRanges/providers/HtmlTagNameLinkedRangesProvider.d.ts +1 -1
  21. package/dist/progress.js.map +1 -1
  22. package/dist/server/Configuration.d.ts +7 -5
  23. package/dist/server/Configuration.js +10 -7
  24. package/dist/server/Configuration.js.map +1 -1
  25. package/dist/server/startServer.js +3 -2
  26. package/dist/server/startServer.js.map +1 -1
  27. package/dist/test/MockConnection.d.ts +15 -15
  28. package/dist/tsconfig.tsbuildinfo +1 -1
  29. package/package.json +9 -9
  30. package/src/ClientCapabilities.ts +1 -1
  31. package/src/TypeSystem.spec.ts +6 -9
  32. package/src/TypeSystem.ts +2 -2
  33. package/src/completions/providers/ContentForBlockTypeCompletionProvider.spec.ts +1 -1
  34. package/src/completions/providers/ContentForCompletionProvider.spec.ts +1 -1
  35. package/src/completions/providers/ContentForParameterCompletionProvider.spec.ts +2 -2
  36. package/src/completions/providers/FilterCompletionProvider.spec.ts +1 -1
  37. package/src/completions/providers/FilterCompletionProvider.ts +6 -6
  38. package/src/completions/providers/FilterNamedParameterCompletionProvider.spec.ts +1 -1
  39. package/src/completions/providers/HtmlAttributeCompletionProvider.spec.ts +1 -1
  40. package/src/completions/providers/HtmlAttributeValueCompletionProvider.spec.ts +1 -1
  41. package/src/completions/providers/HtmlTagCompletionProvider.spec.ts +1 -1
  42. package/src/completions/providers/LiquidDocParamTypeCompletionProvider.spec.ts +1 -1
  43. package/src/completions/providers/LiquidDocTagCompletionProvider.spec.ts +1 -1
  44. package/src/completions/providers/LiquidTagsCompletionProvider.spec.ts +1 -1
  45. package/src/completions/providers/ObjectAttributeCompletionProvider.spec.ts +1 -1
  46. package/src/completions/providers/PartialCompletionProvider.spec.ts +4 -4
  47. package/src/completions/providers/RenderPartialParameterCompletionProvider.spec.ts +1 -1
  48. package/src/completions/providers/TranslationCompletionProvider.spec.ts +1 -1
  49. package/src/completions/providers/TranslationCompletionProvider.ts +1 -1
  50. package/src/css/CSSLanguageService.spec.ts +8 -10
  51. package/src/diagnostics/runChecks.ts +7 -2
  52. package/src/formatting/providers/HtmlElementAutoclosingOnTypeFormattingProvider.spec.ts +3 -2
  53. package/src/formatting/providers/HtmlElementAutoclosingOnTypeFormattingProvider.ts +1 -3
  54. package/src/hover/providers/ContentForArgumentHoverProvider.spec.ts +1 -1
  55. package/src/hover/providers/ContentForTypeHoverProvider.spec.ts +1 -1
  56. package/src/hover/providers/HtmlAttributeHoverProvider.spec.ts +1 -1
  57. package/src/hover/providers/HtmlAttributeValueHoverProvider.spec.ts +1 -1
  58. package/src/hover/providers/HtmlTagHoverProvider.spec.ts +1 -1
  59. package/src/hover/providers/LiquidDocTagHoverProvider.spec.ts +1 -1
  60. package/src/hover/providers/LiquidFilterArgumentHoverProvider.spec.ts +1 -1
  61. package/src/hover/providers/LiquidFilterHoverProvider.spec.ts +1 -1
  62. package/src/hover/providers/LiquidObjectAttributeHoverProvider.spec.ts +1 -1
  63. package/src/hover/providers/LiquidTagHoverProvider.spec.ts +1 -1
  64. package/src/hover/providers/RenderPartialHoverProvider.spec.ts +1 -1
  65. package/src/hover/providers/RenderPartialParameterHoverProvider.spec.ts +1 -1
  66. package/src/hover/providers/TranslationHoverProvider.spec.ts +1 -1
  67. package/src/progress.ts +4 -1
  68. package/src/server/Configuration.ts +14 -5
  69. package/src/server/startServer.spec.ts +6 -6
  70. package/src/server/startServer.ts +4 -3
  71. package/src/test/CompletionItemsAssertion.spec.ts +1 -1
  72. package/dist/codeActions/providers/GenerateDocBlockProvider.d.ts +0 -10
  73. package/dist/codeActions/providers/GenerateDocBlockProvider.js +0 -39
  74. package/dist/codeActions/providers/GenerateDocBlockProvider.js.map +0 -1
  75. package/dist/commands/providers/GenerateDocBlockCommandProvider.d.ts +0 -19
  76. package/dist/commands/providers/GenerateDocBlockCommandProvider.js +0 -64
  77. package/dist/commands/providers/GenerateDocBlockCommandProvider.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platformos/platformos-language-server-common",
3
- "version": "0.0.5",
3
+ "version": "0.0.7",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "author": "platformOS",
@@ -27,14 +27,14 @@
27
27
  "type-check": "tsc --noEmit -p ./tsconfig.json"
28
28
  },
29
29
  "dependencies": {
30
- "@platformos/liquid-html-parser": "^0.0.5",
31
- "@platformos/platformos-check-common": "0.0.5",
32
- "@platformos/platformos-graph": "0.0.5",
30
+ "@platformos/liquid-html-parser": "^0.0.7",
31
+ "@platformos/platformos-check-common": "0.0.7",
32
+ "@platformos/platformos-graph": "0.0.7",
33
33
  "@vscode/web-custom-data": "^0.4.6",
34
- "vscode-json-languageservice": "^5.3.10",
35
- "vscode-languageserver": "^8.0.2",
36
- "vscode-css-languageservice": "6.3.2",
37
- "vscode-languageserver-textdocument": "^1.0.8",
38
- "vscode-uri": "^3.0.7"
34
+ "vscode-json-languageservice": "^5.7.1",
35
+ "vscode-languageserver": "^9.0.1",
36
+ "vscode-css-languageservice": "^6.3.9",
37
+ "vscode-languageserver-textdocument": "^1.0.12",
38
+ "vscode-uri": "^3.1.0"
39
39
  }
40
40
  }
@@ -44,7 +44,7 @@ export class ClientCapabilities {
44
44
  }
45
45
 
46
46
  initializationOption<T>(key: string, defaultValue: T): T {
47
- // { 'themeCheck.checkOnSave': true }
47
+ // { 'platformosCheck.checkOnSave': true }
48
48
  const direct = this.initializationOptions?.[key];
49
49
  if (direct !== undefined) return direct;
50
50
 
@@ -1068,9 +1068,8 @@ query {
1068
1068
 
1069
1069
  describe('metafieldDefinitionsObjectMap', async () => {
1070
1070
  it('should convert metafield definitions into types', async () => {
1071
- const metafieldObjectMap = await typeSystem.metafieldDefinitionsObjectMap(
1072
- 'file:///any/file.liquid',
1073
- );
1071
+ const metafieldObjectMap =
1072
+ await typeSystem.metafieldDefinitionsObjectMap('file:///any/file.liquid');
1074
1073
 
1075
1074
  assert(metafieldObjectMap['product_metafields']);
1076
1075
  assert(metafieldObjectMap['product_metafield_custom']);
@@ -1078,9 +1077,8 @@ query {
1078
1077
  });
1079
1078
 
1080
1079
  it('should group metafield definitions by namespace', async () => {
1081
- const metafieldObjectMap = await typeSystem.metafieldDefinitionsObjectMap(
1082
- 'file:///any/file.liquid',
1083
- );
1080
+ const metafieldObjectMap =
1081
+ await typeSystem.metafieldDefinitionsObjectMap('file:///any/file.liquid');
1084
1082
  const properties = metafieldObjectMap['product_metafields'].properties;
1085
1083
 
1086
1084
  assert(properties);
@@ -1131,9 +1129,8 @@ query {
1131
1129
  });
1132
1130
 
1133
1131
  it('should have `metafield_x_array` return_type for array of references', async () => {
1134
- const metafieldObjectMap = await typeSystem.metafieldDefinitionsObjectMap(
1135
- 'file:///any/file.liquid',
1136
- );
1132
+ const metafieldObjectMap =
1133
+ await typeSystem.metafieldDefinitionsObjectMap('file:///any/file.liquid');
1137
1134
  const relatedProperties = metafieldObjectMap['order_metafield_related'].properties;
1138
1135
 
1139
1136
  assert(relatedProperties);
package/src/TypeSystem.ts CHANGED
@@ -115,8 +115,8 @@ export class TypeSystem {
115
115
  const entryType = isArrayType(type)
116
116
  ? type.valueType
117
117
  : isShapeType(type) || isUnionType(type)
118
- ? Untyped
119
- : type;
118
+ ? Untyped
119
+ : type;
120
120
  const entry = objectMap[entryType] ?? {};
121
121
  return {
122
122
  entry: { ...entry, name: identifier },
@@ -18,7 +18,7 @@ describe('Module: ContentForBlockTypeCompletionProvider', async () => {
18
18
  tags: async () => [],
19
19
  systemTranslations: async () => ({}),
20
20
  },
21
- getMetafieldDefinitions: async (_rootUri: string) => ({} as MetafieldDefinitionMap),
21
+ getMetafieldDefinitions: async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
22
22
  getThemeBlockNames: async (_rootUri: string, _includePrivate: boolean) => [
23
23
  'block-1',
24
24
  'block-2',
@@ -18,7 +18,7 @@ describe('Module: ContentForCompletionProvider', async () => {
18
18
  tags: async () => [],
19
19
  systemTranslations: async () => ({}),
20
20
  },
21
- getMetafieldDefinitions: async (_rootUri: string) => ({} as MetafieldDefinitionMap),
21
+ getMetafieldDefinitions: async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
22
22
  });
23
23
  });
24
24
 
@@ -34,7 +34,7 @@ describe('Module: ContentForBlockParameterCompletionProvider', async () => {
34
34
  tags: async () => [],
35
35
  systemTranslations: async () => ({}),
36
36
  },
37
- getMetafieldDefinitions: async (_rootUri: string) => ({} as MetafieldDefinitionMap),
37
+ getMetafieldDefinitions: async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
38
38
  });
39
39
  });
40
40
 
@@ -266,7 +266,7 @@ describe('Module: ContentForBlockParameterCompletionProvider', async () => {
266
266
  tags: async () => [],
267
267
  systemTranslations: async () => ({}),
268
268
  },
269
- getMetafieldDefinitions: async (_rootUri: string) => ({} as MetafieldDefinitionMap),
269
+ getMetafieldDefinitions: async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
270
270
  getDocDefinitionForURI: async (_uri, _category, _name) => {
271
271
  return {
272
272
  uri: 'file:///blocks/product-card.liquid',
@@ -137,7 +137,7 @@ describe('Module: FilterCompletionProvider', async () => {
137
137
  tags: async () => [],
138
138
  systemTranslations: async () => ({}),
139
139
  },
140
- getMetafieldDefinitions: async (_rootUri: string) => ({} as MetafieldDefinitionMap),
140
+ getMetafieldDefinitions: async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
141
141
  });
142
142
  });
143
143
 
@@ -50,12 +50,12 @@ export class FilterCompletionProvider implements Provider {
50
50
  const normalizedType = isArrayType(inputType)
51
51
  ? 'array'
52
52
  : isShapeType(inputType)
53
- ? inputType.shape.kind === 'array'
54
- ? 'array'
55
- : 'untyped'
56
- : isUnionType(inputType)
57
- ? 'untyped'
58
- : inputType;
53
+ ? inputType.shape.kind === 'array'
54
+ ? 'array'
55
+ : 'untyped'
56
+ : isUnionType(inputType)
57
+ ? 'untyped'
58
+ : inputType;
59
59
  const options = await this.options(normalizedType);
60
60
 
61
61
  return options
@@ -49,7 +49,7 @@ describe('Module: ObjectCompletionProvider', async () => {
49
49
  tags: async () => [],
50
50
  systemTranslations: async () => ({}),
51
51
  },
52
- getMetafieldDefinitions: async (_rootUri: string) => ({} as MetafieldDefinitionMap),
52
+ getMetafieldDefinitions: async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
53
53
  });
54
54
  });
55
55
 
@@ -23,7 +23,7 @@ describe('Module: HtmlAttributeCompletionProvider', async () => {
23
23
  tags: async () => [],
24
24
  systemTranslations: async () => ({}),
25
25
  },
26
- getMetafieldDefinitions: async (_rootUri: string) => ({} as MetafieldDefinitionMap),
26
+ getMetafieldDefinitions: async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
27
27
  });
28
28
  });
29
29
 
@@ -17,7 +17,7 @@ describe('Module: HtmlAttributeValueCompletionProvider', async () => {
17
17
  tags: async () => [],
18
18
  systemTranslations: async () => ({}),
19
19
  },
20
- getMetafieldDefinitions: async (_rootUri: string) => ({} as MetafieldDefinitionMap),
20
+ getMetafieldDefinitions: async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
21
21
  });
22
22
  });
23
23
 
@@ -21,7 +21,7 @@ describe('Module: HtmlTagCompletionProvider', async () => {
21
21
  tags: async () => [],
22
22
  systemTranslations: async () => ({}),
23
23
  },
24
- getMetafieldDefinitions: async (_rootUri: string) => ({} as MetafieldDefinitionMap),
24
+ getMetafieldDefinitions: async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
25
25
  });
26
26
  });
27
27
 
@@ -22,7 +22,7 @@ describe('Module: LiquidDocParamTypeCompletionProvider', async () => {
22
22
  tags: async () => [],
23
23
  systemTranslations: async () => ({}),
24
24
  },
25
- getMetafieldDefinitions: async (_rootUri: string) => ({} as MetafieldDefinitionMap),
25
+ getMetafieldDefinitions: async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
26
26
  });
27
27
  });
28
28
 
@@ -17,7 +17,7 @@ describe('Module: LiquidDocTagCompletionProvider', async () => {
17
17
  tags: async () => [],
18
18
  systemTranslations: async () => ({}),
19
19
  },
20
- getMetafieldDefinitions: async (_rootUri: string) => ({} as MetafieldDefinitionMap),
20
+ getMetafieldDefinitions: async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
21
21
  });
22
22
  });
23
23
 
@@ -91,7 +91,7 @@ describe('Module: LiquidTagsCompletionProvider', async () => {
91
91
  tags: async () => tags,
92
92
  systemTranslations: async () => ({}),
93
93
  },
94
- getMetafieldDefinitions: async (_rootUri: string) => ({} as MetafieldDefinitionMap),
94
+ getMetafieldDefinitions: async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
95
95
  });
96
96
  });
97
97
 
@@ -78,7 +78,7 @@ describe('Module: ObjectAttributeCompletionProvider', async () => {
78
78
  systemTranslations: async () => ({}),
79
79
  },
80
80
  getThemeSettingsSchemaForURI: settingsProvider,
81
- getMetafieldDefinitions: async (_rootUri: string) => ({} as MetafieldDefinitionMap),
81
+ getMetafieldDefinitions: async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
82
82
  });
83
83
  });
84
84
 
@@ -19,7 +19,7 @@ describe('Module: RenderSnippetCompletionProvider', async () => {
19
19
  },
20
20
  getTranslationsForURI: async (_) => ({}),
21
21
  getPartialNamesForURI: async (_) => ['product-card', 'image'],
22
- getMetafieldDefinitions: async (_rootUri: string) => ({} as MetafieldDefinitionMap),
22
+ getMetafieldDefinitions: async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
23
23
  });
24
24
  });
25
25
 
@@ -47,7 +47,7 @@ describe('Module: PartialCompletionProvider with paths', async () => {
47
47
  }
48
48
  return [];
49
49
  },
50
- getMetafieldDefinitions: async (_rootUri: string) => ({} as MetafieldDefinitionMap),
50
+ getMetafieldDefinitions: async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
51
51
  });
52
52
 
53
53
  await expect(provider).to.complete('{% render "/modules/user/commands', ['test']);
@@ -71,7 +71,7 @@ describe('Module: PartialCompletionProvider with paths', async () => {
71
71
  }
72
72
  return [];
73
73
  },
74
- getMetafieldDefinitions: async (_rootUri: string) => ({} as MetafieldDefinitionMap),
74
+ getMetafieldDefinitions: async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
75
75
  });
76
76
 
77
77
  await expect(provider).to.complete('{% render "/commands', ['test2']);
@@ -95,7 +95,7 @@ describe('Module: PartialCompletionProvider with paths', async () => {
95
95
  }
96
96
  return [];
97
97
  },
98
- getMetafieldDefinitions: async (_rootUri: string) => ({} as MetafieldDefinitionMap),
98
+ getMetafieldDefinitions: async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
99
99
  });
100
100
 
101
101
  await expect(provider).to.complete('{% render "/modules/user/commands', [
@@ -62,7 +62,7 @@ describe('Module: RenderSnippetParameterCompletionProvider', async () => {
62
62
  tags: async () => [],
63
63
  systemTranslations: async () => ({}),
64
64
  },
65
- getMetafieldDefinitions: async (_rootUri: string) => ({} as MetafieldDefinitionMap),
65
+ getMetafieldDefinitions: async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
66
66
  getDocDefinitionForURI: async (_uri, _type, snippetName) => {
67
67
  if (mockSnippetName === snippetName) {
68
68
  return mockSnippetDefinition;
@@ -17,7 +17,7 @@ describe('Module: TranslationCompletionProvider', async () => {
17
17
  tags: async () => [],
18
18
  systemTranslations: async () => ({}),
19
19
  },
20
- getMetafieldDefinitions: async (_rootUri: string) => ({} as MetafieldDefinitionMap),
20
+ getMetafieldDefinitions: async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
21
21
  getTranslationsForURI: async (_) => ({
22
22
  general: {
23
23
  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 {
@@ -51,16 +51,14 @@ describe('Module: CSSLanguageService', () => {
51
51
 
52
52
  const completions = await cssLanguageService.completions(params);
53
53
  assert(isCompletionList(completions));
54
- expect(completions.items).to.have.lengthOf(357);
54
+ expect(completions.items).to.have.lengthOf(377);
55
55
  expect(completions.items[0].label).to.equal(':active');
56
56
  expect(completions.items[0].documentation).to.deep.equal({
57
57
  kind: 'markdown',
58
58
  value:
59
- dedent(`Applies while an element is being activated by the user\\. For example, between the times the user presses the mouse button and releases it\\.
60
-
61
- (Edge 12, Firefox 1, Safari 1, Chrome 1, IE 4, Opera 5)
62
-
63
- [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/:active)`),
59
+ `Applies while an element is being activated by the user\\. For example, between the times the user presses the mouse button and releases it\\.\n\n` +
60
+ `![Baseline icon](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTAiIHZpZXdCb3g9IjAgMCA1NDAgMzAwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxzdHlsZT4KICAgIC5ncmVlbi1zaGFwZSB7CiAgICAgIGZpbGw6ICNDNEVFRDA7IC8qIExpZ2h0IG1vZGUgKi8KICAgIH0KCiAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgIC5ncmVlbi1zaGFwZSB7CiAgICAgICAgZmlsbDogIzEyNTIyNTsgLyogRGFyayBtb2RlICovCiAgICAgIH0KICAgIH0KICA8L3N0eWxlPgogIDxwYXRoIGQ9Ik00MjAgMzBMMzkwIDYwTDQ4MCAxNTBMMzkwIDI0MEwzMzAgMTgwTDMwMCAyMTBMMzkwIDMwMEw1NDAgMTUwTDQyMCAzMFoiIGNsYXNzPSJncmVlbi1zaGFwZSIvPgogIDxwYXRoIGQ9Ik0xNTAgMEwzMCAxMjBMNjAgMTUwTDE1MCA2MEwyMTAgMTIwTDI0MCA5MEwxNTAgMFoiIGNsYXNzPSJncmVlbi1zaGFwZSIvPgogIDxwYXRoIGQ9Ik0zOTAgMEw0MjAgMzBMMTUwIDMwMEwwIDE1MEwzMCAxMjBMMTUwIDI0MEwzOTAgMFoiIGZpbGw9IiMxRUE0NDYiLz4KPC9zdmc+) _Widely available across major browsers (Baseline since 2015)_\n\n` +
61
+ `[MDN Reference](https://developer.mozilla.org/docs/Web/CSS/:active)`,
64
62
  });
65
63
  });
66
64
  });
@@ -83,13 +81,13 @@ describe('Module: CSSLanguageService', () => {
83
81
  assert(hover !== null);
84
82
  expect(hover.contents).to.eql({
85
83
  kind: 'plaintext',
86
- // Dedent this
87
84
  value:
88
85
  dedent(`In combination with 'float' and 'position', determines the type of box or boxes that are generated for an element.
89
- (Edge 12, Firefox 1, Safari 1, Chrome 1, IE 4, Opera 7)
90
-
86
+
87
+ Widely available across major browsers (Baseline since 2015)
88
+
91
89
  Syntax: [ <display-outside> || <display-inside> ] | <display-listitem> | <display-internal> | <display-box> | <display-legacy>
92
-
90
+
93
91
  MDN Reference: https://developer.mozilla.org/docs/Web/CSS/display`),
94
92
  });
95
93
  });
@@ -29,10 +29,15 @@ export function makeRunChecks(
29
29
  getMetafieldDefinitions,
30
30
  cssLanguageService,
31
31
  themeGraphManager,
32
+ includeFilesFromDisk,
32
33
  }: Pick<
33
34
  Dependencies,
34
35
  'fs' | 'loadConfig' | 'themeDocset' | 'jsonValidationSet' | 'getMetafieldDefinitions'
35
- > & { cssLanguageService?: CSSLanguageService; themeGraphManager?: ThemeGraphManager },
36
+ > & {
37
+ cssLanguageService?: CSSLanguageService;
38
+ themeGraphManager?: ThemeGraphManager;
39
+ includeFilesFromDisk?: () => boolean;
40
+ },
36
41
  ) {
37
42
  return async function runChecks(triggerURIs: string[]): Promise<void> {
38
43
  // This function takes an array of triggerURIs so that we can correctly
@@ -53,7 +58,7 @@ export function makeRunChecks(
53
58
 
54
59
  async function runChecksForRoot(configFileRootUri: string) {
55
60
  const config = await loadConfig(configFileRootUri, fs);
56
- const theme = documentManager.theme(config.rootUri);
61
+ const theme = documentManager.theme(config.rootUri, includeFilesFromDisk?.());
57
62
 
58
63
  const cssOffenses = cssLanguageService
59
64
  ? await Promise.all(
@@ -2,6 +2,7 @@ import { afterEach, assert, beforeEach, describe, expect, it, vi } from 'vitest'
2
2
  import { DocumentOnTypeFormattingParams } from 'vscode-languageserver';
3
3
  import { DocumentManager } from '../../documents';
4
4
  import { OnTypeFormattingProvider } from '../OnTypeFormattingProvider';
5
+ import { SetCursorPosition } from '../types';
5
6
 
6
7
  const options: DocumentOnTypeFormattingParams['options'] = {
7
8
  insertSpaces: true,
@@ -11,11 +12,11 @@ const options: DocumentOnTypeFormattingParams['options'] = {
11
12
  describe('Module: HtmlElementAutoclosingOnTypeFormattingProvider', () => {
12
13
  let documentManager: DocumentManager;
13
14
  let onTypeFormattingProvider: OnTypeFormattingProvider;
14
- let setCursorPositionSpy: ReturnType<typeof vi.fn>;
15
+ let setCursorPositionSpy: SetCursorPosition;
15
16
  const uri = 'file:///path/to/document.liquid';
16
17
 
17
18
  beforeEach(() => {
18
- setCursorPositionSpy = vi.fn();
19
+ setCursorPositionSpy = vi.fn(async () => {}) as SetCursorPosition;
19
20
  documentManager = new DocumentManager();
20
21
  onTypeFormattingProvider = new OnTypeFormattingProvider(documentManager, setCursorPositionSpy);
21
22
  vi.useFakeTimers();
@@ -52,9 +52,7 @@ const defer = (fn: () => void) => setTimeout(fn, 10);
52
52
  * </div>
53
53
  * ```
54
54
  */
55
- export class HtmlElementAutoclosingOnTypeFormattingProvider
56
- implements BaseOnTypeFormattingProvider
57
- {
55
+ export class HtmlElementAutoclosingOnTypeFormattingProvider implements BaseOnTypeFormattingProvider {
58
56
  constructor(private setCursorPosition: SetCursorPosition) {}
59
57
 
60
58
  onTypeFormatting(
@@ -68,7 +68,7 @@ const createProvider = (getSnippetDefinition: GetDocDefinitionForURI) => {
68
68
  systemTranslations: async () => ({}),
69
69
  },
70
70
  new TranslationProvider(new MockFileSystem({})),
71
- async (_rootUri: string) => ({} as MetafieldDefinitionMap),
71
+ async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
72
72
  async () => ({}),
73
73
  async () => [],
74
74
  getSnippetDefinition,
@@ -83,7 +83,7 @@ const createProvider = (getSnippetDefinition: GetDocDefinitionForURI) => {
83
83
  systemTranslations: async () => ({}),
84
84
  },
85
85
  new TranslationProvider(new MockFileSystem({})),
86
- async (_rootUri: string) => ({} as MetafieldDefinitionMap),
86
+ async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
87
87
  async () => ({}),
88
88
  async () => [],
89
89
  getSnippetDefinition,
@@ -20,7 +20,7 @@ describe('Module: HtmlAttributeHoverProvider', async () => {
20
20
  systemTranslations: async () => ({}),
21
21
  },
22
22
  new TranslationProvider(new MockFileSystem({}, '.')),
23
- async (_rootUri: string) => ({} as MetafieldDefinitionMap),
23
+ async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
24
24
  );
25
25
  });
26
26
 
@@ -20,7 +20,7 @@ describe('Module: HtmlAttributeHoverProvider', async () => {
20
20
  systemTranslations: async () => ({}),
21
21
  },
22
22
  new TranslationProvider(new MockFileSystem({}, '.')),
23
- async (_rootUri: string) => ({} as MetafieldDefinitionMap),
23
+ async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
24
24
  );
25
25
  });
26
26
 
@@ -20,7 +20,7 @@ describe('Module: HtmlTagHoverProvider', async () => {
20
20
  systemTranslations: async () => ({}),
21
21
  },
22
22
  new TranslationProvider(new MockFileSystem({})),
23
- async (_rootUri: string) => ({} as MetafieldDefinitionMap),
23
+ async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
24
24
  );
25
25
  });
26
26
 
@@ -22,7 +22,7 @@ describe('Module: RenderSnippetParameterHoverProvider', async () => {
22
22
  systemTranslations: async () => ({}),
23
23
  },
24
24
  new TranslationProvider(new MockFileSystem({})),
25
- async (_rootUri: string) => ({} as MetafieldDefinitionMap),
25
+ async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
26
26
  );
27
27
  });
28
28
 
@@ -36,7 +36,7 @@ describe('Module: LiquidFilterArgumentHoverProvider', async () => {
36
36
  systemTranslations: async () => ({}),
37
37
  },
38
38
  new TranslationProvider(new MockFileSystem({})),
39
- async (_rootUri: string) => ({} as MetafieldDefinitionMap),
39
+ async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
40
40
  );
41
41
  });
42
42
 
@@ -27,7 +27,7 @@ describe('Module: LiquidFilterHoverProvider', async () => {
27
27
  systemTranslations: async () => ({}),
28
28
  },
29
29
  new TranslationProvider(new MockFileSystem({})),
30
- async (_rootUri: string) => ({} as MetafieldDefinitionMap),
30
+ async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
31
31
  );
32
32
  });
33
33
 
@@ -60,7 +60,7 @@ describe('Module: LiquidObjectAttributeHoverProvider', async () => {
60
60
  systemTranslations: async () => ({}),
61
61
  },
62
62
  new TranslationProvider(new MockFileSystem({})),
63
- async (_rootUri: string) => ({} as MetafieldDefinitionMap),
63
+ async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
64
64
  );
65
65
  });
66
66
 
@@ -23,7 +23,7 @@ describe('Module: LiquidTagHoverProvider', async () => {
23
23
  systemTranslations: async () => ({}),
24
24
  },
25
25
  new TranslationProvider(new MockFileSystem({})),
26
- async (_rootUri: string) => ({} as MetafieldDefinitionMap),
26
+ async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
27
27
  );
28
28
  });
29
29
 
@@ -77,7 +77,7 @@ const createProvider = (getSnippetDefinition: GetDocDefinitionForURI) => {
77
77
  systemTranslations: async () => ({}),
78
78
  },
79
79
  new TranslationProvider(new MockFileSystem({})),
80
- async (_rootUri: string) => ({} as MetafieldDefinitionMap),
80
+ async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
81
81
  async () => ({}),
82
82
  async () => [],
83
83
  getSnippetDefinition,
@@ -62,7 +62,7 @@ const createProvider = (getSnippetDefinition: GetDocDefinitionForURI) => {
62
62
  systemTranslations: async () => ({}),
63
63
  },
64
64
  new TranslationProvider(new MockFileSystem({})),
65
- async (_rootUri: string) => ({} as MetafieldDefinitionMap),
65
+ async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
66
66
  async () => ({}),
67
67
  async () => [],
68
68
  getSnippetDefinition,
@@ -32,7 +32,7 @@ describe('Module: TranslationHoverProvider', async () => {
32
32
  `,
33
33
  }),
34
34
  ),
35
- async (_rootUri: string) => ({} as MetafieldDefinitionMap),
35
+ async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
36
36
  undefined,
37
37
  undefined,
38
38
  undefined,
package/src/progress.ts CHANGED
@@ -20,7 +20,10 @@ export interface IProgress {
20
20
  * await progress.end('Finished');
21
21
  */
22
22
  export class Progress {
23
- constructor(private connection: Connection, private progressToken: string) {}
23
+ constructor(
24
+ private connection: Connection,
25
+ private progressToken: string,
26
+ ) {}
24
27
 
25
28
  static create(
26
29
  connection: Connection | undefined,
@@ -7,10 +7,11 @@ import {
7
7
  } from 'vscode-languageserver';
8
8
  import { ClientCapabilities } from '../ClientCapabilities';
9
9
 
10
- export const CHECK_ON_OPEN = 'themeCheck.checkOnOpen' as const;
11
- export const CHECK_ON_SAVE = 'themeCheck.checkOnSave' as const;
12
- export const CHECK_ON_CHANGE = 'themeCheck.checkOnChange' as const;
13
- export const PRELOAD_ON_BOOT = 'themeCheck.preloadOnBoot' as const;
10
+ export const CHECK_ON_OPEN = 'platformosCheck.checkOnOpen' as const;
11
+ export const CHECK_ON_SAVE = 'platformosCheck.checkOnSave' as const;
12
+ export const CHECK_ON_CHANGE = 'platformosCheck.checkOnChange' as const;
13
+ export const PRELOAD_ON_BOOT = 'platformosCheck.preloadOnBoot' as const;
14
+ export const INCLUDE_FILES_FROM_DISK = 'platformosCheck.includeFilesFromDisk' as const;
14
15
  export const ConfigurationKeys = [
15
16
  CHECK_ON_OPEN,
16
17
  CHECK_ON_SAVE,
@@ -23,8 +24,12 @@ export class Configuration {
23
24
  [CHECK_ON_SAVE]: boolean = true;
24
25
  [CHECK_ON_CHANGE]: boolean = true;
25
26
  [PRELOAD_ON_BOOT]: boolean = true;
27
+ [INCLUDE_FILES_FROM_DISK]: boolean = false;
26
28
 
27
- constructor(private connection: Connection, private capabilities: ClientCapabilities) {
29
+ constructor(
30
+ private connection: Connection,
31
+ private capabilities: ClientCapabilities,
32
+ ) {
28
33
  this.connection = connection;
29
34
  this.capabilities = capabilities;
30
35
  }
@@ -34,6 +39,10 @@ export class Configuration {
34
39
  this[CHECK_ON_SAVE] = this.capabilities.initializationOption(CHECK_ON_SAVE, true);
35
40
  this[CHECK_ON_CHANGE] = this.capabilities.initializationOption(CHECK_ON_CHANGE, true);
36
41
  this[PRELOAD_ON_BOOT] = this.capabilities.initializationOption(PRELOAD_ON_BOOT, true);
42
+ this[INCLUDE_FILES_FROM_DISK] = this.capabilities.initializationOption(
43
+ INCLUDE_FILES_FROM_DISK,
44
+ false,
45
+ );
37
46
  }
38
47
 
39
48
  async shouldCheckOnOpen() {
@@ -117,9 +117,9 @@ describe('Module: server', () => {
117
117
  connection.setup(
118
118
  {},
119
119
  {
120
- 'themeCheck.checkOnOpen': false,
121
- 'themeCheck.checkOnChange': false,
122
- 'themeCheck.checkOnSave': false,
120
+ 'platformosCheck.checkOnOpen': false,
121
+ 'platformosCheck.checkOnChange': false,
122
+ 'platformosCheck.checkOnSave': false,
123
123
  },
124
124
  );
125
125
  await flushAsync();
@@ -154,9 +154,9 @@ describe('Module: server', () => {
154
154
  },
155
155
  },
156
156
  {
157
- 'themeCheck.checkOnOpen': false,
158
- 'themeCheck.checkOnChange': false,
159
- 'themeCheck.checkOnSave': false,
157
+ 'platformosCheck.checkOnOpen': false,
158
+ 'platformosCheck.checkOnChange': false,
159
+ 'platformosCheck.checkOnSave': false,
160
160
  },
161
161
  );
162
162
  await flushAsync();