@platformos/platformos-language-server-common 0.0.7 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/dist/PropertyShapeInference.d.ts +18 -0
- package/dist/PropertyShapeInference.js +62 -0
- package/dist/PropertyShapeInference.js.map +1 -1
- package/dist/TypeSystem.d.ts +4 -9
- package/dist/TypeSystem.js +246 -390
- package/dist/TypeSystem.js.map +1 -1
- package/dist/codeActions/providers/GenerateDocBlockProvider.d.ts +10 -0
- package/dist/codeActions/providers/GenerateDocBlockProvider.js +39 -0
- package/dist/codeActions/providers/GenerateDocBlockProvider.js.map +1 -0
- package/dist/commands/providers/GenerateDocBlockCommandProvider.d.ts +19 -0
- package/dist/commands/providers/GenerateDocBlockCommandProvider.js +64 -0
- package/dist/commands/providers/GenerateDocBlockCommandProvider.js.map +1 -0
- 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 +6 -17
- 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/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/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/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 +17 -12
- 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/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/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/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 +2 -9
- package/dist/utils/uri.js +5 -21
- package/dist/utils/uri.js.map +1 -1
- package/package.json +4 -4
- package/src/ClientCapabilities.ts +1 -1
- package/src/PropertyShapeInference.ts +81 -1
- package/src/TypeSystem.spec.ts +206 -449
- package/src/TypeSystem.ts +267 -460
- package/src/codeActions/providers/FixAllProvider.spec.ts +1 -1
- package/src/codeActions/providers/FixProvider.spec.ts +11 -11
- package/src/codeActions/providers/SuggestionProvider.spec.ts +2 -2
- package/src/commands/providers/ApplyFixesProvider.ts +2 -2
- package/src/commands/providers/ApplySuggestionProvider.ts +2 -2
- package/src/commands/providers/RunChecksProvider.ts +2 -2
- package/src/completions/CompletionsProvider.ts +14 -35
- package/src/completions/params/LiquidCompletionParams.spec.ts +0 -9
- package/src/completions/params/LiquidCompletionParams.ts +8 -17
- package/src/completions/params/fix.spec.ts +0 -3
- package/src/completions/providers/FilterCompletionProvider.spec.ts +2 -8
- 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 +4 -18
- 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 +6 -15
- package/src/completions/providers/RenderPartialParameterCompletionProvider.spec.ts +13 -15
- package/src/completions/providers/RenderPartialParameterCompletionProvider.ts +2 -3
- package/src/completions/providers/TranslationCompletionProvider.spec.ts +1 -4
- package/src/completions/providers/TranslationCompletionProvider.ts +3 -3
- 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 +22 -30
- package/src/diagnostics/runChecks.ts +17 -91
- package/src/docset/MarkdownRenderer.ts +1 -1
- package/src/documentLinks/DocumentLinksProvider.ts +10 -10
- package/src/documents/DocumentManager.spec.ts +46 -119
- package/src/documents/DocumentManager.ts +19 -15
- package/src/documents/types.ts +18 -9
- 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 +1 -4
- 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 +11 -14
- package/src/hover/providers/RenderPartialHoverProvider.ts +1 -5
- package/src/hover/providers/RenderPartialParameterHoverProvider.spec.ts +10 -13
- package/src/hover/providers/RenderPartialParameterHoverProvider.ts +2 -3
- package/src/hover/providers/TranslationHoverProvider.spec.ts +1 -4
- package/src/hover/providers/TranslationHoverProvider.ts +3 -3
- package/src/index.ts +4 -7
- 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/rename/RenameProvider.ts +4 -4
- package/src/rename/providers/LiquidVariableRenameProvider.spec.ts +5 -5
- package/src/rename/providers/LiquidVariableRenameProvider.ts +6 -6
- package/src/renamed/RenameHandler.ts +4 -9
- package/src/renamed/handlers/AssetRenameHandler.spec.ts +28 -28
- package/src/renamed/handlers/AssetRenameHandler.ts +6 -6
- package/src/renamed/handlers/PartialRenameHandler.spec.ts +9 -9
- package/src/renamed/handlers/PartialRenameHandler.ts +10 -10
- package/src/server/{ThemeGraphManager.ts → AppGraphManager.ts} +21 -90
- package/src/server/safe.ts +1 -1
- package/src/server/startServer.spec.ts +10 -12
- package/src/server/startServer.ts +69 -222
- package/src/test/CompletionItemsAssertion.spec.ts +1 -4
- package/src/types.ts +33 -63
- package/src/utils/debounce.ts +1 -1
- package/src/utils/liquidDoc.ts +6 -6
- package/src/utils/uri.ts +5 -17
- 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 -159
- 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/renamed/handlers/utils.ts +0 -22
- package/src/settings/index.ts +0 -50
|
@@ -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
|
|
|
@@ -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
|
|
|
@@ -11,29 +11,36 @@ describe('Module: LiquidObjectHoverProvider', async () => {
|
|
|
11
11
|
beforeEach(async () => {
|
|
12
12
|
const _objects: ObjectEntry[] = [
|
|
13
13
|
{
|
|
14
|
-
name: '
|
|
15
|
-
description: '
|
|
14
|
+
name: 'context',
|
|
15
|
+
description: 'context description',
|
|
16
|
+
access: { global: true, parents: [], template: [] },
|
|
16
17
|
return_type: [],
|
|
17
18
|
properties: [
|
|
18
19
|
{
|
|
19
|
-
name: '
|
|
20
|
-
return_type: [{ type: '
|
|
20
|
+
name: 'posts',
|
|
21
|
+
return_type: [{ type: 'array', array_value: 'post' }],
|
|
21
22
|
},
|
|
22
23
|
{
|
|
23
|
-
name: '
|
|
24
|
-
return_type: [{ type: '
|
|
24
|
+
name: 'current_user',
|
|
25
|
+
return_type: [{ type: 'current_user', name: '' }],
|
|
25
26
|
},
|
|
26
|
-
{ name: 'metafields' },
|
|
27
27
|
],
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
|
-
name: '
|
|
31
|
-
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
name: 'paginate',
|
|
35
|
-
access: { global: false, parents: [], template: [] },
|
|
30
|
+
name: 'post',
|
|
31
|
+
description: 'post description',
|
|
36
32
|
return_type: [],
|
|
33
|
+
properties: [
|
|
34
|
+
{
|
|
35
|
+
name: 'thumbnail',
|
|
36
|
+
return_type: [{ type: 'image', name: '' }],
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'title',
|
|
40
|
+
return_type: [{ type: 'string', name: '' }],
|
|
41
|
+
},
|
|
42
|
+
{ name: 'metadata' },
|
|
43
|
+
],
|
|
37
44
|
},
|
|
38
45
|
{
|
|
39
46
|
name: 'forloop',
|
|
@@ -50,46 +57,10 @@ describe('Module: LiquidObjectHoverProvider', async () => {
|
|
|
50
57
|
description: 'image description',
|
|
51
58
|
access: { global: false, parents: [], template: [] },
|
|
52
59
|
},
|
|
53
|
-
{
|
|
54
|
-
name: 'section',
|
|
55
|
-
access: { global: false, parents: [], template: [] },
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
name: 'block',
|
|
59
|
-
access: { global: false, parents: [], template: [] },
|
|
60
|
-
},
|
|
61
60
|
{
|
|
62
61
|
name: 'app',
|
|
63
62
|
access: { global: false, parents: [], template: [] },
|
|
64
63
|
},
|
|
65
|
-
{
|
|
66
|
-
name: 'predictive_search',
|
|
67
|
-
access: { global: false, parents: [], template: [] },
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
name: 'recommendations',
|
|
71
|
-
access: { global: false, parents: [], template: [] },
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
name: 'metafield',
|
|
75
|
-
access: {
|
|
76
|
-
global: false,
|
|
77
|
-
template: [],
|
|
78
|
-
parents: [],
|
|
79
|
-
},
|
|
80
|
-
properties: [
|
|
81
|
-
{
|
|
82
|
-
name: 'type',
|
|
83
|
-
description: 'the type of the metafield',
|
|
84
|
-
return_type: [{ type: 'string', name: '' }],
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
name: 'value',
|
|
88
|
-
description: 'the value of the metafield',
|
|
89
|
-
return_type: [{ type: 'untyped', name: '' }],
|
|
90
|
-
},
|
|
91
|
-
],
|
|
92
|
-
},
|
|
93
64
|
];
|
|
94
65
|
|
|
95
66
|
provider = new HoverProvider(
|
|
@@ -100,80 +71,41 @@ describe('Module: LiquidObjectHoverProvider', async () => {
|
|
|
100
71
|
objects: async () => _objects,
|
|
101
72
|
liquidDrops: async () => _objects,
|
|
102
73
|
tags: async () => [],
|
|
103
|
-
systemTranslations: async () => ({}),
|
|
104
74
|
},
|
|
105
75
|
new TranslationProvider(new MockFileSystem({})),
|
|
106
|
-
async (_uri: string) => {
|
|
107
|
-
return {
|
|
108
|
-
article: [],
|
|
109
|
-
blog: [],
|
|
110
|
-
collection: [],
|
|
111
|
-
company: [],
|
|
112
|
-
company_location: [],
|
|
113
|
-
location: [],
|
|
114
|
-
market: [],
|
|
115
|
-
order: [],
|
|
116
|
-
page: [],
|
|
117
|
-
product: [
|
|
118
|
-
{
|
|
119
|
-
key: 'color',
|
|
120
|
-
name: 'color',
|
|
121
|
-
namespace: 'custom',
|
|
122
|
-
description: 'the color of the product',
|
|
123
|
-
type: {
|
|
124
|
-
category: 'COLOR',
|
|
125
|
-
name: 'color',
|
|
126
|
-
},
|
|
127
|
-
},
|
|
128
|
-
],
|
|
129
|
-
variant: [],
|
|
130
|
-
shop: [],
|
|
131
|
-
} as MetafieldDefinitionMap;
|
|
132
|
-
},
|
|
133
76
|
);
|
|
134
77
|
});
|
|
135
78
|
|
|
136
|
-
it('should return the hover description of the object', async () => {
|
|
79
|
+
it('should return the hover description of the global object', async () => {
|
|
137
80
|
const contexts = [
|
|
138
|
-
'{{
|
|
139
|
-
'{{
|
|
140
|
-
'{% echo
|
|
141
|
-
'{% liquid\n echo
|
|
142
|
-
'{% assign x =
|
|
143
|
-
'{% for x in all_products %}{{ x█ }}{% endfor %}',
|
|
144
|
-
'{% assign x = all_products[0] %}{{ x█ }}',
|
|
145
|
-
'{% assign x█ = all_products[0] %}',
|
|
146
|
-
// '{% for x█ in all_products %}{{ x }}{% endfor %}', // not supported yet...
|
|
81
|
+
'{{ con█text }}',
|
|
82
|
+
'{{ context█ }}',
|
|
83
|
+
'{% echo context█ %}',
|
|
84
|
+
'{% liquid\n echo context█ %}',
|
|
85
|
+
'{% assign x = context %}{{ x█ }}',
|
|
147
86
|
];
|
|
148
87
|
for (const context of contexts) {
|
|
149
|
-
await expect(provider).to.hover(context, expect.stringContaining('
|
|
150
|
-
await expect(provider).to.hover(context, expect.stringMatching(/##* \w+: `
|
|
88
|
+
await expect(provider).to.hover(context, expect.stringContaining('context description'));
|
|
89
|
+
await expect(provider).to.hover(context, expect.stringMatching(/##* \w+: `context`/));
|
|
151
90
|
}
|
|
152
91
|
});
|
|
153
92
|
|
|
154
|
-
it('should
|
|
155
|
-
const
|
|
156
|
-
{%
|
|
157
|
-
|
|
158
|
-
{%
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
const context = `
|
|
166
|
-
{% form all_products by 5 %}
|
|
167
|
-
{{ form█ }}
|
|
168
|
-
{% endform %}
|
|
169
|
-
`;
|
|
170
|
-
await expect(provider).to.hover(context, expect.stringMatching(/##* form: `form`/));
|
|
171
|
-
await expect(provider).to.hover('{{ form█ }}', null);
|
|
93
|
+
it('should return the hover description of an array item object', async () => {
|
|
94
|
+
const contexts = [
|
|
95
|
+
'{% for x in context.posts %}{{ x█ }}{% endfor %}',
|
|
96
|
+
'{% assign x = context.posts[0] %}{{ x█ }}',
|
|
97
|
+
'{% assign x█ = context.posts[0] %}',
|
|
98
|
+
// '{% for x█ in context.posts %}{{ x }}{% endfor %}', // not supported yet...
|
|
99
|
+
];
|
|
100
|
+
for (const context of contexts) {
|
|
101
|
+
await expect(provider).to.hover(context, expect.stringContaining('post description'));
|
|
102
|
+
await expect(provider).to.hover(context, expect.stringMatching(/##* \w+: `post`/));
|
|
103
|
+
}
|
|
172
104
|
});
|
|
173
105
|
|
|
174
106
|
it('should support forloop inside for tags', async () => {
|
|
175
107
|
const context = `
|
|
176
|
-
{% for p in
|
|
108
|
+
{% for p in context.posts %}
|
|
177
109
|
{{ forloop█ }}
|
|
178
110
|
{% endfor %}
|
|
179
111
|
`;
|
|
@@ -183,7 +115,7 @@ describe('Module: LiquidObjectHoverProvider', async () => {
|
|
|
183
115
|
|
|
184
116
|
it('should support tablerowloop inside tablerow tags', async () => {
|
|
185
117
|
const context = `
|
|
186
|
-
{% tablerow p in
|
|
118
|
+
{% tablerow p in context.posts %}
|
|
187
119
|
{{ tablerowloop█ }}
|
|
188
120
|
{% endtablerow %}
|
|
189
121
|
`;
|
|
@@ -220,12 +152,8 @@ describe('Module: LiquidObjectHoverProvider', async () => {
|
|
|
220
152
|
|
|
221
153
|
it('should support contextual objects by relative path', async () => {
|
|
222
154
|
const contexts: [string, string][] = [
|
|
223
|
-
['section', 'sections/my-section.liquid'],
|
|
224
|
-
['block', 'blocks/my-block.liquid'],
|
|
225
|
-
['predictive_search', 'sections/predictive-search.liquid'],
|
|
226
|
-
['recommendations', 'sections/recommendations.liquid'],
|
|
227
|
-
['app', 'blocks/recommendations.liquid'],
|
|
228
155
|
['app', 'app/views/partials/recommendations.liquid'],
|
|
156
|
+
['app', 'app/lib/helpers/my-helper.liquid'],
|
|
229
157
|
];
|
|
230
158
|
for (const [object, relativePath] of contexts) {
|
|
231
159
|
const source = `{{ ${object}█ }}`;
|
|
@@ -237,38 +165,27 @@ describe('Module: LiquidObjectHoverProvider', async () => {
|
|
|
237
165
|
}
|
|
238
166
|
});
|
|
239
167
|
|
|
240
|
-
it('should support metafields', async () => {
|
|
241
|
-
await expect(provider).to.hover(
|
|
242
|
-
'{{ product.metafields.custom█ }}',
|
|
243
|
-
'### custom: `product_metafield_custom`',
|
|
244
|
-
);
|
|
245
|
-
await expect(provider).to.hover(
|
|
246
|
-
'{{ product.metafields.custom.color█ }}',
|
|
247
|
-
'### color: `metafield_color`\nthe color of the product',
|
|
248
|
-
);
|
|
249
|
-
});
|
|
250
|
-
|
|
251
168
|
it('should return null when hovering over an undefined variable', async () => {
|
|
252
169
|
await expect(provider).to.hover(`{{ unknown█ }}`, null);
|
|
253
170
|
});
|
|
254
171
|
|
|
255
172
|
it('should return something if the thing is knowingly untyped', async () => {
|
|
256
173
|
await expect(provider).to.hover(
|
|
257
|
-
`{% assign src =
|
|
174
|
+
`{% assign src = context.posts[0].thumbnail.src %}{{ src█ }}`,
|
|
258
175
|
`### src: \`untyped\``,
|
|
259
176
|
);
|
|
260
177
|
});
|
|
261
178
|
|
|
262
179
|
it('should still return null when hovering over an unknown variable out of scope', async () => {
|
|
263
180
|
await expect(provider).to.hover(
|
|
264
|
-
`{% for p in
|
|
181
|
+
`{% for p in context.posts %}
|
|
265
182
|
{{ forloop█ }}
|
|
266
183
|
{% endfor %}
|
|
267
184
|
{{ forloop }}`,
|
|
268
185
|
expect.stringMatching(/##* forloop: `forloop`/),
|
|
269
186
|
);
|
|
270
187
|
await expect(provider).to.hover(
|
|
271
|
-
`{% for p in
|
|
188
|
+
`{% for p in context.posts %}
|
|
272
189
|
{{ forloop }}
|
|
273
190
|
{% endfor %}
|
|
274
191
|
{{ forloop█ }}`,
|
|
@@ -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
|
|
|
@@ -20,10 +19,8 @@ describe('Module: LiquidTagHoverProvider', async () => {
|
|
|
20
19
|
{ name: 'if', description: 'if statement description' },
|
|
21
20
|
{ name: 'echo', description: 'echo description' },
|
|
22
21
|
],
|
|
23
|
-
systemTranslations: async () => ({}),
|
|
24
22
|
},
|
|
25
23
|
new TranslationProvider(new MockFileSystem({})),
|
|
26
|
-
async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
|
|
27
24
|
);
|
|
28
25
|
});
|
|
29
26
|
|
|
@@ -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 LiquidTagHoverProvider implements BaseHoverProvider {
|
|
8
|
-
constructor(public
|
|
8
|
+
constructor(public platformosDocset: PlatformOSDocset) {}
|
|
9
9
|
|
|
10
10
|
async hover(currentNode: LiquidHtmlNode): Promise<Hover | null> {
|
|
11
11
|
if (
|
|
@@ -17,7 +17,7 @@ export class LiquidTagHoverProvider implements BaseHoverProvider {
|
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
const name = currentNode.name;
|
|
20
|
-
const entries = await this.
|
|
20
|
+
const entries = await this.platformosDocset.tags();
|
|
21
21
|
const entry = entries.find((entry) => entry.name === name);
|
|
22
22
|
if (!entry) {
|
|
23
23
|
return null;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { describe, it, expect } from 'vitest';
|
|
2
2
|
import { DocumentManager } from '../../documents';
|
|
3
3
|
import { HoverProvider } from '../HoverProvider';
|
|
4
|
-
|
|
4
|
+
|
|
5
5
|
import { GetDocDefinitionForURI, DocDefinition } from '@platformos/platformos-check-common';
|
|
6
6
|
import { TranslationProvider } from '@platformos/platformos-common';
|
|
7
7
|
import { MockFileSystem } from '@platformos/platformos-check-common/src/test';
|
|
8
8
|
|
|
9
|
-
const uri = 'file:///
|
|
9
|
+
const uri = 'file:///app/views/partials/product-card.liquid';
|
|
10
10
|
|
|
11
|
-
describe('Module:
|
|
11
|
+
describe('Module: RenderPartialHoverProvider', async () => {
|
|
12
12
|
let provider: HoverProvider;
|
|
13
|
-
const
|
|
13
|
+
const mockPartialDefinition: DocDefinition = {
|
|
14
14
|
uri,
|
|
15
15
|
liquidDoc: {
|
|
16
16
|
parameters: [
|
|
@@ -36,10 +36,10 @@ describe('Module: RenderSnippetHoverProvider', async () => {
|
|
|
36
36
|
};
|
|
37
37
|
|
|
38
38
|
describe('hover', () => {
|
|
39
|
-
it('should return
|
|
40
|
-
provider = createProvider(async () =>
|
|
39
|
+
it('should return partial definition with all parameters', async () => {
|
|
40
|
+
provider = createProvider(async () => mockPartialDefinition);
|
|
41
41
|
// prettier-ignore
|
|
42
|
-
const expectedHoverContent =
|
|
42
|
+
const expectedHoverContent =
|
|
43
43
|
`### product-card
|
|
44
44
|
|
|
45
45
|
**Description:**
|
|
@@ -59,13 +59,13 @@ This is a description
|
|
|
59
59
|
});
|
|
60
60
|
|
|
61
61
|
it('should return nothing if not in render tag', async () => {
|
|
62
|
-
await expect(provider).to.hover(`{% assign asdf = '
|
|
63
|
-
await expect(provider).to.hover(`{{ '
|
|
62
|
+
await expect(provider).to.hover(`{% assign asdf = 'any-str█ing' %}`, null);
|
|
63
|
+
await expect(provider).to.hover(`{{ 'any-str█ing' }}`, null);
|
|
64
64
|
});
|
|
65
65
|
});
|
|
66
66
|
});
|
|
67
67
|
|
|
68
|
-
const createProvider = (
|
|
68
|
+
const createProvider = (getPartialDefinition: GetDocDefinitionForURI) => {
|
|
69
69
|
return new HoverProvider(
|
|
70
70
|
new DocumentManager(),
|
|
71
71
|
{
|
|
@@ -74,12 +74,9 @@ const createProvider = (getSnippetDefinition: GetDocDefinitionForURI) => {
|
|
|
74
74
|
objects: async () => [],
|
|
75
75
|
liquidDrops: async () => [],
|
|
76
76
|
tags: async () => [],
|
|
77
|
-
systemTranslations: async () => ({}),
|
|
78
77
|
},
|
|
79
78
|
new TranslationProvider(new MockFileSystem({})),
|
|
80
|
-
async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
|
|
81
79
|
async () => ({}),
|
|
82
|
-
|
|
83
|
-
getSnippetDefinition,
|
|
80
|
+
getPartialDefinition,
|
|
84
81
|
);
|
|
85
82
|
};
|
|
@@ -22,11 +22,7 @@ export class RenderPartialHoverProvider implements BaseHoverProvider {
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
const partialName = currentNode.value;
|
|
25
|
-
const docDefinition = await this.getDocDefinitionForURI(
|
|
26
|
-
params.textDocument.uri,
|
|
27
|
-
'app/views/partials',
|
|
28
|
-
partialName,
|
|
29
|
-
);
|
|
25
|
+
const docDefinition = await this.getDocDefinitionForURI(params.textDocument.uri, partialName);
|
|
30
26
|
|
|
31
27
|
return {
|
|
32
28
|
contents: {
|
|
@@ -1,17 +1,17 @@
|
|
|
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 { GetDocDefinitionForURI, DocDefinition } from '@platformos/platformos-check-common';
|
|
6
6
|
import { TranslationProvider } from '@platformos/platformos-common';
|
|
7
7
|
import { MockFileSystem } from '@platformos/platformos-check-common/src/test';
|
|
8
8
|
|
|
9
|
-
const uri = 'file:///
|
|
9
|
+
const uri = 'file:///app/views/partials/product-card.liquid';
|
|
10
10
|
|
|
11
|
-
describe('Module:
|
|
11
|
+
describe('Module: RenderPartialParameterHoverProvider', async () => {
|
|
12
12
|
let provider: HoverProvider;
|
|
13
|
-
let
|
|
14
|
-
const
|
|
13
|
+
let getPartialDefinition: GetDocDefinitionForURI;
|
|
14
|
+
const mockPartialDefinition: DocDefinition = {
|
|
15
15
|
uri,
|
|
16
16
|
liquidDoc: {
|
|
17
17
|
parameters: [
|
|
@@ -28,12 +28,12 @@ describe('Module: RenderSnippetParameterHoverProvider', async () => {
|
|
|
28
28
|
|
|
29
29
|
describe('hover', () => {
|
|
30
30
|
beforeEach(() => {
|
|
31
|
-
provider = createProvider(async () =>
|
|
31
|
+
provider = createProvider(async () => mockPartialDefinition);
|
|
32
32
|
});
|
|
33
33
|
|
|
34
34
|
it('should return null if doc definition not found', async () => {
|
|
35
|
-
|
|
36
|
-
provider = createProvider(
|
|
35
|
+
getPartialDefinition = async () => undefined;
|
|
36
|
+
provider = createProvider(getPartialDefinition);
|
|
37
37
|
await expect(provider).to.hover(`{% render 'product-card' tit█le: 'value' %}`, null);
|
|
38
38
|
});
|
|
39
39
|
|
|
@@ -50,7 +50,7 @@ describe('Module: RenderSnippetParameterHoverProvider', async () => {
|
|
|
50
50
|
});
|
|
51
51
|
});
|
|
52
52
|
|
|
53
|
-
const createProvider = (
|
|
53
|
+
const createProvider = (getPartialDefinition: GetDocDefinitionForURI) => {
|
|
54
54
|
return new HoverProvider(
|
|
55
55
|
new DocumentManager(),
|
|
56
56
|
{
|
|
@@ -59,12 +59,9 @@ const createProvider = (getSnippetDefinition: GetDocDefinitionForURI) => {
|
|
|
59
59
|
objects: async () => [],
|
|
60
60
|
liquidDrops: async () => [],
|
|
61
61
|
tags: async () => [],
|
|
62
|
-
systemTranslations: async () => ({}),
|
|
63
62
|
},
|
|
64
63
|
new TranslationProvider(new MockFileSystem({})),
|
|
65
|
-
async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
|
|
66
64
|
async () => ({}),
|
|
67
|
-
|
|
68
|
-
getSnippetDefinition,
|
|
65
|
+
getPartialDefinition,
|
|
69
66
|
);
|
|
70
67
|
};
|
|
@@ -17,15 +17,14 @@ export class RenderPartialParameterHoverProvider implements BaseHoverProvider {
|
|
|
17
17
|
currentNode.type !== NodeTypes.NamedArgument ||
|
|
18
18
|
!parentNode ||
|
|
19
19
|
parentNode.type !== NodeTypes.RenderMarkup ||
|
|
20
|
-
parentNode.
|
|
20
|
+
parentNode.partial.type !== NodeTypes.String
|
|
21
21
|
) {
|
|
22
22
|
return null;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
const docDefinition = await this.getDocDefinitionForURI(
|
|
26
26
|
params.textDocument.uri,
|
|
27
|
-
|
|
28
|
-
parentNode.snippet.value,
|
|
27
|
+
parentNode.partial.value,
|
|
29
28
|
);
|
|
30
29
|
|
|
31
30
|
const paramName = currentNode.name;
|
|
@@ -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,7 +17,6 @@ describe('Module: TranslationHoverProvider', async () => {
|
|
|
17
17
|
objects: async () => [],
|
|
18
18
|
liquidDrops: async () => [],
|
|
19
19
|
tags: async () => [],
|
|
20
|
-
systemTranslations: async () => ({}),
|
|
21
20
|
},
|
|
22
21
|
new TranslationProvider(
|
|
23
22
|
new MockFileSystem({
|
|
@@ -32,8 +31,6 @@ describe('Module: TranslationHoverProvider', async () => {
|
|
|
32
31
|
`,
|
|
33
32
|
}),
|
|
34
33
|
),
|
|
35
|
-
async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
|
|
36
|
-
undefined,
|
|
37
34
|
undefined,
|
|
38
35
|
undefined,
|
|
39
36
|
async () => '.',
|
|
@@ -6,13 +6,13 @@ import { renderTranslation } from '../../translations';
|
|
|
6
6
|
import { BaseHoverProvider } from '../BaseHoverProvider';
|
|
7
7
|
import { TranslationProvider } from '@platformos/platformos-common';
|
|
8
8
|
import { URI } from 'vscode-uri';
|
|
9
|
-
import {
|
|
9
|
+
import { FindAppRootURI } from '../../../src/internal-types';
|
|
10
10
|
|
|
11
11
|
export class TranslationHoverProvider implements BaseHoverProvider {
|
|
12
12
|
constructor(
|
|
13
13
|
public documentManager: DocumentManager,
|
|
14
14
|
private translationProvider: TranslationProvider,
|
|
15
|
-
private
|
|
15
|
+
private findAppRootURI: FindAppRootURI,
|
|
16
16
|
) {}
|
|
17
17
|
|
|
18
18
|
async hover(
|
|
@@ -33,7 +33,7 @@ export class TranslationHoverProvider implements BaseHoverProvider {
|
|
|
33
33
|
return null;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
const root = await this.
|
|
36
|
+
const root = await this.findAppRootURI(params.textDocument.uri);
|
|
37
37
|
if (!root) {
|
|
38
38
|
return null;
|
|
39
39
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
|
-
Config as
|
|
2
|
+
Config as PlatformOSCheckConfig,
|
|
3
3
|
allChecks,
|
|
4
4
|
recommended as recommendedChecks,
|
|
5
5
|
SourceCodeType,
|
|
@@ -11,19 +11,16 @@ export * from './types';
|
|
|
11
11
|
export { visit } from '@platformos/platformos-check-common';
|
|
12
12
|
export {
|
|
13
13
|
Reference,
|
|
14
|
-
|
|
14
|
+
AppGraph,
|
|
15
15
|
SerializableEdge,
|
|
16
16
|
SerializableNode,
|
|
17
|
-
|
|
18
|
-
CssModule,
|
|
19
|
-
JsonModule,
|
|
20
|
-
JavaScriptModule,
|
|
17
|
+
AppModule,
|
|
21
18
|
LiquidModule,
|
|
22
19
|
} from '@platformos/platformos-graph';
|
|
23
20
|
export { debounce, memo, parseJSON, ArgumentTypes } from './utils';
|
|
24
21
|
export { startServer } from './server';
|
|
25
22
|
export {
|
|
26
|
-
|
|
23
|
+
PlatformOSCheckConfig,
|
|
27
24
|
recommendedChecks,
|
|
28
25
|
allChecks,
|
|
29
26
|
AbstractFileSystem,
|
package/src/internal-types.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export type
|
|
1
|
+
export type FindAppRootURI = (uri: string) => Promise<string | null>;
|