@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,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,25 +353,28 @@ 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]);
|
|
504
363
|
}
|
|
505
364
|
|
|
506
|
-
// The objective at the time of writing this is to make {Asset,
|
|
365
|
+
// The objective at the time of writing this is to make {Asset,Partial}Rename
|
|
507
366
|
// fast when you eventually need it.
|
|
508
367
|
//
|
|
509
368
|
// I'm choosing the textDocument/didOpen notification as a hook because
|
|
510
369
|
// I'm not sure we have a better solution than this. Yes we have the
|
|
511
370
|
// initialize request with the workspace folders, but you might have opened
|
|
512
|
-
// an app folder.
|
|
513
|
-
//
|
|
514
|
-
// figure out from the initialize request params.
|
|
371
|
+
// an app folder. It'd be hard to figure out the root from the
|
|
372
|
+
// initialize request params alone.
|
|
515
373
|
//
|
|
516
374
|
// If we open a file that we know is liquid, then we can kind of guarantee
|
|
517
|
-
// we'll find
|
|
375
|
+
// we'll find an app root and we'll preload that.
|
|
518
376
|
if (await configuration.shouldPreloadOnBoot()) {
|
|
519
|
-
const rootUri = await
|
|
377
|
+
const rootUri = await findAppRootURI(uri);
|
|
520
378
|
if (rootUri) {
|
|
521
379
|
documentManager.preload(rootUri);
|
|
522
380
|
}
|
|
@@ -526,6 +384,10 @@ export function startServer(
|
|
|
526
384
|
connection.onDidChangeTextDocument(async (params) => {
|
|
527
385
|
if (hasUnsupportedDocument(params)) return;
|
|
528
386
|
const { uri, version } = params.textDocument;
|
|
387
|
+
if (uri.endsWith('.css')) {
|
|
388
|
+
cssLanguageService.change(uri, params.contentChanges[0].text, version);
|
|
389
|
+
return;
|
|
390
|
+
}
|
|
529
391
|
documentManager.change(uri, params.contentChanges[0].text, version);
|
|
530
392
|
if (await configuration.shouldCheckOnChange()) {
|
|
531
393
|
runChecks([uri]);
|
|
@@ -546,6 +408,10 @@ export function startServer(
|
|
|
546
408
|
connection.onDidCloseTextDocument((params) => {
|
|
547
409
|
if (hasUnsupportedDocument(params)) return;
|
|
548
410
|
const { uri } = params.textDocument;
|
|
411
|
+
if (uri.endsWith('.css')) {
|
|
412
|
+
cssLanguageService.close(uri);
|
|
413
|
+
return;
|
|
414
|
+
}
|
|
549
415
|
documentManager.close(uri);
|
|
550
416
|
diagnosticsManager.clear(uri);
|
|
551
417
|
});
|
|
@@ -637,13 +503,12 @@ export function startServer(
|
|
|
637
503
|
fs.stat.invalidate(oldUri);
|
|
638
504
|
fs.stat.invalidate(newUri);
|
|
639
505
|
|
|
640
|
-
|
|
506
|
+
appGraphManager.rename(oldUri, newUri);
|
|
641
507
|
}
|
|
642
508
|
|
|
643
|
-
// We should complete refactors before running theme check
|
|
644
509
|
await renameHandler.onDidRenameFiles(params);
|
|
645
510
|
|
|
646
|
-
// MissingAssets/
|
|
511
|
+
// MissingAssets/MissingPartial should be rerun when a file is deleted
|
|
647
512
|
// since the file rename might cause an error.
|
|
648
513
|
runChecks.force(triggerUris);
|
|
649
514
|
});
|
|
@@ -659,7 +524,6 @@ export function startServer(
|
|
|
659
524
|
*
|
|
660
525
|
* Not redundant for operations that happen outside of the editor
|
|
661
526
|
* - git pull, checkout, reset, stash pop, etc.
|
|
662
|
-
* - shopify theme metafields pull
|
|
663
527
|
* - etc.
|
|
664
528
|
*
|
|
665
529
|
* It always runs and onDid* will never fire without a corresponding onDidChangeWatchedFiles.
|
|
@@ -672,8 +536,8 @@ export function startServer(
|
|
|
672
536
|
const triggerUris = params.changes.map((change) => change.uri);
|
|
673
537
|
const updates: Promise<any>[] = [];
|
|
674
538
|
for (const change of params.changes) {
|
|
675
|
-
//
|
|
676
|
-
if (change.uri.endsWith('.
|
|
539
|
+
// App Check config changes should clear the config cache
|
|
540
|
+
if (change.uri.endsWith('.platformos-check.yml')) {
|
|
677
541
|
loadConfig.clearCache();
|
|
678
542
|
continue;
|
|
679
543
|
}
|
|
@@ -690,7 +554,7 @@ export function startServer(
|
|
|
690
554
|
fs.readDirectory.invalidate(path.dirname(change.uri));
|
|
691
555
|
fs.readFile.invalidate(change.uri);
|
|
692
556
|
fs.stat.invalidate(change.uri);
|
|
693
|
-
|
|
557
|
+
appGraphManager.create(change.uri);
|
|
694
558
|
// If a file is created under out feet, we update its contents.
|
|
695
559
|
updates.push(documentManager.changeFromDisk(change.uri));
|
|
696
560
|
break;
|
|
@@ -699,7 +563,7 @@ export function startServer(
|
|
|
699
563
|
// A changed file invalidates readFile and stat (but not readDirectory)
|
|
700
564
|
fs.readFile.invalidate(change.uri);
|
|
701
565
|
fs.stat.invalidate(change.uri);
|
|
702
|
-
|
|
566
|
+
appGraphManager.change(change.uri);
|
|
703
567
|
// If the file is not open, we update its contents in the doc manager
|
|
704
568
|
// If it is open, then we don't need to update it because the document manager
|
|
705
569
|
// will have the version from the editor.
|
|
@@ -713,60 +577,43 @@ export function startServer(
|
|
|
713
577
|
fs.readDirectory.invalidate(path.dirname(change.uri));
|
|
714
578
|
fs.readFile.invalidate(change.uri);
|
|
715
579
|
fs.stat.invalidate(change.uri);
|
|
716
|
-
|
|
580
|
+
appGraphManager.delete(change.uri);
|
|
717
581
|
// If a file is deleted, it's removed from the document manager
|
|
718
582
|
documentManager.delete(change.uri);
|
|
719
583
|
break;
|
|
720
584
|
}
|
|
721
585
|
|
|
722
|
-
|
|
723
|
-
updates.push(
|
|
724
|
-
findThemeRootURI(change.uri).then((rootUri) => {
|
|
725
|
-
if (rootUri) {
|
|
726
|
-
getMetafieldDefinitionsForRootUri.invalidate(rootUri);
|
|
727
|
-
}
|
|
728
|
-
}),
|
|
729
|
-
);
|
|
730
|
-
}
|
|
586
|
+
// metafields.json support removed
|
|
731
587
|
}
|
|
732
588
|
|
|
733
589
|
await Promise.all(updates);
|
|
734
590
|
|
|
735
|
-
// MissingAssets/
|
|
591
|
+
// MissingAssets/MissingPartial should be rerun when a file is deleted
|
|
736
592
|
// since an error might be introduced (and vice versa).
|
|
737
593
|
runChecks.force(triggerUris);
|
|
738
594
|
});
|
|
739
595
|
|
|
740
|
-
connection.onRequest(
|
|
596
|
+
connection.onRequest(AppGraphReferenceRequest.type, async (params) => {
|
|
741
597
|
if (hasUnsupportedDocument(params)) return [];
|
|
742
598
|
const { uri, offset, includeIndirect } = params;
|
|
743
|
-
return
|
|
599
|
+
return appGraphManager.getReferences(uri, offset, { includeIndirect }).catch((_) => []);
|
|
744
600
|
});
|
|
745
601
|
|
|
746
|
-
connection.onRequest(
|
|
602
|
+
connection.onRequest(AppGraphDependenciesRequest.type, async (params) => {
|
|
747
603
|
if (hasUnsupportedDocument(params)) return [];
|
|
748
604
|
const { uri, offset, includeIndirect } = params;
|
|
749
|
-
return
|
|
605
|
+
return appGraphManager.getDependencies(uri, offset, { includeIndirect }).catch((_) => []);
|
|
750
606
|
});
|
|
751
607
|
|
|
752
|
-
connection.onRequest(
|
|
608
|
+
connection.onRequest(AppGraphRootRequest.type, async (params) => {
|
|
753
609
|
if (hasUnsupportedDocument(params)) return '';
|
|
754
610
|
const { uri } = params;
|
|
755
|
-
const rootUri = await
|
|
611
|
+
const rootUri = await findAppRootURI(uri).catch((_) => undefined);
|
|
756
612
|
if (!rootUri || path.dirname(rootUri) === rootUri) {
|
|
757
613
|
console.error(uri);
|
|
758
614
|
}
|
|
759
615
|
return rootUri;
|
|
760
616
|
});
|
|
761
617
|
|
|
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
618
|
connection.listen();
|
|
772
619
|
}
|
|
@@ -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
|
|