@platformos/platformos-language-server-common 0.0.6 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/dist/PropertyShapeInference.d.ts +18 -0
- package/dist/PropertyShapeInference.js +58 -0
- package/dist/PropertyShapeInference.js.map +1 -1
- package/dist/TypeSystem.d.ts +4 -9
- package/dist/TypeSystem.js +234 -388
- package/dist/TypeSystem.js.map +1 -1
- package/dist/completions/CompletionsProvider.d.ts +6 -10
- package/dist/completions/CompletionsProvider.js +6 -9
- package/dist/completions/CompletionsProvider.js.map +1 -1
- package/dist/completions/params/LiquidCompletionParams.js +4 -16
- package/dist/completions/params/LiquidCompletionParams.js.map +1 -1
- package/dist/completions/providers/ContentForCompletionProvider.js +2 -4
- package/dist/completions/providers/ContentForCompletionProvider.js.map +1 -1
- package/dist/completions/providers/FilterCompletionProvider.js.map +1 -1
- package/dist/completions/providers/FilterNamedParameterCompletionProvider.d.ts +3 -3
- package/dist/completions/providers/FilterNamedParameterCompletionProvider.js +6 -6
- package/dist/completions/providers/FilterNamedParameterCompletionProvider.js.map +1 -1
- package/dist/completions/providers/LiquidDocParamTypeCompletionProvider.d.ts +3 -3
- package/dist/completions/providers/LiquidDocParamTypeCompletionProvider.js +3 -3
- package/dist/completions/providers/LiquidDocParamTypeCompletionProvider.js.map +1 -1
- package/dist/completions/providers/LiquidTagsCompletionProvider.d.ts +3 -3
- package/dist/completions/providers/LiquidTagsCompletionProvider.js +3 -3
- package/dist/completions/providers/LiquidTagsCompletionProvider.js.map +1 -1
- package/dist/completions/providers/RenderPartialParameterCompletionProvider.js +1 -1
- package/dist/completions/providers/RenderPartialParameterCompletionProvider.js.map +1 -1
- package/dist/completions/providers/TranslationCompletionProvider.js +1 -1
- package/dist/completions/providers/TranslationCompletionProvider.js.map +1 -1
- package/dist/completions/providers/index.d.ts +0 -3
- package/dist/completions/providers/index.js +1 -7
- package/dist/completions/providers/index.js.map +1 -1
- package/dist/css/CSSLanguageService.d.ts +19 -5
- package/dist/css/CSSLanguageService.js +77 -63
- package/dist/css/CSSLanguageService.js.map +1 -1
- package/dist/definitions/DefinitionProvider.d.ts +1 -1
- package/dist/definitions/DefinitionProvider.js +1 -3
- package/dist/definitions/DefinitionProvider.js.map +1 -1
- package/dist/diagnostics/offenseToDiagnostic.js +1 -1
- package/dist/diagnostics/offenseToDiagnostic.js.map +1 -1
- package/dist/diagnostics/runChecks.d.ts +3 -5
- package/dist/diagnostics/runChecks.js +12 -64
- package/dist/diagnostics/runChecks.js.map +1 -1
- package/dist/docset/MarkdownRenderer.js +1 -1
- package/dist/docset/MarkdownRenderer.js.map +1 -1
- package/dist/documentHighlights/providers/HtmlTagNameDocumentHighlightsProvider.d.ts +1 -1
- package/dist/documentLinks/DocumentLinksProvider.d.ts +3 -3
- package/dist/documentLinks/DocumentLinksProvider.js +3 -3
- package/dist/documentLinks/DocumentLinksProvider.js.map +1 -1
- package/dist/documents/DocumentManager.d.ts +4 -5
- package/dist/documents/DocumentManager.js +12 -11
- package/dist/documents/DocumentManager.js.map +1 -1
- package/dist/documents/types.d.ts +16 -3
- package/dist/documents/types.js +3 -3
- package/dist/documents/types.js.map +1 -1
- package/dist/formatting/OnTypeFormattingProvider.d.ts +1 -1
- package/dist/formatting/providers/HtmlElementAutoclosingOnTypeFormattingProvider.js.map +1 -1
- package/dist/hover/HoverProvider.d.ts +5 -8
- package/dist/hover/HoverProvider.js +8 -14
- package/dist/hover/HoverProvider.js.map +1 -1
- package/dist/hover/providers/LiquidFilterArgumentHoverProvider.d.ts +3 -3
- package/dist/hover/providers/LiquidFilterArgumentHoverProvider.js +3 -3
- package/dist/hover/providers/LiquidFilterArgumentHoverProvider.js.map +1 -1
- package/dist/hover/providers/LiquidFilterHoverProvider.d.ts +3 -3
- package/dist/hover/providers/LiquidFilterHoverProvider.js +3 -3
- package/dist/hover/providers/LiquidFilterHoverProvider.js.map +1 -1
- package/dist/hover/providers/LiquidTagHoverProvider.d.ts +3 -3
- package/dist/hover/providers/LiquidTagHoverProvider.js +3 -3
- package/dist/hover/providers/LiquidTagHoverProvider.js.map +1 -1
- package/dist/hover/providers/RenderPartialHoverProvider.js +1 -1
- package/dist/hover/providers/RenderPartialHoverProvider.js.map +1 -1
- package/dist/hover/providers/RenderPartialParameterHoverProvider.js +1 -1
- package/dist/hover/providers/RenderPartialParameterHoverProvider.js.map +1 -1
- package/dist/hover/providers/TranslationHoverProvider.d.ts +3 -3
- package/dist/hover/providers/TranslationHoverProvider.js +3 -3
- package/dist/hover/providers/TranslationHoverProvider.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal-types.d.ts +1 -1
- package/dist/json/JSONContributions.d.ts +1 -5
- package/dist/json/JSONContributions.js +4 -36
- package/dist/json/JSONContributions.js.map +1 -1
- package/dist/json/JSONLanguageService.d.ts +4 -12
- package/dist/json/JSONLanguageService.js +17 -80
- package/dist/json/JSONLanguageService.js.map +1 -1
- package/dist/json/test/test-helpers.d.ts +1 -3
- package/dist/json/test/test-helpers.js +3 -19
- package/dist/json/test/test-helpers.js.map +1 -1
- package/dist/json/utils.d.ts +0 -5
- package/dist/json/utils.js +0 -24
- package/dist/json/utils.js.map +1 -1
- package/dist/linkedEditingRanges/providers/HtmlTagNameLinkedRangesProvider.d.ts +1 -1
- package/dist/progress.js.map +1 -1
- package/dist/rename/RenameProvider.d.ts +2 -2
- package/dist/rename/RenameProvider.js +2 -2
- package/dist/rename/RenameProvider.js.map +1 -1
- package/dist/rename/providers/LiquidVariableRenameProvider.d.ts +3 -3
- package/dist/rename/providers/LiquidVariableRenameProvider.js +4 -4
- package/dist/rename/providers/LiquidVariableRenameProvider.js.map +1 -1
- package/dist/renamed/RenameHandler.d.ts +2 -3
- package/dist/renamed/RenameHandler.js +3 -8
- package/dist/renamed/RenameHandler.js.map +1 -1
- package/dist/renamed/handlers/AssetRenameHandler.d.ts +3 -3
- package/dist/renamed/handlers/AssetRenameHandler.js +5 -5
- package/dist/renamed/handlers/AssetRenameHandler.js.map +1 -1
- package/dist/renamed/handlers/PartialRenameHandler.d.ts +3 -3
- package/dist/renamed/handlers/PartialRenameHandler.js +5 -5
- package/dist/renamed/handlers/PartialRenameHandler.js.map +1 -1
- package/dist/renamed/handlers/utils.d.ts +1 -1
- package/dist/server/AppGraphManager.d.ts +32 -0
- package/dist/server/AppGraphManager.js +155 -0
- package/dist/server/AppGraphManager.js.map +1 -0
- package/dist/server/Configuration.js.map +1 -1
- package/dist/server/startServer.d.ts +2 -2
- package/dist/server/startServer.js +62 -164
- package/dist/server/startServer.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +33 -54
- package/dist/types.js +21 -26
- package/dist/types.js.map +1 -1
- package/dist/utils/liquidDoc.js +1 -1
- package/dist/utils/liquidDoc.js.map +1 -1
- package/dist/utils/uri.d.ts +0 -8
- package/dist/utils/uri.js +1 -17
- package/dist/utils/uri.js.map +1 -1
- package/package.json +9 -9
- package/src/PropertyShapeInference.ts +76 -1
- package/src/TypeSystem.spec.ts +187 -452
- package/src/TypeSystem.ts +253 -459
- package/src/completions/CompletionsProvider.ts +13 -34
- package/src/completions/params/LiquidCompletionParams.spec.ts +0 -9
- package/src/completions/params/LiquidCompletionParams.ts +4 -14
- package/src/completions/params/fix.spec.ts +0 -3
- package/src/completions/providers/FilterCompletionProvider.spec.ts +2 -8
- package/src/completions/providers/FilterCompletionProvider.ts +6 -6
- package/src/completions/providers/FilterNamedParameterCompletionProvider.spec.ts +1 -5
- package/src/completions/providers/FilterNamedParameterCompletionProvider.ts +6 -6
- package/src/completions/providers/HtmlAttributeCompletionProvider.spec.ts +1 -4
- package/src/completions/providers/HtmlAttributeValueCompletionProvider.spec.ts +1 -4
- package/src/completions/providers/HtmlTagCompletionProvider.spec.ts +1 -4
- package/src/completions/providers/LiquidDocParamTypeCompletionProvider.spec.ts +1 -28
- package/src/completions/providers/LiquidDocParamTypeCompletionProvider.ts +3 -3
- package/src/completions/providers/LiquidDocTagCompletionProvider.spec.ts +1 -26
- package/src/completions/providers/LiquidTagsCompletionProvider.spec.ts +2 -16
- package/src/completions/providers/LiquidTagsCompletionProvider.ts +3 -3
- package/src/completions/providers/ObjectAttributeCompletionProvider.spec.ts +2 -31
- package/src/completions/providers/ObjectCompletionProvider.spec.ts +34 -123
- package/src/completions/providers/PartialCompletionProvider.spec.ts +4 -13
- package/src/completions/providers/RenderPartialParameterCompletionProvider.spec.ts +3 -5
- package/src/completions/providers/RenderPartialParameterCompletionProvider.ts +0 -1
- package/src/completions/providers/TranslationCompletionProvider.spec.ts +1 -4
- package/src/completions/providers/TranslationCompletionProvider.ts +1 -1
- package/src/completions/providers/index.ts +0 -3
- package/src/css/CSSLanguageService.ts +97 -81
- package/src/definitions/DefinitionProvider.ts +0 -6
- package/src/definitions/providers/TranslationStringDefinitionProvider.spec.ts +1 -5
- package/src/diagnostics/offenseToDiagnostic.ts +1 -1
- package/src/diagnostics/runChecks.spec.ts +16 -24
- package/src/diagnostics/runChecks.ts +17 -91
- package/src/docset/MarkdownRenderer.ts +1 -1
- package/src/documentLinks/DocumentLinksProvider.ts +3 -3
- package/src/documents/DocumentManager.spec.ts +12 -97
- package/src/documents/DocumentManager.ts +13 -14
- package/src/documents/types.ts +18 -9
- package/src/formatting/providers/HtmlElementAutoclosingOnTypeFormattingProvider.ts +1 -3
- package/src/hover/HoverProvider.ts +9 -21
- package/src/hover/providers/HtmlAttributeHoverProvider.spec.ts +1 -3
- package/src/hover/providers/HtmlAttributeValueHoverProvider.spec.ts +1 -3
- package/src/hover/providers/HtmlTagHoverProvider.spec.ts +1 -3
- package/src/hover/providers/LiquidDocTagHoverProvider.spec.ts +0 -3
- package/src/hover/providers/LiquidFilterArgumentHoverProvider.spec.ts +0 -3
- package/src/hover/providers/LiquidFilterArgumentHoverProvider.ts +3 -3
- package/src/hover/providers/LiquidFilterHoverProvider.spec.ts +0 -3
- package/src/hover/providers/LiquidFilterHoverProvider.ts +3 -3
- package/src/hover/providers/LiquidObjectAttributeHoverProvider.spec.ts +1 -3
- package/src/hover/providers/LiquidObjectHoverProvider.spec.ts +46 -129
- package/src/hover/providers/LiquidTagHoverProvider.spec.ts +0 -3
- package/src/hover/providers/LiquidTagHoverProvider.ts +3 -3
- package/src/hover/providers/RenderPartialHoverProvider.spec.ts +1 -4
- package/src/hover/providers/RenderPartialHoverProvider.ts +1 -5
- package/src/hover/providers/RenderPartialParameterHoverProvider.spec.ts +1 -4
- package/src/hover/providers/RenderPartialParameterHoverProvider.ts +0 -1
- package/src/hover/providers/TranslationHoverProvider.spec.ts +1 -4
- package/src/hover/providers/TranslationHoverProvider.ts +3 -3
- package/src/index.ts +2 -5
- package/src/internal-types.ts +1 -1
- package/src/json/JSONContributions.ts +4 -61
- package/src/json/JSONLanguageService.ts +19 -117
- package/src/json/test/test-helpers.ts +4 -35
- package/src/json/utils.ts +0 -27
- package/src/progress.ts +4 -1
- package/src/rename/RenameProvider.ts +3 -3
- package/src/rename/providers/LiquidVariableRenameProvider.spec.ts +4 -4
- package/src/rename/providers/LiquidVariableRenameProvider.ts +4 -4
- package/src/renamed/RenameHandler.ts +4 -9
- package/src/renamed/handlers/AssetRenameHandler.spec.ts +3 -3
- package/src/renamed/handlers/AssetRenameHandler.ts +5 -5
- package/src/renamed/handlers/PartialRenameHandler.spec.ts +2 -2
- package/src/renamed/handlers/PartialRenameHandler.ts +5 -5
- package/src/renamed/handlers/utils.ts +1 -1
- package/src/server/{ThemeGraphManager.ts → AppGraphManager.ts} +21 -90
- package/src/server/Configuration.ts +4 -1
- package/src/server/startServer.spec.ts +7 -9
- package/src/server/startServer.ts +65 -217
- package/src/test/CompletionItemsAssertion.spec.ts +1 -4
- package/src/types.ts +33 -63
- package/src/utils/liquidDoc.ts +1 -1
- package/src/utils/uri.ts +0 -14
- package/src/completions/providers/ContentForBlockTypeCompletionProvider.spec.ts +0 -41
- package/src/completions/providers/ContentForBlockTypeCompletionProvider.ts +0 -42
- package/src/completions/providers/ContentForCompletionProvider.spec.ts +0 -96
- package/src/completions/providers/ContentForCompletionProvider.ts +0 -113
- package/src/completions/providers/ContentForParameterCompletionProvider.spec.ts +0 -362
- package/src/completions/providers/ContentForParameterCompletionProvider.ts +0 -187
- package/src/completions/providers/data/contentForParameterCompletionOptions.ts +0 -9
- package/src/css/CSSLanguageService.spec.ts +0 -161
- package/src/css/test/test-helpers.ts +0 -30
- package/src/definitions/providers/SchemaTranslationStringDefinitionProvider.spec.ts +0 -96
- package/src/definitions/providers/SchemaTranslationStringDefinitionProvider.ts +0 -82
- package/src/hover/providers/ContentForArgumentHoverProvider.spec.ts +0 -76
- package/src/hover/providers/ContentForArgumentHoverProvider.ts +0 -56
- package/src/hover/providers/ContentForTypeHoverProvider.spec.ts +0 -91
- package/src/hover/providers/ContentForTypeHoverProvider.ts +0 -42
- package/src/json/JSONLanguageService.spec.ts +0 -424
- package/src/json/completions/providers/BlockSettingsPropertyCompletionProvider.spec.ts +0 -163
- package/src/json/completions/providers/BlockSettingsPropertyCompletionProvider.ts +0 -121
- package/src/json/completions/providers/BlockTypeCompletionProvider.spec.ts +0 -137
- package/src/json/completions/providers/BlockTypeCompletionProvider.ts +0 -108
- package/src/json/completions/providers/ReferencedBlockTypeCompletionProvider.spec.ts +0 -132
- package/src/json/completions/providers/ReferencedBlockTypeCompletionProvider.ts +0 -120
- package/src/json/completions/providers/SchemaTranslationCompletionProvider.ts +0 -51
- package/src/json/completions/providers/SettingsPropertyCompletionProvider.spec.ts +0 -211
- package/src/json/completions/providers/SettingsPropertyCompletionProvider.ts +0 -75
- package/src/json/documentLinks/DocumentLinksProvider.spec.ts +0 -223
- package/src/json/documentLinks/DocumentLinksProvider.ts +0 -61
- package/src/json/hover/providers/BlockSettingsHoverProvider.spec.ts +0 -292
- package/src/json/hover/providers/BlockSettingsHoverProvider.ts +0 -99
- package/src/json/hover/providers/SchemaTranslationHoverProvider.ts +0 -35
- package/src/json/hover/providers/SettingsHoverProvider.spec.ts +0 -139
- package/src/json/hover/providers/SettingsHoverProvider.ts +0 -79
- package/src/json/schemaSettings.spec.ts +0 -103
- package/src/json/schemaSettings.ts +0 -53
- package/src/plugins/css.ts +0 -12
- package/src/renamed/handlers/BlockRenameHandler.spec.ts +0 -399
- package/src/renamed/handlers/BlockRenameHandler.ts +0 -402
- package/src/renamed/handlers/SectionRenameHandler.spec.ts +0 -321
- package/src/renamed/handlers/SectionRenameHandler.ts +0 -224
- package/src/settings/index.ts +0 -50
|
@@ -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,7 +17,7 @@ describe('Module: DocumentManager', () => {
|
|
|
23
17
|
documentManager = new DocumentManager();
|
|
24
18
|
});
|
|
25
19
|
|
|
26
|
-
it('should return
|
|
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
23
|
const fileUri = Utils.joinPath(rootUri, 'test.liquid');
|
|
@@ -31,12 +25,12 @@ describe('Module: DocumentManager', () => {
|
|
|
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
|
|
35
|
-
expect(
|
|
36
|
-
expect(
|
|
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(
|
|
33
|
+
expect(app[0].uri).to.equal(path.normalize(fileUri));
|
|
40
34
|
});
|
|
41
35
|
|
|
42
36
|
describe('when initialized with an abstract file system', () => {
|
|
@@ -70,15 +64,15 @@ describe('Module: DocumentManager', () => {
|
|
|
70
64
|
expect(sc.version).to.equal(0);
|
|
71
65
|
});
|
|
72
66
|
|
|
73
|
-
describe('Unit:
|
|
67
|
+
describe('Unit: app(rootUri, includeFilesFromDisk)', () => {
|
|
74
68
|
it('only returns the source codes of the opened files by default', () => {
|
|
75
|
-
const
|
|
76
|
-
expect(
|
|
69
|
+
const app = documentManager.app('mock-fs:/');
|
|
70
|
+
expect(app).to.have.lengthOf(0);
|
|
77
71
|
});
|
|
78
72
|
|
|
79
73
|
it('returns all the files when called with includeFilesFromDisk', async () => {
|
|
80
|
-
const
|
|
81
|
-
expect(
|
|
74
|
+
const app = documentManager.app('mock-fs:/', true);
|
|
75
|
+
expect(app).to.have.lengthOf(2);
|
|
82
76
|
});
|
|
83
77
|
});
|
|
84
78
|
|
|
@@ -110,7 +104,7 @@ describe('Module: DocumentManager', () => {
|
|
|
110
104
|
await documentManager.preload('mock-fs:/');
|
|
111
105
|
await documentManager.preload('mock-fs:/');
|
|
112
106
|
expect(vi.mocked(fs.readFile)).toHaveBeenCalledTimes(
|
|
113
|
-
documentManager.
|
|
107
|
+
documentManager.app('mock-fs:/', true).length,
|
|
114
108
|
);
|
|
115
109
|
});
|
|
116
110
|
});
|
|
@@ -194,83 +188,4 @@ describe('Module: DocumentManager', () => {
|
|
|
194
188
|
);
|
|
195
189
|
});
|
|
196
190
|
});
|
|
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
191
|
});
|
|
@@ -4,13 +4,11 @@ import {
|
|
|
4
4
|
path,
|
|
5
5
|
recursiveReadDirectory,
|
|
6
6
|
SourceCodeType,
|
|
7
|
-
|
|
7
|
+
App,
|
|
8
8
|
toSourceCode,
|
|
9
|
-
toSchema,
|
|
10
9
|
UriString,
|
|
11
10
|
IsValidSchema,
|
|
12
11
|
memo,
|
|
13
|
-
Mode,
|
|
14
12
|
isError,
|
|
15
13
|
} from '@platformos/platformos-check-common';
|
|
16
14
|
|
|
@@ -40,7 +38,6 @@ export class DocumentManager {
|
|
|
40
38
|
private readonly fs?: AbstractFileSystem,
|
|
41
39
|
private readonly connection?: Connection,
|
|
42
40
|
private readonly clientCapabilities?: ClientCapabilities,
|
|
43
|
-
private readonly getModeForUri?: (uri: UriString) => Promise<Mode>,
|
|
44
41
|
private readonly isValidSchema?: IsValidSchema,
|
|
45
42
|
) {
|
|
46
43
|
this.sourceCodes = new Map();
|
|
@@ -78,12 +75,12 @@ export class DocumentManager {
|
|
|
78
75
|
this.set(newUri, sourceCode.source, sourceCode.version);
|
|
79
76
|
}
|
|
80
77
|
|
|
81
|
-
public
|
|
78
|
+
public app(root: UriString, includeFilesFromDisk = false): AugmentedSourceCode[] {
|
|
82
79
|
return [...this.sourceCodes.values()]
|
|
83
80
|
.filter((sourceCode) => sourceCode.uri.startsWith(root))
|
|
84
81
|
.filter(
|
|
85
82
|
(sourceCode) => includeFilesFromDisk || sourceCode.version !== undefined,
|
|
86
|
-
) satisfies
|
|
83
|
+
) satisfies App;
|
|
87
84
|
}
|
|
88
85
|
|
|
89
86
|
public get openDocuments(): AugmentedSourceCode[] {
|
|
@@ -109,8 +106,8 @@ export class DocumentManager {
|
|
|
109
106
|
|
|
110
107
|
private set(uri: UriString, source: string, version: number | undefined) {
|
|
111
108
|
uri = path.normalize(uri);
|
|
112
|
-
// We only support json and
|
|
113
|
-
if (!/\.(json|liquid|graphql)$/.test(uri) || /\.(s?css|js).liquid$/.test(uri)) {
|
|
109
|
+
// We only support json, liquid, graphql, and yaml files.
|
|
110
|
+
if (!/\.(json|liquid|graphql|ya?ml)$/.test(uri) || /\.(s?css|js).liquid$/.test(uri)) {
|
|
114
111
|
return;
|
|
115
112
|
}
|
|
116
113
|
|
|
@@ -119,7 +116,7 @@ export class DocumentManager {
|
|
|
119
116
|
|
|
120
117
|
/**
|
|
121
118
|
* The preload method is used to pre-load and pre-parse all the files in the
|
|
122
|
-
*
|
|
119
|
+
* app. It is smart and only will load files that are not already in the
|
|
123
120
|
* DocumentManager.
|
|
124
121
|
*
|
|
125
122
|
* Files that are loaded from the AbstractFileSystem will have a version of `undefined`.
|
|
@@ -137,7 +134,7 @@ export class DocumentManager {
|
|
|
137
134
|
const filesToLoad = await recursiveReadDirectory(
|
|
138
135
|
this.fs,
|
|
139
136
|
rootUri,
|
|
140
|
-
([uri]) => /\.(liquid|json|graphql)$/.test(uri) && !this.sourceCodes.has(uri),
|
|
137
|
+
([uri]) => /\.(liquid|json|graphql|ya?ml)$/.test(uri) && !this.sourceCodes.has(uri),
|
|
141
138
|
);
|
|
142
139
|
|
|
143
140
|
progress.report(10, 'Preloading files');
|
|
@@ -189,16 +186,18 @@ export class DocumentManager {
|
|
|
189
186
|
...sourceCode,
|
|
190
187
|
textDocument,
|
|
191
188
|
};
|
|
189
|
+
case SourceCodeType.YAML:
|
|
190
|
+
return {
|
|
191
|
+
...sourceCode,
|
|
192
|
+
textDocument,
|
|
193
|
+
};
|
|
192
194
|
case SourceCodeType.LiquidHtml:
|
|
193
195
|
return {
|
|
194
196
|
...sourceCode,
|
|
195
197
|
textDocument,
|
|
196
198
|
/** Lazy and only computed once per file version */
|
|
197
199
|
getSchema: memo(async () => {
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
const mode = await this.getModeForUri!(uri);
|
|
201
|
-
return toSchema(mode, uri, sourceCode, this.isValidSchema, false);
|
|
200
|
+
return undefined;
|
|
202
201
|
}),
|
|
203
202
|
/** Lazy and only computed once per file version */
|
|
204
203
|
getLiquidDoc: memo(async () => {
|
package/src/documents/types.ts
CHANGED
|
@@ -1,13 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
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<
|
|
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
|
|
63
|
+
export const isGraphQLSourceCode = (file: AugmentedSourceCode): file is AugmentedJsonSourceCode =>
|
|
55
64
|
file.type === SourceCodeType.GraphQL;
|
|
@@ -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(
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
GetDocDefinitionForURI,
|
|
3
|
-
MetafieldDefinitionMap,
|
|
4
3
|
SourceCodeType,
|
|
5
|
-
|
|
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 {
|
|
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
|
|
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
|
|
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
|
|
52
|
-
new
|
|
53
|
-
new
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,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 '../../../../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';
|
|
@@ -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,
|
|
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
|
|
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.
|
|
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
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { NodeTypes } from '@platformos/liquid-html-parser';
|
|
2
|
-
import { LiquidHtmlNode,
|
|
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 LiquidFilterHoverProvider implements BaseHoverProvider {
|
|
8
|
-
constructor(private
|
|
8
|
+
constructor(private platformosDocset: PlatformOSDocset) {}
|
|
9
9
|
|
|
10
10
|
async hover(currentNode: LiquidHtmlNode): Promise<Hover | null> {
|
|
11
11
|
if (currentNode.type !== NodeTypes.LiquidFilter) {
|
|
@@ -13,7 +13,7 @@ export class LiquidFilterHoverProvider implements BaseHoverProvider {
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
const name = currentNode.name;
|
|
16
|
-
const entries = await this.
|
|
16
|
+
const entries = await this.platformosDocset.filters();
|
|
17
17
|
const entry = entries.find((entry) => entry.name === name);
|
|
18
18
|
if (!entry) {
|
|
19
19
|
return null;
|
|
@@ -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 {
|
|
4
|
+
import { ObjectEntry } from '@platformos/platformos-check-common';
|
|
5
5
|
import { TranslationProvider } from '@platformos/platformos-common';
|
|
6
6
|
import { MockFileSystem } from '@platformos/platformos-check-common/src/test';
|
|
7
7
|
|
|
@@ -57,10 +57,8 @@ describe('Module: LiquidObjectAttributeHoverProvider', async () => {
|
|
|
57
57
|
objects: async () => _objects,
|
|
58
58
|
liquidDrops: async () => _objects,
|
|
59
59
|
tags: async () => [],
|
|
60
|
-
systemTranslations: async () => ({}),
|
|
61
60
|
},
|
|
62
61
|
new TranslationProvider(new MockFileSystem({})),
|
|
63
|
-
async (_rootUri: string) => ({} as MetafieldDefinitionMap),
|
|
64
62
|
);
|
|
65
63
|
});
|
|
66
64
|
|