@platformos/platformos-language-server-common 0.0.7 → 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 +10 -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/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 +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/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 +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/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 +0 -8
- package/dist/utils/uri.js +1 -17
- package/dist/utils/uri.js.map +1 -1
- package/package.json +4 -4
- package/src/PropertyShapeInference.ts +76 -1
- package/src/TypeSystem.spec.ts +188 -450
- package/src/TypeSystem.ts +251 -457
- 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/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/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/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/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/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 -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/settings/index.ts +0 -50
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
2
|
+
AugmentedPlatformOSDocset,
|
|
3
3
|
DocDefinition,
|
|
4
4
|
findRoot as findConfigFileRoot,
|
|
5
5
|
isError,
|
|
6
6
|
makeFileExists,
|
|
7
7
|
makeGetDefaultLocaleFileUri,
|
|
8
|
-
makeGetDefaultSchemaLocaleFileUri,
|
|
9
|
-
makeGetDefaultSchemaTranslations,
|
|
10
|
-
makeGetDefaultTranslations,
|
|
11
|
-
makeGetMetafieldDefinitions,
|
|
12
8
|
memoize,
|
|
13
|
-
MetafieldDefinitionMap,
|
|
14
|
-
parseJSON,
|
|
15
9
|
path,
|
|
16
10
|
SourceCodeType,
|
|
17
11
|
UriString,
|
|
@@ -24,14 +18,12 @@ import {
|
|
|
24
18
|
InitializeResult,
|
|
25
19
|
ShowDocumentRequest,
|
|
26
20
|
TextDocumentSyncKind,
|
|
27
|
-
WorkspaceFolder,
|
|
28
21
|
} from 'vscode-languageserver';
|
|
29
22
|
import { ClientCapabilities } from '../ClientCapabilities';
|
|
30
23
|
import { CodeActionKinds, CodeActionsProvider } from '../codeActions';
|
|
31
24
|
import { Commands, ExecuteCommandProvider } from '../commands';
|
|
32
25
|
import { CompletionsProvider } from '../completions';
|
|
33
26
|
import { GetPartialNamesForURI } from '../completions/providers/PartialCompletionProvider';
|
|
34
|
-
import { CSSLanguageService } from '../css/CSSLanguageService';
|
|
35
27
|
import { DefinitionProvider } from '../definitions/DefinitionProvider';
|
|
36
28
|
import { DiagnosticsManager, makeRunChecks } from '../diagnostics';
|
|
37
29
|
import { DocumentHighlightsProvider } from '../documentHighlights/DocumentHighlightsProvider';
|
|
@@ -39,6 +31,7 @@ import { DocumentLinksProvider } from '../documentLinks';
|
|
|
39
31
|
import { AugmentedJsonSourceCode, DocumentManager } from '../documents';
|
|
40
32
|
import { OnTypeFormattingProvider } from '../formatting';
|
|
41
33
|
import { HoverProvider } from '../hover';
|
|
34
|
+
import { CSSLanguageService } from '../css/CSSLanguageService';
|
|
42
35
|
import { JSONLanguageService } from '../json/JSONLanguageService';
|
|
43
36
|
import { LinkedEditingRangesProvider } from '../linkedEditingRanges/LinkedEditingRangesProvider';
|
|
44
37
|
import { RenameProvider } from '../rename/RenameProvider';
|
|
@@ -46,17 +39,16 @@ import { RenameHandler } from '../renamed/RenameHandler';
|
|
|
46
39
|
import { GetTranslationsForURI } from '../translations';
|
|
47
40
|
import {
|
|
48
41
|
Dependencies,
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
ThemeGraphRootRequest,
|
|
42
|
+
AppGraphDependenciesRequest,
|
|
43
|
+
AppGraphReferenceRequest,
|
|
44
|
+
AppGraphRootRequest,
|
|
53
45
|
} from '../types';
|
|
54
46
|
import { debounce } from '../utils';
|
|
55
47
|
import { VERSION } from '../version';
|
|
56
48
|
import { CachedFileSystem } from './CachedFileSystem';
|
|
57
49
|
import { Configuration, INCLUDE_FILES_FROM_DISK } from './Configuration';
|
|
58
50
|
import { safe } from './safe';
|
|
59
|
-
import {
|
|
51
|
+
import { AppGraphManager } from './AppGraphManager';
|
|
60
52
|
import { DocumentsLocator } from '@platformos/platformos-common';
|
|
61
53
|
import { relative } from '@platformos/platformos-check-common/src/path';
|
|
62
54
|
import { URI } from 'vscode-uri';
|
|
@@ -84,7 +76,7 @@ const hasUnsupportedDocument = (params: any) => {
|
|
|
84
76
|
* This code runs in node and the browser, it can't talk to the file system
|
|
85
77
|
* or make requests. Stuff like that should be injected.
|
|
86
78
|
*
|
|
87
|
-
* In browser,
|
|
79
|
+
* In browser, platformos-check-js wants these things:
|
|
88
80
|
* - fileExists(path)
|
|
89
81
|
* - defaultTranslations
|
|
90
82
|
*
|
|
@@ -97,8 +89,7 @@ export function startServer(
|
|
|
97
89
|
loadConfig: injectedLoadConfig,
|
|
98
90
|
log = defaultLogger,
|
|
99
91
|
jsonValidationSet,
|
|
100
|
-
|
|
101
|
-
fetchMetafieldDefinitionsForURI,
|
|
92
|
+
platformosDocset: remotePlatformOSDocset,
|
|
102
93
|
}: Dependencies,
|
|
103
94
|
) {
|
|
104
95
|
const fs = new CachedFileSystem(injectedFs);
|
|
@@ -111,21 +102,15 @@ export function startServer(
|
|
|
111
102
|
fs,
|
|
112
103
|
connection,
|
|
113
104
|
clientCapabilities,
|
|
114
|
-
getModeForURI,
|
|
115
105
|
isValidSchema,
|
|
116
106
|
);
|
|
117
|
-
const
|
|
118
|
-
connection,
|
|
119
|
-
documentManager,
|
|
120
|
-
fs,
|
|
121
|
-
findThemeRootURI,
|
|
122
|
-
);
|
|
107
|
+
const appGraphManager = new AppGraphManager(connection, documentManager, fs, findAppRootURI);
|
|
123
108
|
const diagnosticsManager = new DiagnosticsManager(connection);
|
|
124
109
|
const documentsLocator = new DocumentsLocator(fs);
|
|
125
110
|
const translationProvider = new TranslationProvider(fs);
|
|
126
111
|
const documentLinksProvider = new DocumentLinksProvider(
|
|
127
112
|
documentManager,
|
|
128
|
-
|
|
113
|
+
findAppRootURI,
|
|
129
114
|
documentsLocator,
|
|
130
115
|
translationProvider,
|
|
131
116
|
);
|
|
@@ -150,87 +135,50 @@ export function startServer(
|
|
|
150
135
|
connection,
|
|
151
136
|
clientCapabilities,
|
|
152
137
|
documentManager,
|
|
153
|
-
|
|
138
|
+
findAppRootURI,
|
|
154
139
|
);
|
|
155
140
|
const renameHandler = new RenameHandler(
|
|
156
141
|
connection,
|
|
157
142
|
clientCapabilities,
|
|
158
143
|
documentManager,
|
|
159
|
-
|
|
144
|
+
findAppRootURI,
|
|
160
145
|
);
|
|
161
146
|
|
|
162
|
-
async function
|
|
147
|
+
async function findAppRootURI(uri: string): Promise<string | null> {
|
|
163
148
|
const rootUri = await findConfigFileRoot(uri, fileExists);
|
|
164
149
|
if (!rootUri) return null;
|
|
165
150
|
const config = await loadConfig(rootUri, fs);
|
|
166
151
|
return config.rootUri;
|
|
167
152
|
}
|
|
168
153
|
|
|
169
|
-
const getMetafieldDefinitionsForRootUri = memoize(
|
|
170
|
-
makeGetMetafieldDefinitions(fs),
|
|
171
|
-
(rootUri) => rootUri,
|
|
172
|
-
);
|
|
173
|
-
|
|
174
|
-
const getMetafieldDefinitions: NonNullable<Dependencies['getMetafieldDefinitions']> = async (
|
|
175
|
-
uri: string,
|
|
176
|
-
) => {
|
|
177
|
-
const rootUri = await findThemeRootURI(uri);
|
|
178
|
-
if (!rootUri) {
|
|
179
|
-
return {} as MetafieldDefinitionMap;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
return getMetafieldDefinitionsForRootUri(rootUri);
|
|
183
|
-
};
|
|
184
|
-
|
|
185
154
|
// These are augmented here so that the caching is maintained over different runs.
|
|
186
|
-
const
|
|
187
|
-
const cssLanguageService = new CSSLanguageService(documentManager);
|
|
155
|
+
const platformosDocset = new AugmentedPlatformOSDocset(remotePlatformOSDocset);
|
|
188
156
|
const runChecks = debounce(
|
|
189
157
|
makeRunChecks(documentManager, diagnosticsManager, {
|
|
190
158
|
fs,
|
|
191
159
|
loadConfig,
|
|
192
|
-
|
|
160
|
+
platformosDocset,
|
|
193
161
|
jsonValidationSet,
|
|
194
|
-
|
|
195
|
-
cssLanguageService,
|
|
196
|
-
themeGraphManager,
|
|
162
|
+
appGraphManager,
|
|
197
163
|
includeFilesFromDisk: () => configuration[INCLUDE_FILES_FROM_DISK],
|
|
198
164
|
}),
|
|
199
165
|
100,
|
|
200
166
|
);
|
|
201
167
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
const theme = documentManager.theme(rootURI, configuration[INCLUDE_FILES_FROM_DISK]);
|
|
207
|
-
const getDefaultTranslations = makeGetDefaultTranslations(fs, theme, rootURI);
|
|
208
|
-
const [defaultTranslations, shopifyTranslations] = await Promise.all([
|
|
209
|
-
getDefaultTranslations(),
|
|
210
|
-
themeDocset.systemTranslations(),
|
|
211
|
-
]);
|
|
212
|
-
|
|
213
|
-
return { ...shopifyTranslations, ...defaultTranslations };
|
|
214
|
-
};
|
|
215
|
-
|
|
216
|
-
const getSchemaTranslationsForURI: GetTranslationsForURI = async (uri) => {
|
|
217
|
-
const rootURI = await findThemeRootURI(uri);
|
|
218
|
-
if (!rootURI) return {};
|
|
219
|
-
|
|
220
|
-
const theme = documentManager.theme(rootURI, configuration[INCLUDE_FILES_FROM_DISK]);
|
|
221
|
-
const getDefaultSchemaTranslations = makeGetDefaultSchemaTranslations(fs, theme, rootURI);
|
|
222
|
-
return getDefaultSchemaTranslations();
|
|
223
|
-
};
|
|
168
|
+
// In platformOS, there are no built-in system translations. User-defined translations
|
|
169
|
+
// are resolved via TranslationProvider at the point of lookup.
|
|
170
|
+
const getTranslationsForURI: GetTranslationsForURI = async (_uri) => ({});
|
|
224
171
|
|
|
225
172
|
const getDocDefinitionForURI = async (
|
|
226
173
|
uri: UriString,
|
|
227
|
-
category: 'app/views/partials' | 'blocks',
|
|
228
174
|
name: string,
|
|
229
175
|
): Promise<DocDefinition | undefined> => {
|
|
230
|
-
const rootUri = await
|
|
176
|
+
const rootUri = await findAppRootURI(uri);
|
|
231
177
|
if (!rootUri) return undefined;
|
|
232
178
|
|
|
233
|
-
const fileUri =
|
|
179
|
+
const fileUri = await documentsLocator.locate(URI.parse(rootUri), 'render', name);
|
|
180
|
+
if (!fileUri) return undefined;
|
|
181
|
+
|
|
234
182
|
const file = documentManager.get(fileUri);
|
|
235
183
|
|
|
236
184
|
if (!file || file.type !== SourceCodeType.LiquidHtml || isError(file.ast)) {
|
|
@@ -242,7 +190,7 @@ export function startServer(
|
|
|
242
190
|
|
|
243
191
|
const getPartialNamesForURI: GetPartialNamesForURI = safe(
|
|
244
192
|
async (uri: string, partial: string, type: string | undefined) => {
|
|
245
|
-
const rootUri = await
|
|
193
|
+
const rootUri = await findAppRootURI(uri);
|
|
246
194
|
if (!rootUri) return [];
|
|
247
195
|
|
|
248
196
|
return await documentsLocator.list(URI.parse(rootUri), type, partial);
|
|
@@ -250,52 +198,6 @@ export function startServer(
|
|
|
250
198
|
[],
|
|
251
199
|
);
|
|
252
200
|
|
|
253
|
-
const getThemeSettingsSchemaForURI = safe(async (uri: string) => {
|
|
254
|
-
const rootUri = await findThemeRootURI(uri);
|
|
255
|
-
if (!rootUri) return [];
|
|
256
|
-
|
|
257
|
-
const settingsSchemaUri = path.join(rootUri, 'config', 'settings_schema.json');
|
|
258
|
-
const contents = await fs.readFile(settingsSchemaUri);
|
|
259
|
-
const json = parseJSON(contents);
|
|
260
|
-
if (isError(json) || !Array.isArray(json)) {
|
|
261
|
-
throw new Error('Settings JSON file not in correct format');
|
|
262
|
-
}
|
|
263
|
-
return json;
|
|
264
|
-
}, []);
|
|
265
|
-
|
|
266
|
-
async function getModeForURI(uri: string) {
|
|
267
|
-
const rootUri = await findConfigFileRoot(uri, fileExists);
|
|
268
|
-
if (!rootUri) return 'theme';
|
|
269
|
-
const config = await loadConfig(rootUri, fs);
|
|
270
|
-
return config.context;
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
const getThemeBlockNames = safe(async (uri: string, includePrivate: boolean) => {
|
|
274
|
-
const rootUri = await findThemeRootURI(uri);
|
|
275
|
-
if (!rootUri) return [];
|
|
276
|
-
|
|
277
|
-
const blocks = await fs.readDirectory(path.join(rootUri, 'blocks'));
|
|
278
|
-
const blockNames = blocks.map(([uri]) => path.basename(uri, '.liquid'));
|
|
279
|
-
|
|
280
|
-
if (includePrivate) {
|
|
281
|
-
return blockNames;
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
return blockNames.filter((blockName) => !blockName.startsWith('_'));
|
|
285
|
-
}, []);
|
|
286
|
-
|
|
287
|
-
async function getThemeBlockSchema(uri: string, name: string) {
|
|
288
|
-
const rootUri = await findThemeRootURI(uri);
|
|
289
|
-
if (!rootUri) return;
|
|
290
|
-
|
|
291
|
-
const blockUri = path.join(rootUri, 'blocks', `${name}.liquid`);
|
|
292
|
-
const doc = documentManager.get(blockUri);
|
|
293
|
-
if (!doc || doc.type !== SourceCodeType.LiquidHtml) {
|
|
294
|
-
return;
|
|
295
|
-
}
|
|
296
|
-
return doc.getSchema();
|
|
297
|
-
}
|
|
298
|
-
|
|
299
201
|
// Defined as a function to solve a circular dependency (doc manager & json
|
|
300
202
|
// lang service both need each other)
|
|
301
203
|
async function isValidSchema(uri: string, jsonString: string) {
|
|
@@ -304,7 +206,7 @@ export function startServer(
|
|
|
304
206
|
|
|
305
207
|
const getDefaultLocaleFileUri = makeGetDefaultLocaleFileUri(fs);
|
|
306
208
|
async function getDefaultLocaleSourceCode(uri: string) {
|
|
307
|
-
const rootUri = await
|
|
209
|
+
const rootUri = await findAppRootURI(uri);
|
|
308
210
|
if (!rootUri) return null;
|
|
309
211
|
|
|
310
212
|
const defaultLocaleFileUri = await getDefaultLocaleFileUri(rootUri);
|
|
@@ -313,43 +215,19 @@ export function startServer(
|
|
|
313
215
|
return (documentManager.get(defaultLocaleFileUri) as AugmentedJsonSourceCode) ?? null;
|
|
314
216
|
}
|
|
315
217
|
|
|
316
|
-
const
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
if (!rootUri) return null;
|
|
320
|
-
|
|
321
|
-
const defaultLocaleFileUri = await getDefaultSchemaLocaleFileUri(rootUri);
|
|
322
|
-
if (!defaultLocaleFileUri) return null;
|
|
323
|
-
|
|
324
|
-
return (documentManager.get(defaultLocaleFileUri) as AugmentedJsonSourceCode) ?? null;
|
|
325
|
-
}
|
|
326
|
-
const definitionsProvider = new DefinitionProvider(
|
|
327
|
-
documentManager,
|
|
328
|
-
getDefaultLocaleSourceCode,
|
|
329
|
-
getDefaultSchemaLocaleSourceCode,
|
|
330
|
-
);
|
|
331
|
-
const jsonLanguageService = new JSONLanguageService(
|
|
332
|
-
documentManager,
|
|
333
|
-
jsonValidationSet,
|
|
334
|
-
getSchemaTranslationsForURI,
|
|
335
|
-
getModeForURI,
|
|
336
|
-
getThemeBlockNames,
|
|
337
|
-
getThemeBlockSchema,
|
|
338
|
-
findThemeRootURI,
|
|
339
|
-
);
|
|
218
|
+
const definitionsProvider = new DefinitionProvider(documentManager, getDefaultLocaleSourceCode);
|
|
219
|
+
const jsonLanguageService = new JSONLanguageService(documentManager, jsonValidationSet);
|
|
220
|
+
const cssLanguageService = new CSSLanguageService(documentManager);
|
|
340
221
|
const completionsProvider = new CompletionsProvider({
|
|
341
222
|
documentManager,
|
|
342
|
-
|
|
223
|
+
platformosDocset,
|
|
343
224
|
getTranslationsForURI,
|
|
344
225
|
getPartialNamesForURI,
|
|
345
|
-
getThemeSettingsSchemaForURI,
|
|
346
226
|
log,
|
|
347
|
-
getThemeBlockNames,
|
|
348
|
-
getMetafieldDefinitions,
|
|
349
227
|
getDocDefinitionForURI,
|
|
350
228
|
fs,
|
|
351
229
|
documentsLocator,
|
|
352
|
-
|
|
230
|
+
findAppRootURI,
|
|
353
231
|
notifyUnableToInferProperties: (variableName: string) => {
|
|
354
232
|
connection.window.showInformationMessage(
|
|
355
233
|
`Unable to infer properties for '${variableName}'. Property completion is only supported for variables from parse_json, to_hash, or graphql.`,
|
|
@@ -358,13 +236,11 @@ export function startServer(
|
|
|
358
236
|
});
|
|
359
237
|
const hoverProvider = new HoverProvider(
|
|
360
238
|
documentManager,
|
|
361
|
-
|
|
239
|
+
platformosDocset,
|
|
362
240
|
translationProvider,
|
|
363
|
-
getMetafieldDefinitions,
|
|
364
241
|
getTranslationsForURI,
|
|
365
|
-
getThemeSettingsSchemaForURI,
|
|
366
242
|
getDocDefinitionForURI,
|
|
367
|
-
|
|
243
|
+
findAppRootURI,
|
|
368
244
|
);
|
|
369
245
|
|
|
370
246
|
const executeCommandProvider = new ExecuteCommandProvider(
|
|
@@ -375,22 +251,10 @@ export function startServer(
|
|
|
375
251
|
connection,
|
|
376
252
|
);
|
|
377
253
|
|
|
378
|
-
const fetchMetafieldDefinitionsForWorkspaceFolders = async (folders: WorkspaceFolder[]) => {
|
|
379
|
-
if (!fetchMetafieldDefinitionsForURI) return;
|
|
380
|
-
|
|
381
|
-
for (let folder of folders) {
|
|
382
|
-
const mode = await getModeForURI(folder.uri);
|
|
383
|
-
|
|
384
|
-
if (mode === 'theme') {
|
|
385
|
-
fetchMetafieldDefinitionsForURI(folder.uri);
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
};
|
|
389
|
-
|
|
390
254
|
connection.onInitialize((params) => {
|
|
391
255
|
clientCapabilities.setup(params.capabilities, params.initializationOptions);
|
|
392
|
-
cssLanguageService.setup(params.capabilities);
|
|
393
256
|
jsonLanguageService.setup(params.capabilities);
|
|
257
|
+
cssLanguageService.setup(params.capabilities);
|
|
394
258
|
configuration.setup();
|
|
395
259
|
|
|
396
260
|
const fileOperationRegistrationOptions: FileOperationRegistrationOptions = {
|
|
@@ -452,7 +316,7 @@ export function startServer(
|
|
|
452
316
|
},
|
|
453
317
|
},
|
|
454
318
|
serverInfo: {
|
|
455
|
-
name: '
|
|
319
|
+
name: 'platformos-language-server',
|
|
456
320
|
version: VERSION,
|
|
457
321
|
},
|
|
458
322
|
};
|
|
@@ -475,20 +339,11 @@ export function startServer(
|
|
|
475
339
|
{
|
|
476
340
|
globPattern: '**/*.graphql',
|
|
477
341
|
},
|
|
342
|
+
{
|
|
343
|
+
globPattern: '**/*.css',
|
|
344
|
+
},
|
|
478
345
|
],
|
|
479
346
|
});
|
|
480
|
-
|
|
481
|
-
if (clientCapabilities.hasWorkspaceFoldersSupport) {
|
|
482
|
-
connection.workspace.getWorkspaceFolders().then(async (folders) => {
|
|
483
|
-
if (!folders) return;
|
|
484
|
-
|
|
485
|
-
fetchMetafieldDefinitionsForWorkspaceFolders(folders);
|
|
486
|
-
});
|
|
487
|
-
|
|
488
|
-
connection.workspace.onDidChangeWorkspaceFolders(async (params) => {
|
|
489
|
-
fetchMetafieldDefinitionsForWorkspaceFolders(params.added);
|
|
490
|
-
});
|
|
491
|
-
}
|
|
492
347
|
});
|
|
493
348
|
|
|
494
349
|
connection.onDidChangeConfiguration((_params) => {
|
|
@@ -498,6 +353,10 @@ export function startServer(
|
|
|
498
353
|
connection.onDidOpenTextDocument(async (params) => {
|
|
499
354
|
if (hasUnsupportedDocument(params)) return;
|
|
500
355
|
const { uri, text, version } = params.textDocument;
|
|
356
|
+
if (uri.endsWith('.css')) {
|
|
357
|
+
cssLanguageService.open(uri, text, version);
|
|
358
|
+
return;
|
|
359
|
+
}
|
|
501
360
|
documentManager.open(uri, text, version);
|
|
502
361
|
if (await configuration.shouldCheckOnOpen()) {
|
|
503
362
|
runChecks([uri]);
|
|
@@ -516,7 +375,7 @@ export function startServer(
|
|
|
516
375
|
// If we open a file that we know is liquid, then we can kind of guarantee
|
|
517
376
|
// we'll find a theme root and we'll preload that.
|
|
518
377
|
if (await configuration.shouldPreloadOnBoot()) {
|
|
519
|
-
const rootUri = await
|
|
378
|
+
const rootUri = await findAppRootURI(uri);
|
|
520
379
|
if (rootUri) {
|
|
521
380
|
documentManager.preload(rootUri);
|
|
522
381
|
}
|
|
@@ -526,6 +385,10 @@ export function startServer(
|
|
|
526
385
|
connection.onDidChangeTextDocument(async (params) => {
|
|
527
386
|
if (hasUnsupportedDocument(params)) return;
|
|
528
387
|
const { uri, version } = params.textDocument;
|
|
388
|
+
if (uri.endsWith('.css')) {
|
|
389
|
+
cssLanguageService.change(uri, params.contentChanges[0].text, version);
|
|
390
|
+
return;
|
|
391
|
+
}
|
|
529
392
|
documentManager.change(uri, params.contentChanges[0].text, version);
|
|
530
393
|
if (await configuration.shouldCheckOnChange()) {
|
|
531
394
|
runChecks([uri]);
|
|
@@ -546,6 +409,10 @@ export function startServer(
|
|
|
546
409
|
connection.onDidCloseTextDocument((params) => {
|
|
547
410
|
if (hasUnsupportedDocument(params)) return;
|
|
548
411
|
const { uri } = params.textDocument;
|
|
412
|
+
if (uri.endsWith('.css')) {
|
|
413
|
+
cssLanguageService.close(uri);
|
|
414
|
+
return;
|
|
415
|
+
}
|
|
549
416
|
documentManager.close(uri);
|
|
550
417
|
diagnosticsManager.clear(uri);
|
|
551
418
|
});
|
|
@@ -637,13 +504,12 @@ export function startServer(
|
|
|
637
504
|
fs.stat.invalidate(oldUri);
|
|
638
505
|
fs.stat.invalidate(newUri);
|
|
639
506
|
|
|
640
|
-
|
|
507
|
+
appGraphManager.rename(oldUri, newUri);
|
|
641
508
|
}
|
|
642
509
|
|
|
643
|
-
// We should complete refactors before running theme check
|
|
644
510
|
await renameHandler.onDidRenameFiles(params);
|
|
645
511
|
|
|
646
|
-
// MissingAssets/
|
|
512
|
+
// MissingAssets/MissingPartial should be rerun when a file is deleted
|
|
647
513
|
// since the file rename might cause an error.
|
|
648
514
|
runChecks.force(triggerUris);
|
|
649
515
|
});
|
|
@@ -659,7 +525,6 @@ export function startServer(
|
|
|
659
525
|
*
|
|
660
526
|
* Not redundant for operations that happen outside of the editor
|
|
661
527
|
* - git pull, checkout, reset, stash pop, etc.
|
|
662
|
-
* - shopify theme metafields pull
|
|
663
528
|
* - etc.
|
|
664
529
|
*
|
|
665
530
|
* It always runs and onDid* will never fire without a corresponding onDidChangeWatchedFiles.
|
|
@@ -672,8 +537,8 @@ export function startServer(
|
|
|
672
537
|
const triggerUris = params.changes.map((change) => change.uri);
|
|
673
538
|
const updates: Promise<any>[] = [];
|
|
674
539
|
for (const change of params.changes) {
|
|
675
|
-
//
|
|
676
|
-
if (change.uri.endsWith('.
|
|
540
|
+
// App Check config changes should clear the config cache
|
|
541
|
+
if (change.uri.endsWith('.platformos-check.yml')) {
|
|
677
542
|
loadConfig.clearCache();
|
|
678
543
|
continue;
|
|
679
544
|
}
|
|
@@ -690,7 +555,7 @@ export function startServer(
|
|
|
690
555
|
fs.readDirectory.invalidate(path.dirname(change.uri));
|
|
691
556
|
fs.readFile.invalidate(change.uri);
|
|
692
557
|
fs.stat.invalidate(change.uri);
|
|
693
|
-
|
|
558
|
+
appGraphManager.create(change.uri);
|
|
694
559
|
// If a file is created under out feet, we update its contents.
|
|
695
560
|
updates.push(documentManager.changeFromDisk(change.uri));
|
|
696
561
|
break;
|
|
@@ -699,7 +564,7 @@ export function startServer(
|
|
|
699
564
|
// A changed file invalidates readFile and stat (but not readDirectory)
|
|
700
565
|
fs.readFile.invalidate(change.uri);
|
|
701
566
|
fs.stat.invalidate(change.uri);
|
|
702
|
-
|
|
567
|
+
appGraphManager.change(change.uri);
|
|
703
568
|
// If the file is not open, we update its contents in the doc manager
|
|
704
569
|
// If it is open, then we don't need to update it because the document manager
|
|
705
570
|
// will have the version from the editor.
|
|
@@ -713,60 +578,43 @@ export function startServer(
|
|
|
713
578
|
fs.readDirectory.invalidate(path.dirname(change.uri));
|
|
714
579
|
fs.readFile.invalidate(change.uri);
|
|
715
580
|
fs.stat.invalidate(change.uri);
|
|
716
|
-
|
|
581
|
+
appGraphManager.delete(change.uri);
|
|
717
582
|
// If a file is deleted, it's removed from the document manager
|
|
718
583
|
documentManager.delete(change.uri);
|
|
719
584
|
break;
|
|
720
585
|
}
|
|
721
586
|
|
|
722
|
-
|
|
723
|
-
updates.push(
|
|
724
|
-
findThemeRootURI(change.uri).then((rootUri) => {
|
|
725
|
-
if (rootUri) {
|
|
726
|
-
getMetafieldDefinitionsForRootUri.invalidate(rootUri);
|
|
727
|
-
}
|
|
728
|
-
}),
|
|
729
|
-
);
|
|
730
|
-
}
|
|
587
|
+
// metafields.json support removed
|
|
731
588
|
}
|
|
732
589
|
|
|
733
590
|
await Promise.all(updates);
|
|
734
591
|
|
|
735
|
-
// MissingAssets/
|
|
592
|
+
// MissingAssets/MissingPartial should be rerun when a file is deleted
|
|
736
593
|
// since an error might be introduced (and vice versa).
|
|
737
594
|
runChecks.force(triggerUris);
|
|
738
595
|
});
|
|
739
596
|
|
|
740
|
-
connection.onRequest(
|
|
597
|
+
connection.onRequest(AppGraphReferenceRequest.type, async (params) => {
|
|
741
598
|
if (hasUnsupportedDocument(params)) return [];
|
|
742
599
|
const { uri, offset, includeIndirect } = params;
|
|
743
|
-
return
|
|
600
|
+
return appGraphManager.getReferences(uri, offset, { includeIndirect }).catch((_) => []);
|
|
744
601
|
});
|
|
745
602
|
|
|
746
|
-
connection.onRequest(
|
|
603
|
+
connection.onRequest(AppGraphDependenciesRequest.type, async (params) => {
|
|
747
604
|
if (hasUnsupportedDocument(params)) return [];
|
|
748
605
|
const { uri, offset, includeIndirect } = params;
|
|
749
|
-
return
|
|
606
|
+
return appGraphManager.getDependencies(uri, offset, { includeIndirect }).catch((_) => []);
|
|
750
607
|
});
|
|
751
608
|
|
|
752
|
-
connection.onRequest(
|
|
609
|
+
connection.onRequest(AppGraphRootRequest.type, async (params) => {
|
|
753
610
|
if (hasUnsupportedDocument(params)) return '';
|
|
754
611
|
const { uri } = params;
|
|
755
|
-
const rootUri = await
|
|
612
|
+
const rootUri = await findAppRootURI(uri).catch((_) => undefined);
|
|
756
613
|
if (!rootUri || path.dirname(rootUri) === rootUri) {
|
|
757
614
|
console.error(uri);
|
|
758
615
|
}
|
|
759
616
|
return rootUri;
|
|
760
617
|
});
|
|
761
618
|
|
|
762
|
-
connection.onRequest(ThemeGraphDeadCodeRequest.type, async (params) => {
|
|
763
|
-
if (hasUnsupportedDocument(params)) return [];
|
|
764
|
-
const { uri } = params;
|
|
765
|
-
const rootUri = await findThemeRootURI(uri);
|
|
766
|
-
if (!rootUri) return [];
|
|
767
|
-
const deadFiles = await themeGraphManager.deadCode(rootUri);
|
|
768
|
-
return deadFiles;
|
|
769
|
-
});
|
|
770
|
-
|
|
771
619
|
connection.listen();
|
|
772
620
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { expect, describe, it, beforeEach } from 'vitest';
|
|
2
2
|
import { CompletionsProvider } from '../completions';
|
|
3
3
|
import { DocumentManager } from '../documents';
|
|
4
|
-
import { MetafieldDefinitionMap } from '@platformos/platformos-check-common';
|
|
5
4
|
|
|
6
5
|
describe('Module: CompletionItemsAssertion', () => {
|
|
7
6
|
let provider: CompletionsProvider;
|
|
@@ -11,15 +10,13 @@ describe('Module: CompletionItemsAssertion', () => {
|
|
|
11
10
|
documentManager = new DocumentManager();
|
|
12
11
|
provider = new CompletionsProvider({
|
|
13
12
|
documentManager,
|
|
14
|
-
|
|
13
|
+
platformosDocset: {
|
|
15
14
|
graphQL: async () => null,
|
|
16
15
|
filters: async () => [],
|
|
17
16
|
objects: async () => [],
|
|
18
17
|
liquidDrops: async () => [],
|
|
19
18
|
tags: async () => [{ name: 'render' }],
|
|
20
|
-
systemTranslations: async () => ({}),
|
|
21
19
|
},
|
|
22
|
-
getMetafieldDefinitions: async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
|
|
23
20
|
});
|
|
24
21
|
});
|
|
25
22
|
|