@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.
- package/CHANGELOG.md +20 -0
- package/dist/ClientCapabilities.js +1 -1
- package/dist/ClientCapabilities.js.map +1 -1
- package/dist/PropertyShapeInference.d.ts +0 -18
- package/dist/PropertyShapeInference.js +1 -59
- package/dist/PropertyShapeInference.js.map +1 -1
- package/dist/TypeSystem.js +26 -225
- package/dist/TypeSystem.js.map +1 -1
- package/dist/completions/params/LiquidCompletionParams.js +0 -3
- package/dist/completions/params/LiquidCompletionParams.js.map +1 -1
- package/dist/completions/providers/FilterCompletionProvider.js.map +1 -1
- package/dist/completions/providers/TranslationCompletionProvider.js +1 -1
- package/dist/completions/providers/TranslationCompletionProvider.js.map +1 -1
- package/dist/diagnostics/runChecks.d.ts +2 -1
- package/dist/diagnostics/runChecks.js +2 -2
- package/dist/diagnostics/runChecks.js.map +1 -1
- package/dist/documentHighlights/providers/HtmlTagNameDocumentHighlightsProvider.d.ts +1 -1
- package/dist/formatting/OnTypeFormattingProvider.d.ts +1 -1
- package/dist/formatting/providers/HtmlElementAutoclosingOnTypeFormattingProvider.js.map +1 -1
- package/dist/linkedEditingRanges/providers/HtmlTagNameLinkedRangesProvider.d.ts +1 -1
- package/dist/progress.js.map +1 -1
- package/dist/server/Configuration.d.ts +7 -5
- package/dist/server/Configuration.js +10 -7
- package/dist/server/Configuration.js.map +1 -1
- package/dist/server/startServer.js +3 -2
- package/dist/server/startServer.js.map +1 -1
- package/dist/test/MockConnection.d.ts +15 -15
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -9
- package/src/ClientCapabilities.ts +1 -1
- package/src/TypeSystem.spec.ts +6 -9
- package/src/TypeSystem.ts +2 -2
- package/src/completions/providers/ContentForBlockTypeCompletionProvider.spec.ts +1 -1
- package/src/completions/providers/ContentForCompletionProvider.spec.ts +1 -1
- package/src/completions/providers/ContentForParameterCompletionProvider.spec.ts +2 -2
- package/src/completions/providers/FilterCompletionProvider.spec.ts +1 -1
- package/src/completions/providers/FilterCompletionProvider.ts +6 -6
- package/src/completions/providers/FilterNamedParameterCompletionProvider.spec.ts +1 -1
- package/src/completions/providers/HtmlAttributeCompletionProvider.spec.ts +1 -1
- package/src/completions/providers/HtmlAttributeValueCompletionProvider.spec.ts +1 -1
- package/src/completions/providers/HtmlTagCompletionProvider.spec.ts +1 -1
- package/src/completions/providers/LiquidDocParamTypeCompletionProvider.spec.ts +1 -1
- package/src/completions/providers/LiquidDocTagCompletionProvider.spec.ts +1 -1
- package/src/completions/providers/LiquidTagsCompletionProvider.spec.ts +1 -1
- package/src/completions/providers/ObjectAttributeCompletionProvider.spec.ts +1 -1
- package/src/completions/providers/PartialCompletionProvider.spec.ts +4 -4
- package/src/completions/providers/RenderPartialParameterCompletionProvider.spec.ts +1 -1
- package/src/completions/providers/TranslationCompletionProvider.spec.ts +1 -1
- package/src/completions/providers/TranslationCompletionProvider.ts +1 -1
- package/src/css/CSSLanguageService.spec.ts +8 -10
- package/src/diagnostics/runChecks.ts +7 -2
- package/src/formatting/providers/HtmlElementAutoclosingOnTypeFormattingProvider.spec.ts +3 -2
- package/src/formatting/providers/HtmlElementAutoclosingOnTypeFormattingProvider.ts +1 -3
- package/src/hover/providers/ContentForArgumentHoverProvider.spec.ts +1 -1
- package/src/hover/providers/ContentForTypeHoverProvider.spec.ts +1 -1
- package/src/hover/providers/HtmlAttributeHoverProvider.spec.ts +1 -1
- package/src/hover/providers/HtmlAttributeValueHoverProvider.spec.ts +1 -1
- package/src/hover/providers/HtmlTagHoverProvider.spec.ts +1 -1
- package/src/hover/providers/LiquidDocTagHoverProvider.spec.ts +1 -1
- package/src/hover/providers/LiquidFilterArgumentHoverProvider.spec.ts +1 -1
- package/src/hover/providers/LiquidFilterHoverProvider.spec.ts +1 -1
- package/src/hover/providers/LiquidObjectAttributeHoverProvider.spec.ts +1 -1
- package/src/hover/providers/LiquidTagHoverProvider.spec.ts +1 -1
- package/src/hover/providers/RenderPartialHoverProvider.spec.ts +1 -1
- package/src/hover/providers/RenderPartialParameterHoverProvider.spec.ts +1 -1
- package/src/hover/providers/TranslationHoverProvider.spec.ts +1 -1
- package/src/progress.ts +4 -1
- package/src/server/Configuration.ts +14 -5
- package/src/server/startServer.spec.ts +6 -6
- package/src/server/startServer.ts +4 -3
- package/src/test/CompletionItemsAssertion.spec.ts +1 -1
- package/dist/codeActions/providers/GenerateDocBlockProvider.d.ts +0 -10
- package/dist/codeActions/providers/GenerateDocBlockProvider.js +0 -39
- package/dist/codeActions/providers/GenerateDocBlockProvider.js.map +0 -1
- package/dist/commands/providers/GenerateDocBlockCommandProvider.d.ts +0 -19
- package/dist/commands/providers/GenerateDocBlockCommandProvider.js +0 -64
- 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.
|
|
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.
|
|
31
|
-
"@platformos/platformos-check-common": "0.0.
|
|
32
|
-
"@platformos/platformos-graph": "0.0.
|
|
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.
|
|
35
|
-
"vscode-languageserver": "^
|
|
36
|
-
"vscode-css-languageservice": "6.3.
|
|
37
|
-
"vscode-languageserver-textdocument": "^1.0.
|
|
38
|
-
"vscode-uri": "^3.0
|
|
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
|
-
// { '
|
|
47
|
+
// { 'platformosCheck.checkOnSave': true }
|
|
48
48
|
const direct = this.initializationOptions?.[key];
|
|
49
49
|
if (direct !== undefined) return direct;
|
|
50
50
|
|
package/src/TypeSystem.spec.ts
CHANGED
|
@@ -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 =
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
119
|
-
|
|
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
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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(
|
|
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
|
-
|
|
60
|
-
|
|
61
|
-
(
|
|
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
|
+
` _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
|
-
|
|
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
|
-
> & {
|
|
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:
|
|
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,
|
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(
|
|
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 = '
|
|
11
|
-
export const CHECK_ON_SAVE = '
|
|
12
|
-
export const CHECK_ON_CHANGE = '
|
|
13
|
-
export const PRELOAD_ON_BOOT = '
|
|
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(
|
|
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
|
-
'
|
|
121
|
-
'
|
|
122
|
-
'
|
|
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
|
-
'
|
|
158
|
-
'
|
|
159
|
-
'
|
|
157
|
+
'platformosCheck.checkOnOpen': false,
|
|
158
|
+
'platformosCheck.checkOnChange': false,
|
|
159
|
+
'platformosCheck.checkOnSave': false,
|
|
160
160
|
},
|
|
161
161
|
);
|
|
162
162
|
await flushAsync();
|