@platformos/platformos-language-server-common 0.0.6 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/dist/PropertyShapeInference.d.ts +18 -0
- package/dist/PropertyShapeInference.js +58 -0
- package/dist/PropertyShapeInference.js.map +1 -1
- package/dist/TypeSystem.d.ts +4 -9
- package/dist/TypeSystem.js +234 -388
- package/dist/TypeSystem.js.map +1 -1
- package/dist/completions/CompletionsProvider.d.ts +6 -10
- package/dist/completions/CompletionsProvider.js +6 -9
- package/dist/completions/CompletionsProvider.js.map +1 -1
- package/dist/completions/params/LiquidCompletionParams.js +4 -16
- package/dist/completions/params/LiquidCompletionParams.js.map +1 -1
- package/dist/completions/providers/ContentForCompletionProvider.js +2 -4
- package/dist/completions/providers/ContentForCompletionProvider.js.map +1 -1
- package/dist/completions/providers/FilterCompletionProvider.js.map +1 -1
- package/dist/completions/providers/FilterNamedParameterCompletionProvider.d.ts +3 -3
- package/dist/completions/providers/FilterNamedParameterCompletionProvider.js +6 -6
- package/dist/completions/providers/FilterNamedParameterCompletionProvider.js.map +1 -1
- package/dist/completions/providers/LiquidDocParamTypeCompletionProvider.d.ts +3 -3
- package/dist/completions/providers/LiquidDocParamTypeCompletionProvider.js +3 -3
- package/dist/completions/providers/LiquidDocParamTypeCompletionProvider.js.map +1 -1
- package/dist/completions/providers/LiquidTagsCompletionProvider.d.ts +3 -3
- package/dist/completions/providers/LiquidTagsCompletionProvider.js +3 -3
- package/dist/completions/providers/LiquidTagsCompletionProvider.js.map +1 -1
- package/dist/completions/providers/RenderPartialParameterCompletionProvider.js +1 -1
- package/dist/completions/providers/RenderPartialParameterCompletionProvider.js.map +1 -1
- package/dist/completions/providers/TranslationCompletionProvider.js +1 -1
- package/dist/completions/providers/TranslationCompletionProvider.js.map +1 -1
- package/dist/completions/providers/index.d.ts +0 -3
- package/dist/completions/providers/index.js +1 -7
- package/dist/completions/providers/index.js.map +1 -1
- package/dist/css/CSSLanguageService.d.ts +19 -5
- package/dist/css/CSSLanguageService.js +77 -63
- package/dist/css/CSSLanguageService.js.map +1 -1
- package/dist/definitions/DefinitionProvider.d.ts +1 -1
- package/dist/definitions/DefinitionProvider.js +1 -3
- package/dist/definitions/DefinitionProvider.js.map +1 -1
- package/dist/diagnostics/offenseToDiagnostic.js +1 -1
- package/dist/diagnostics/offenseToDiagnostic.js.map +1 -1
- package/dist/diagnostics/runChecks.d.ts +3 -5
- package/dist/diagnostics/runChecks.js +12 -64
- package/dist/diagnostics/runChecks.js.map +1 -1
- package/dist/docset/MarkdownRenderer.js +1 -1
- package/dist/docset/MarkdownRenderer.js.map +1 -1
- package/dist/documentHighlights/providers/HtmlTagNameDocumentHighlightsProvider.d.ts +1 -1
- package/dist/documentLinks/DocumentLinksProvider.d.ts +3 -3
- package/dist/documentLinks/DocumentLinksProvider.js +3 -3
- package/dist/documentLinks/DocumentLinksProvider.js.map +1 -1
- package/dist/documents/DocumentManager.d.ts +4 -5
- package/dist/documents/DocumentManager.js +12 -11
- package/dist/documents/DocumentManager.js.map +1 -1
- package/dist/documents/types.d.ts +16 -3
- package/dist/documents/types.js +3 -3
- package/dist/documents/types.js.map +1 -1
- package/dist/formatting/OnTypeFormattingProvider.d.ts +1 -1
- package/dist/formatting/providers/HtmlElementAutoclosingOnTypeFormattingProvider.js.map +1 -1
- package/dist/hover/HoverProvider.d.ts +5 -8
- package/dist/hover/HoverProvider.js +8 -14
- package/dist/hover/HoverProvider.js.map +1 -1
- package/dist/hover/providers/LiquidFilterArgumentHoverProvider.d.ts +3 -3
- package/dist/hover/providers/LiquidFilterArgumentHoverProvider.js +3 -3
- package/dist/hover/providers/LiquidFilterArgumentHoverProvider.js.map +1 -1
- package/dist/hover/providers/LiquidFilterHoverProvider.d.ts +3 -3
- package/dist/hover/providers/LiquidFilterHoverProvider.js +3 -3
- package/dist/hover/providers/LiquidFilterHoverProvider.js.map +1 -1
- package/dist/hover/providers/LiquidTagHoverProvider.d.ts +3 -3
- package/dist/hover/providers/LiquidTagHoverProvider.js +3 -3
- package/dist/hover/providers/LiquidTagHoverProvider.js.map +1 -1
- package/dist/hover/providers/RenderPartialHoverProvider.js +1 -1
- package/dist/hover/providers/RenderPartialHoverProvider.js.map +1 -1
- package/dist/hover/providers/RenderPartialParameterHoverProvider.js +1 -1
- package/dist/hover/providers/RenderPartialParameterHoverProvider.js.map +1 -1
- package/dist/hover/providers/TranslationHoverProvider.d.ts +3 -3
- package/dist/hover/providers/TranslationHoverProvider.js +3 -3
- package/dist/hover/providers/TranslationHoverProvider.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal-types.d.ts +1 -1
- package/dist/json/JSONContributions.d.ts +1 -5
- package/dist/json/JSONContributions.js +4 -36
- package/dist/json/JSONContributions.js.map +1 -1
- package/dist/json/JSONLanguageService.d.ts +4 -12
- package/dist/json/JSONLanguageService.js +17 -80
- package/dist/json/JSONLanguageService.js.map +1 -1
- package/dist/json/test/test-helpers.d.ts +1 -3
- package/dist/json/test/test-helpers.js +3 -19
- package/dist/json/test/test-helpers.js.map +1 -1
- package/dist/json/utils.d.ts +0 -5
- package/dist/json/utils.js +0 -24
- package/dist/json/utils.js.map +1 -1
- package/dist/linkedEditingRanges/providers/HtmlTagNameLinkedRangesProvider.d.ts +1 -1
- package/dist/progress.js.map +1 -1
- package/dist/rename/RenameProvider.d.ts +2 -2
- package/dist/rename/RenameProvider.js +2 -2
- package/dist/rename/RenameProvider.js.map +1 -1
- package/dist/rename/providers/LiquidVariableRenameProvider.d.ts +3 -3
- package/dist/rename/providers/LiquidVariableRenameProvider.js +4 -4
- package/dist/rename/providers/LiquidVariableRenameProvider.js.map +1 -1
- package/dist/renamed/RenameHandler.d.ts +2 -3
- package/dist/renamed/RenameHandler.js +3 -8
- package/dist/renamed/RenameHandler.js.map +1 -1
- package/dist/renamed/handlers/AssetRenameHandler.d.ts +3 -3
- package/dist/renamed/handlers/AssetRenameHandler.js +5 -5
- package/dist/renamed/handlers/AssetRenameHandler.js.map +1 -1
- package/dist/renamed/handlers/PartialRenameHandler.d.ts +3 -3
- package/dist/renamed/handlers/PartialRenameHandler.js +5 -5
- package/dist/renamed/handlers/PartialRenameHandler.js.map +1 -1
- package/dist/renamed/handlers/utils.d.ts +1 -1
- package/dist/server/AppGraphManager.d.ts +32 -0
- package/dist/server/AppGraphManager.js +155 -0
- package/dist/server/AppGraphManager.js.map +1 -0
- package/dist/server/Configuration.js.map +1 -1
- package/dist/server/startServer.d.ts +2 -2
- package/dist/server/startServer.js +62 -164
- package/dist/server/startServer.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +33 -54
- package/dist/types.js +21 -26
- package/dist/types.js.map +1 -1
- package/dist/utils/liquidDoc.js +1 -1
- package/dist/utils/liquidDoc.js.map +1 -1
- package/dist/utils/uri.d.ts +0 -8
- package/dist/utils/uri.js +1 -17
- package/dist/utils/uri.js.map +1 -1
- package/package.json +9 -9
- package/src/PropertyShapeInference.ts +76 -1
- package/src/TypeSystem.spec.ts +187 -452
- package/src/TypeSystem.ts +253 -459
- package/src/completions/CompletionsProvider.ts +13 -34
- package/src/completions/params/LiquidCompletionParams.spec.ts +0 -9
- package/src/completions/params/LiquidCompletionParams.ts +4 -14
- package/src/completions/params/fix.spec.ts +0 -3
- package/src/completions/providers/FilterCompletionProvider.spec.ts +2 -8
- package/src/completions/providers/FilterCompletionProvider.ts +6 -6
- package/src/completions/providers/FilterNamedParameterCompletionProvider.spec.ts +1 -5
- package/src/completions/providers/FilterNamedParameterCompletionProvider.ts +6 -6
- package/src/completions/providers/HtmlAttributeCompletionProvider.spec.ts +1 -4
- package/src/completions/providers/HtmlAttributeValueCompletionProvider.spec.ts +1 -4
- package/src/completions/providers/HtmlTagCompletionProvider.spec.ts +1 -4
- package/src/completions/providers/LiquidDocParamTypeCompletionProvider.spec.ts +1 -28
- package/src/completions/providers/LiquidDocParamTypeCompletionProvider.ts +3 -3
- package/src/completions/providers/LiquidDocTagCompletionProvider.spec.ts +1 -26
- package/src/completions/providers/LiquidTagsCompletionProvider.spec.ts +2 -16
- package/src/completions/providers/LiquidTagsCompletionProvider.ts +3 -3
- package/src/completions/providers/ObjectAttributeCompletionProvider.spec.ts +2 -31
- package/src/completions/providers/ObjectCompletionProvider.spec.ts +34 -123
- package/src/completions/providers/PartialCompletionProvider.spec.ts +4 -13
- package/src/completions/providers/RenderPartialParameterCompletionProvider.spec.ts +3 -5
- package/src/completions/providers/RenderPartialParameterCompletionProvider.ts +0 -1
- package/src/completions/providers/TranslationCompletionProvider.spec.ts +1 -4
- package/src/completions/providers/TranslationCompletionProvider.ts +1 -1
- package/src/completions/providers/index.ts +0 -3
- package/src/css/CSSLanguageService.ts +97 -81
- package/src/definitions/DefinitionProvider.ts +0 -6
- package/src/definitions/providers/TranslationStringDefinitionProvider.spec.ts +1 -5
- package/src/diagnostics/offenseToDiagnostic.ts +1 -1
- package/src/diagnostics/runChecks.spec.ts +16 -24
- package/src/diagnostics/runChecks.ts +17 -91
- package/src/docset/MarkdownRenderer.ts +1 -1
- package/src/documentLinks/DocumentLinksProvider.ts +3 -3
- package/src/documents/DocumentManager.spec.ts +12 -97
- package/src/documents/DocumentManager.ts +13 -14
- package/src/documents/types.ts +18 -9
- package/src/formatting/providers/HtmlElementAutoclosingOnTypeFormattingProvider.ts +1 -3
- package/src/hover/HoverProvider.ts +9 -21
- package/src/hover/providers/HtmlAttributeHoverProvider.spec.ts +1 -3
- package/src/hover/providers/HtmlAttributeValueHoverProvider.spec.ts +1 -3
- package/src/hover/providers/HtmlTagHoverProvider.spec.ts +1 -3
- package/src/hover/providers/LiquidDocTagHoverProvider.spec.ts +0 -3
- package/src/hover/providers/LiquidFilterArgumentHoverProvider.spec.ts +0 -3
- package/src/hover/providers/LiquidFilterArgumentHoverProvider.ts +3 -3
- package/src/hover/providers/LiquidFilterHoverProvider.spec.ts +0 -3
- package/src/hover/providers/LiquidFilterHoverProvider.ts +3 -3
- package/src/hover/providers/LiquidObjectAttributeHoverProvider.spec.ts +1 -3
- package/src/hover/providers/LiquidObjectHoverProvider.spec.ts +46 -129
- package/src/hover/providers/LiquidTagHoverProvider.spec.ts +0 -3
- package/src/hover/providers/LiquidTagHoverProvider.ts +3 -3
- package/src/hover/providers/RenderPartialHoverProvider.spec.ts +1 -4
- package/src/hover/providers/RenderPartialHoverProvider.ts +1 -5
- package/src/hover/providers/RenderPartialParameterHoverProvider.spec.ts +1 -4
- package/src/hover/providers/RenderPartialParameterHoverProvider.ts +0 -1
- package/src/hover/providers/TranslationHoverProvider.spec.ts +1 -4
- package/src/hover/providers/TranslationHoverProvider.ts +3 -3
- package/src/index.ts +2 -5
- package/src/internal-types.ts +1 -1
- package/src/json/JSONContributions.ts +4 -61
- package/src/json/JSONLanguageService.ts +19 -117
- package/src/json/test/test-helpers.ts +4 -35
- package/src/json/utils.ts +0 -27
- package/src/progress.ts +4 -1
- package/src/rename/RenameProvider.ts +3 -3
- package/src/rename/providers/LiquidVariableRenameProvider.spec.ts +4 -4
- package/src/rename/providers/LiquidVariableRenameProvider.ts +4 -4
- package/src/renamed/RenameHandler.ts +4 -9
- package/src/renamed/handlers/AssetRenameHandler.spec.ts +3 -3
- package/src/renamed/handlers/AssetRenameHandler.ts +5 -5
- package/src/renamed/handlers/PartialRenameHandler.spec.ts +2 -2
- package/src/renamed/handlers/PartialRenameHandler.ts +5 -5
- package/src/renamed/handlers/utils.ts +1 -1
- package/src/server/{ThemeGraphManager.ts → AppGraphManager.ts} +21 -90
- package/src/server/Configuration.ts +4 -1
- package/src/server/startServer.spec.ts +7 -9
- package/src/server/startServer.ts +65 -217
- package/src/test/CompletionItemsAssertion.spec.ts +1 -4
- package/src/types.ts +33 -63
- package/src/utils/liquidDoc.ts +1 -1
- package/src/utils/uri.ts +0 -14
- package/src/completions/providers/ContentForBlockTypeCompletionProvider.spec.ts +0 -41
- package/src/completions/providers/ContentForBlockTypeCompletionProvider.ts +0 -42
- package/src/completions/providers/ContentForCompletionProvider.spec.ts +0 -96
- package/src/completions/providers/ContentForCompletionProvider.ts +0 -113
- package/src/completions/providers/ContentForParameterCompletionProvider.spec.ts +0 -362
- package/src/completions/providers/ContentForParameterCompletionProvider.ts +0 -187
- package/src/completions/providers/data/contentForParameterCompletionOptions.ts +0 -9
- package/src/css/CSSLanguageService.spec.ts +0 -161
- package/src/css/test/test-helpers.ts +0 -30
- package/src/definitions/providers/SchemaTranslationStringDefinitionProvider.spec.ts +0 -96
- package/src/definitions/providers/SchemaTranslationStringDefinitionProvider.ts +0 -82
- package/src/hover/providers/ContentForArgumentHoverProvider.spec.ts +0 -76
- package/src/hover/providers/ContentForArgumentHoverProvider.ts +0 -56
- package/src/hover/providers/ContentForTypeHoverProvider.spec.ts +0 -91
- package/src/hover/providers/ContentForTypeHoverProvider.ts +0 -42
- package/src/json/JSONLanguageService.spec.ts +0 -424
- package/src/json/completions/providers/BlockSettingsPropertyCompletionProvider.spec.ts +0 -163
- package/src/json/completions/providers/BlockSettingsPropertyCompletionProvider.ts +0 -121
- package/src/json/completions/providers/BlockTypeCompletionProvider.spec.ts +0 -137
- package/src/json/completions/providers/BlockTypeCompletionProvider.ts +0 -108
- package/src/json/completions/providers/ReferencedBlockTypeCompletionProvider.spec.ts +0 -132
- package/src/json/completions/providers/ReferencedBlockTypeCompletionProvider.ts +0 -120
- package/src/json/completions/providers/SchemaTranslationCompletionProvider.ts +0 -51
- package/src/json/completions/providers/SettingsPropertyCompletionProvider.spec.ts +0 -211
- package/src/json/completions/providers/SettingsPropertyCompletionProvider.ts +0 -75
- package/src/json/documentLinks/DocumentLinksProvider.spec.ts +0 -223
- package/src/json/documentLinks/DocumentLinksProvider.ts +0 -61
- package/src/json/hover/providers/BlockSettingsHoverProvider.spec.ts +0 -292
- package/src/json/hover/providers/BlockSettingsHoverProvider.ts +0 -99
- package/src/json/hover/providers/SchemaTranslationHoverProvider.ts +0 -35
- package/src/json/hover/providers/SettingsHoverProvider.spec.ts +0 -139
- package/src/json/hover/providers/SettingsHoverProvider.ts +0 -79
- package/src/json/schemaSettings.spec.ts +0 -103
- package/src/json/schemaSettings.ts +0 -53
- package/src/plugins/css.ts +0 -12
- package/src/renamed/handlers/BlockRenameHandler.spec.ts +0 -399
- package/src/renamed/handlers/BlockRenameHandler.ts +0 -402
- package/src/renamed/handlers/SectionRenameHandler.spec.ts +0 -321
- package/src/renamed/handlers/SectionRenameHandler.ts +0 -224
- package/src/settings/index.ts +0 -50
|
@@ -5,10 +5,10 @@ const liquid_html_parser_1 = require("@platformos/liquid-html-parser");
|
|
|
5
5
|
const translations_1 = require("../../translations");
|
|
6
6
|
const vscode_uri_1 = require("vscode-uri");
|
|
7
7
|
class TranslationHoverProvider {
|
|
8
|
-
constructor(documentManager, translationProvider,
|
|
8
|
+
constructor(documentManager, translationProvider, findAppRootURI) {
|
|
9
9
|
this.documentManager = documentManager;
|
|
10
10
|
this.translationProvider = translationProvider;
|
|
11
|
-
this.
|
|
11
|
+
this.findAppRootURI = findAppRootURI;
|
|
12
12
|
}
|
|
13
13
|
async hover(currentNode, ancestors, params) {
|
|
14
14
|
const parentNode = ancestors.at(-1);
|
|
@@ -20,7 +20,7 @@ class TranslationHoverProvider {
|
|
|
20
20
|
if (!parentNode.filters[0] || !['t', 'translate'].includes(parentNode.filters[0].name)) {
|
|
21
21
|
return null;
|
|
22
22
|
}
|
|
23
|
-
const root = await this.
|
|
23
|
+
const root = await this.findAppRootURI(params.textDocument.uri);
|
|
24
24
|
if (!root) {
|
|
25
25
|
return null;
|
|
26
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TranslationHoverProvider.js","sourceRoot":"","sources":["../../../src/hover/providers/TranslationHoverProvider.ts"],"names":[],"mappings":";;;AAAA,uEAA2D;AAI3D,qDAAuD;AAGvD,2CAAiC;AAGjC,MAAa,wBAAwB;IACnC,YACS,eAAgC,EAC/B,mBAAwC,EACxC,
|
|
1
|
+
{"version":3,"file":"TranslationHoverProvider.js","sourceRoot":"","sources":["../../../src/hover/providers/TranslationHoverProvider.ts"],"names":[],"mappings":";;;AAAA,uEAA2D;AAI3D,qDAAuD;AAGvD,2CAAiC;AAGjC,MAAa,wBAAwB;IACnC,YACS,eAAgC,EAC/B,mBAAwC,EACxC,cAA8B;QAF/B,oBAAe,GAAf,eAAe,CAAiB;QAC/B,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,mBAAc,GAAd,cAAc,CAAgB;IACrC,CAAC;IAEJ,KAAK,CAAC,KAAK,CACT,WAA2B,EAC3B,SAA2B,EAC3B,MAAmB;QAEnB,MAAM,UAAU,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IACE,WAAW,CAAC,IAAI,KAAK,8BAAS,CAAC,MAAM;YACrC,CAAC,UAAU;YACX,UAAU,CAAC,IAAI,KAAK,8BAAS,CAAC,cAAc,EAC5C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACvF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAC1D,gBAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EACf,WAAW,CAAC,KAAK,EACjB,IAAI,CACL,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC;QACjF,IAAI,CAAC,WAAW,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,QAAQ,EAAE;gBACR,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,IAAA,gCAAiB,EAAC,WAAW,CAAC;aACtC;YACD,KAAK,EAAE;gBACL,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACtD,GAAG,EAAE,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC;aACnD;SACF,CAAC;IACJ,CAAC;CACF;AAlDD,4DAkDC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { Config as ThemeCheckConfig, allChecks, recommended as recommendedChecks
|
|
|
2
2
|
import { AbstractFileSystem, FileStat, FileTuple, FileType } from '@platformos/platformos-common';
|
|
3
3
|
export * from './types';
|
|
4
4
|
export { visit } from '@platformos/platformos-check-common';
|
|
5
|
-
export { Reference,
|
|
5
|
+
export { Reference, AppGraph, SerializableEdge, SerializableNode, AppModule, LiquidModule, } from '@platformos/platformos-graph';
|
|
6
6
|
export { debounce, memo, parseJSON, ArgumentTypes } from './utils';
|
|
7
7
|
export { startServer } from './server';
|
|
8
8
|
export { ThemeCheckConfig, recommendedChecks, allChecks, AbstractFileSystem, FileStat, FileTuple, FileType, SourceCodeType, };
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iFAK6C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iFAK6C;AAmB3C,0FAtBA,mCAAS,OAsBA;AADT,kGApBe,qCAAiB,OAoBf;AAMjB,+FAzBA,wCAAc,OAyBA;AAtBhB,qEAAkG;AAqBhG,yFArBgD,4BAAQ,OAqBhD;AAnBV,0CAAwB;AACxB,+EAA4D;AAAnD,gHAAA,KAAK,OAAA;AASd,iCAAmE;AAA1D,iGAAA,QAAQ,OAAA;AAAE,6FAAA,IAAI,OAAA;AAAE,kGAAA,SAAS,OAAA;AAClC,mCAAuC;AAA9B,qGAAA,WAAW,OAAA"}
|
package/dist/internal-types.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export type
|
|
1
|
+
export type FindAppRootURI = (uri: string) => Promise<string | null>;
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
import { AppBlockSchema, SectionSchema, ThemeBlockSchema } from '@platformos/platformos-check-common';
|
|
2
1
|
import { CompletionsCollector, JSONPath, JSONWorkerContribution, MarkedString } from 'vscode-json-languageservice';
|
|
3
2
|
import { DocumentManager } from '../documents';
|
|
4
|
-
import { GetTranslationsForURI } from '../translations';
|
|
5
|
-
export type GetThemeBlockSchema = (uri: string, name: string) => Promise<SectionSchema | ThemeBlockSchema | AppBlockSchema | undefined>;
|
|
6
|
-
export type GetThemeBlockNames = (uri: string, includePrivate: boolean) => Promise<string[]>;
|
|
7
3
|
/**
|
|
8
4
|
* I'm not a fan of how json-languageservice does its feature contributions. It's too different
|
|
9
5
|
* from everything else we do in here.
|
|
@@ -15,7 +11,7 @@ export declare class JSONContributions implements JSONWorkerContribution {
|
|
|
15
11
|
private documentManager;
|
|
16
12
|
private hoverProviders;
|
|
17
13
|
private completionProviders;
|
|
18
|
-
constructor(documentManager: DocumentManager
|
|
14
|
+
constructor(documentManager: DocumentManager);
|
|
19
15
|
getInfoContribution(uri: string, location: JSONPath): Promise<MarkedString[]>;
|
|
20
16
|
collectPropertyCompletions(uri: string, location: JSONPath, _currentWord: string, _addValue: boolean, _isLast: boolean, result: CompletionsCollector): Promise<void>;
|
|
21
17
|
collectValueCompletions(uri: string, location: JSONPath, propertyKey: string, result: CompletionsCollector): Promise<void>;
|
|
@@ -1,17 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.JSONContributions = void 0;
|
|
4
|
-
const platformos_check_common_1 = require("@platformos/platformos-check-common");
|
|
5
|
-
const BlockTypeCompletionProvider_1 = require("./completions/providers/BlockTypeCompletionProvider");
|
|
6
|
-
const ReferencedBlockTypeCompletionProvider_1 = require("./completions/providers/ReferencedBlockTypeCompletionProvider");
|
|
7
|
-
const SchemaTranslationCompletionProvider_1 = require("./completions/providers/SchemaTranslationCompletionProvider");
|
|
8
|
-
const SchemaTranslationHoverProvider_1 = require("./hover/providers/SchemaTranslationHoverProvider");
|
|
9
4
|
const TranslationPathHoverProvider_1 = require("./hover/providers/TranslationPathHoverProvider");
|
|
10
|
-
const utils_1 = require("./utils");
|
|
11
|
-
const SettingsPropertyCompletionProvider_1 = require("./completions/providers/SettingsPropertyCompletionProvider");
|
|
12
|
-
const SettingsHoverProvider_1 = require("./hover/providers/SettingsHoverProvider");
|
|
13
|
-
const BlockSettingsPropertyCompletionProvider_1 = require("./completions/providers/BlockSettingsPropertyCompletionProvider");
|
|
14
|
-
const BlockSettingsHoverProvider_1 = require("./hover/providers/BlockSettingsHoverProvider");
|
|
15
5
|
/** The getInfoContribution API will only fallback if we return undefined synchronously */
|
|
16
6
|
const SKIP_CONTRIBUTION = undefined;
|
|
17
7
|
/**
|
|
@@ -22,21 +12,10 @@ const SKIP_CONTRIBUTION = undefined;
|
|
|
22
12
|
* a bit more familiar.
|
|
23
13
|
*/
|
|
24
14
|
class JSONContributions {
|
|
25
|
-
constructor(documentManager
|
|
15
|
+
constructor(documentManager) {
|
|
26
16
|
this.documentManager = documentManager;
|
|
27
|
-
this.hoverProviders = [
|
|
28
|
-
|
|
29
|
-
new SchemaTranslationHoverProvider_1.SchemaTranslationHoverProvider(getDefaultSchemaTranslations),
|
|
30
|
-
new SettingsHoverProvider_1.SettingsHoverProvider(getDefaultSchemaTranslations),
|
|
31
|
-
new BlockSettingsHoverProvider_1.BlockSettingsHoverProvider(getDefaultSchemaTranslations, getThemeBlockSchema),
|
|
32
|
-
];
|
|
33
|
-
this.completionProviders = [
|
|
34
|
-
new SchemaTranslationCompletionProvider_1.SchemaTranslationsCompletionProvider(getDefaultSchemaTranslations),
|
|
35
|
-
new BlockTypeCompletionProvider_1.BlockTypeCompletionProvider(getThemeBlockNames),
|
|
36
|
-
new ReferencedBlockTypeCompletionProvider_1.ReferencedBlockTypeCompletionProvider(getThemeBlockNames, getThemeBlockSchema),
|
|
37
|
-
new BlockSettingsPropertyCompletionProvider_1.BlockSettingsPropertyCompletionProvider(getDefaultSchemaTranslations, getThemeBlockSchema),
|
|
38
|
-
new SettingsPropertyCompletionProvider_1.SettingsPropertyCompletionProvider(getDefaultSchemaTranslations),
|
|
39
|
-
];
|
|
17
|
+
this.hoverProviders = [new TranslationPathHoverProvider_1.TranslationPathHoverProvider()];
|
|
18
|
+
this.completionProviders = [];
|
|
40
19
|
}
|
|
41
20
|
async getInfoContribution(uri, location) {
|
|
42
21
|
const doc = this.documentManager.get(uri);
|
|
@@ -81,18 +60,7 @@ class JSONContributions {
|
|
|
81
60
|
/** I'm not sure we want to do anything with that... but TS requires us to have it */
|
|
82
61
|
async collectDefaultCompletions(_uri, _result) { }
|
|
83
62
|
async getContext(doc) {
|
|
84
|
-
|
|
85
|
-
doc,
|
|
86
|
-
};
|
|
87
|
-
if (doc.type === platformos_check_common_1.SourceCodeType.LiquidHtml && !(doc.ast instanceof Error)) {
|
|
88
|
-
const schema = await (0, utils_1.findSchemaNode)(doc.ast);
|
|
89
|
-
if (!schema)
|
|
90
|
-
return SKIP_CONTRIBUTION;
|
|
91
|
-
const jsonString = schema?.source.slice(schema.blockStartPosition.end, schema.blockEndPosition.start);
|
|
92
|
-
context.schema = schema;
|
|
93
|
-
context.parsed = (0, platformos_check_common_1.parseJSON)(jsonString);
|
|
94
|
-
}
|
|
95
|
-
return context;
|
|
63
|
+
return { doc };
|
|
96
64
|
}
|
|
97
65
|
}
|
|
98
66
|
exports.JSONContributions = JSONContributions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JSONContributions.js","sourceRoot":"","sources":["../../src/json/JSONContributions.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"JSONContributions.js","sourceRoot":"","sources":["../../src/json/JSONContributions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,18 @@
|
|
|
1
|
-
import { JsonValidationSet
|
|
1
|
+
import { JsonValidationSet } from '@platformos/platformos-check-common';
|
|
2
2
|
import { CompletionItem, CompletionList, CompletionParams, DocumentLink, DocumentLinkParams, Hover, HoverParams, ClientCapabilities as LSPClientCapabilities } from 'vscode-languageserver';
|
|
3
3
|
import { DocumentManager } from '../documents';
|
|
4
|
-
import { GetTranslationsForURI } from '../translations';
|
|
5
|
-
import { GetThemeBlockNames, GetThemeBlockSchema } from './JSONContributions';
|
|
6
|
-
import { FindThemeRootURI } from '../internal-types';
|
|
7
4
|
export declare class JSONLanguageService {
|
|
8
5
|
private documentManager;
|
|
9
6
|
private jsonValidationSet;
|
|
10
|
-
private
|
|
11
|
-
private getModeForURI;
|
|
12
|
-
private getThemeBlockNames;
|
|
13
|
-
private getThemeBlockSchema;
|
|
14
|
-
private findThemeRootURI;
|
|
15
|
-
private services;
|
|
7
|
+
private service;
|
|
16
8
|
private schemas;
|
|
17
9
|
initialized: Promise<void>;
|
|
18
10
|
private initialize;
|
|
19
|
-
constructor(documentManager: DocumentManager, jsonValidationSet: JsonValidationSet
|
|
11
|
+
constructor(documentManager: DocumentManager, jsonValidationSet: JsonValidationSet);
|
|
20
12
|
setup(clientCapabilities: LSPClientCapabilities): Promise<void>;
|
|
21
13
|
completions(params: CompletionParams): Promise<null | CompletionList | CompletionItem[]>;
|
|
22
14
|
hover(params: HoverParams): Promise<Hover | null>;
|
|
23
|
-
documentLinks(
|
|
15
|
+
documentLinks(_params: DocumentLinkParams): Promise<DocumentLink[]>;
|
|
24
16
|
isValidSchema: (uri: string, jsonString: string) => Promise<boolean>;
|
|
25
17
|
private getDocuments;
|
|
26
18
|
private getSchemaForURI;
|
|
@@ -1,45 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.JSONLanguageService = void 0;
|
|
4
|
-
const liquid_html_parser_1 = require("@platformos/liquid-html-parser");
|
|
5
4
|
const platformos_check_common_1 = require("@platformos/platformos-check-common");
|
|
6
5
|
const vscode_json_languageservice_1 = require("vscode-json-languageservice");
|
|
7
|
-
const vscode_languageserver_textdocument_1 = require("vscode-languageserver-textdocument");
|
|
8
6
|
const JSONContributions_1 = require("./JSONContributions");
|
|
9
|
-
const DocumentLinksProvider_1 = require("./documentLinks/DocumentLinksProvider");
|
|
10
|
-
const vscode_uri_1 = require("vscode-uri");
|
|
11
7
|
class JSONLanguageService {
|
|
12
|
-
constructor(documentManager, jsonValidationSet
|
|
8
|
+
constructor(documentManager, jsonValidationSet) {
|
|
13
9
|
this.documentManager = documentManager;
|
|
14
10
|
this.jsonValidationSet = jsonValidationSet;
|
|
15
|
-
this.
|
|
16
|
-
this.getModeForURI = getModeForURI;
|
|
17
|
-
this.getThemeBlockNames = getThemeBlockNames;
|
|
18
|
-
this.getThemeBlockSchema = getThemeBlockSchema;
|
|
19
|
-
this.findThemeRootURI = findThemeRootURI;
|
|
11
|
+
this.service = null;
|
|
20
12
|
this.initialize = () => { };
|
|
21
13
|
this.isValidSchema = async (uri, jsonString) => {
|
|
22
14
|
await this.initialized;
|
|
23
|
-
const
|
|
24
|
-
const service = this.services[mode];
|
|
15
|
+
const service = this.service;
|
|
25
16
|
if (!service)
|
|
26
17
|
return false;
|
|
27
18
|
return (0, platformos_check_common_1.isValid)(service, uri, jsonString);
|
|
28
19
|
};
|
|
29
|
-
this.services = Object.fromEntries(platformos_check_common_1.Modes.map((mode) => [mode, null]));
|
|
30
20
|
this.schemas = {};
|
|
31
21
|
this.initialized = new Promise((resolve) => {
|
|
32
22
|
this.initialize = resolve;
|
|
33
23
|
});
|
|
34
24
|
}
|
|
35
25
|
async setup(clientCapabilities) {
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
if (!schemas.length)
|
|
42
|
-
return;
|
|
26
|
+
const schemas = await this.jsonValidationSet.schemas();
|
|
27
|
+
for (const schema of schemas) {
|
|
28
|
+
this.schemas[schema.uri] = schema;
|
|
29
|
+
}
|
|
30
|
+
if (schemas.length) {
|
|
43
31
|
const service = (0, vscode_json_languageservice_1.getLanguageService)({
|
|
44
32
|
clientCapabilities,
|
|
45
33
|
// Map URIs to schemas without making network requests. Removes the
|
|
@@ -53,9 +41,7 @@ class JSONLanguageService {
|
|
|
53
41
|
return url.toString();
|
|
54
42
|
},
|
|
55
43
|
},
|
|
56
|
-
contributions: [
|
|
57
|
-
new JSONContributions_1.JSONContributions(this.documentManager, this.getDefaultSchemaTranslations, this.getThemeBlockNames, this.getThemeBlockSchema),
|
|
58
|
-
],
|
|
44
|
+
contributions: [new JSONContributions_1.JSONContributions(this.documentManager)],
|
|
59
45
|
});
|
|
60
46
|
service.configure({
|
|
61
47
|
// This is what we use to map file names to JSON schemas. Without
|
|
@@ -66,15 +52,13 @@ class JSONLanguageService {
|
|
|
66
52
|
fileMatch: schemaDefinition.fileMatch,
|
|
67
53
|
})),
|
|
68
54
|
});
|
|
69
|
-
this.
|
|
70
|
-
}
|
|
71
|
-
await Promise.all(promises);
|
|
55
|
+
this.service = service;
|
|
56
|
+
}
|
|
72
57
|
this.initialize();
|
|
73
58
|
}
|
|
74
59
|
async completions(params) {
|
|
75
60
|
await this.initialized;
|
|
76
|
-
const
|
|
77
|
-
const service = this.services[mode];
|
|
61
|
+
const service = this.service;
|
|
78
62
|
if (!service)
|
|
79
63
|
return null;
|
|
80
64
|
const documents = this.getDocuments(params, service);
|
|
@@ -85,8 +69,7 @@ class JSONLanguageService {
|
|
|
85
69
|
}
|
|
86
70
|
async hover(params) {
|
|
87
71
|
await this.initialized;
|
|
88
|
-
const
|
|
89
|
-
const service = this.services[mode];
|
|
72
|
+
const service = this.service;
|
|
90
73
|
if (!service)
|
|
91
74
|
return null;
|
|
92
75
|
const documents = this.getDocuments(params, service);
|
|
@@ -95,37 +78,8 @@ class JSONLanguageService {
|
|
|
95
78
|
const [jsonTextDocument, jsonDocument] = documents;
|
|
96
79
|
return service.doHover(jsonTextDocument, params.position, jsonDocument);
|
|
97
80
|
}
|
|
98
|
-
async documentLinks(
|
|
99
|
-
|
|
100
|
-
const rootUri = await this.findThemeRootURI(params.textDocument.uri);
|
|
101
|
-
if (!rootUri)
|
|
102
|
-
return [];
|
|
103
|
-
const document = this.documentManager.get(params.textDocument.uri);
|
|
104
|
-
if (!document)
|
|
105
|
-
return [];
|
|
106
|
-
switch (document.type) {
|
|
107
|
-
case platformos_check_common_1.SourceCodeType.JSON: {
|
|
108
|
-
if (document.ast instanceof Error)
|
|
109
|
-
return [];
|
|
110
|
-
const visitor = await (0, DocumentLinksProvider_1.createJSONDocumentLinksVisitor)(document.textDocument, vscode_uri_1.URI.parse(rootUri));
|
|
111
|
-
return (0, platformos_check_common_1.visit)(document.ast, visitor);
|
|
112
|
-
}
|
|
113
|
-
case platformos_check_common_1.SourceCodeType.LiquidHtml: {
|
|
114
|
-
if (document.ast instanceof Error)
|
|
115
|
-
return [];
|
|
116
|
-
const textDocument = document.textDocument;
|
|
117
|
-
const links = [];
|
|
118
|
-
const schema = await document.getSchema();
|
|
119
|
-
if (schema && !(schema.ast instanceof Error)) {
|
|
120
|
-
const visitor = await (0, DocumentLinksProvider_1.createJSONDocumentLinksVisitor)(textDocument, vscode_uri_1.URI.parse(rootUri), schema.offset);
|
|
121
|
-
const schemaLinks = await (0, platformos_check_common_1.visit)(schema.ast, visitor);
|
|
122
|
-
links.push(...schemaLinks);
|
|
123
|
-
}
|
|
124
|
-
return links;
|
|
125
|
-
}
|
|
126
|
-
default:
|
|
127
|
-
return [];
|
|
128
|
-
}
|
|
81
|
+
async documentLinks(_params) {
|
|
82
|
+
return [];
|
|
129
83
|
}
|
|
130
84
|
getDocuments(params, service) {
|
|
131
85
|
const document = this.documentManager.get(params.textDocument.uri);
|
|
@@ -133,31 +87,14 @@ class JSONLanguageService {
|
|
|
133
87
|
return null;
|
|
134
88
|
switch (document.type) {
|
|
135
89
|
case platformos_check_common_1.SourceCodeType.GraphQL:
|
|
90
|
+
case platformos_check_common_1.SourceCodeType.LiquidHtml:
|
|
91
|
+
case platformos_check_common_1.SourceCodeType.YAML:
|
|
136
92
|
return null;
|
|
137
93
|
case platformos_check_common_1.SourceCodeType.JSON: {
|
|
138
94
|
const jsonTextDocument = document.textDocument;
|
|
139
95
|
const jsonDocument = service.parseJSONDocument(jsonTextDocument);
|
|
140
96
|
return [jsonTextDocument, jsonDocument];
|
|
141
97
|
}
|
|
142
|
-
case platformos_check_common_1.SourceCodeType.LiquidHtml: {
|
|
143
|
-
if (document.ast instanceof Error)
|
|
144
|
-
return null;
|
|
145
|
-
const textDocument = document.textDocument;
|
|
146
|
-
const offset = textDocument.offsetAt(params.position);
|
|
147
|
-
const [_, ancestors] = (0, platformos_check_common_1.findCurrentNode)(document.ast, offset);
|
|
148
|
-
const schema = ancestors.find((node) => node.type === liquid_html_parser_1.NodeTypes.LiquidRawTag && node.name === 'schema');
|
|
149
|
-
if (!schema)
|
|
150
|
-
return null;
|
|
151
|
-
const schemaLineNumber = textDocument.positionAt(schema.blockStartPosition.end).line;
|
|
152
|
-
// Hacking away "same line numbers" here by prefixing the file with newlines
|
|
153
|
-
// This way params.position will be at the same line number in this fake jsonTextDocument
|
|
154
|
-
// Which means that the completions will be at the same line number in the Liquid document
|
|
155
|
-
const jsonString = Array(schemaLineNumber).fill('\n').join('') +
|
|
156
|
-
schema.source.slice(schema.blockStartPosition.end, schema.blockEndPosition.start);
|
|
157
|
-
const jsonTextDocument = vscode_languageserver_textdocument_1.TextDocument.create(textDocument.uri, 'json', textDocument.version, jsonString);
|
|
158
|
-
const jsonDocument = service.parseJSONDocument(jsonTextDocument);
|
|
159
|
-
return [jsonTextDocument, jsonDocument];
|
|
160
|
-
}
|
|
161
98
|
}
|
|
162
99
|
}
|
|
163
100
|
async getSchemaForURI(uri) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JSONLanguageService.js","sourceRoot":"","sources":["../../src/json/JSONLanguageService.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"JSONLanguageService.js","sourceRoot":"","sources":["../../src/json/JSONLanguageService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { CompletionItem, CompletionList, CompletionParams, HoverParams } from 'vscode-languageserver-protocol';
|
|
2
2
|
import { DocumentManager } from '../../documents';
|
|
3
|
-
import { GetThemeBlockNames } from '../JSONContributions';
|
|
4
3
|
import { JSONLanguageService } from '../JSONLanguageService';
|
|
5
|
-
import { GetTranslationsForURI } from '../../translations';
|
|
6
4
|
export declare function getRequestParams(documentManager: DocumentManager, relativePath: string, source: string): HoverParams & CompletionParams;
|
|
7
5
|
export declare function isCompletionList(completions: null | CompletionList | CompletionItem[]): completions is CompletionList;
|
|
8
|
-
export declare function mockJSONLanguageService(
|
|
6
|
+
export declare function mockJSONLanguageService(_rootUri: string, documentManager: DocumentManager): JSONLanguageService;
|
|
@@ -4,7 +4,6 @@ exports.getRequestParams = getRequestParams;
|
|
|
4
4
|
exports.isCompletionList = isCompletionList;
|
|
5
5
|
exports.mockJSONLanguageService = mockJSONLanguageService;
|
|
6
6
|
const JSONLanguageService_1 = require("../JSONLanguageService");
|
|
7
|
-
const platformos_check_common_1 = require("@platformos/platformos-check-common");
|
|
8
7
|
function getRequestParams(documentManager, relativePath, source) {
|
|
9
8
|
const uri = `file:///root/${relativePath}`;
|
|
10
9
|
const sourceWithoutCursor = source.replace('█', '');
|
|
@@ -19,24 +18,9 @@ function getRequestParams(documentManager, relativePath, source) {
|
|
|
19
18
|
function isCompletionList(completions) {
|
|
20
19
|
return completions !== null && !Array.isArray(completions);
|
|
21
20
|
}
|
|
22
|
-
function mockJSONLanguageService(
|
|
21
|
+
function mockJSONLanguageService(_rootUri, documentManager) {
|
|
23
22
|
return new JSONLanguageService_1.JSONLanguageService(documentManager, {
|
|
24
|
-
schemas: async () => [
|
|
25
|
-
|
|
26
|
-
uri: 'https://shopify.dev/block-schema.json',
|
|
27
|
-
schema: JSON.stringify({
|
|
28
|
-
$schema: 'http://json-schema.org/draft-07/schema#',
|
|
29
|
-
}),
|
|
30
|
-
fileMatch: ['**/{blocks,sections}/*.liquid'],
|
|
31
|
-
},
|
|
32
|
-
],
|
|
33
|
-
}, getDefaultSchemaTranslations, async () => 'theme', getThemeBlockNames, async (_uri, name) => {
|
|
34
|
-
const blockUri = `${rootUri}/blocks/${name}.liquid`;
|
|
35
|
-
const doc = documentManager.get(blockUri);
|
|
36
|
-
if (!doc || doc.type !== platformos_check_common_1.SourceCodeType.LiquidHtml) {
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
return doc.getSchema();
|
|
40
|
-
}, async () => rootUri);
|
|
23
|
+
schemas: async () => [],
|
|
24
|
+
});
|
|
41
25
|
}
|
|
42
26
|
//# sourceMappingURL=test-helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-helpers.js","sourceRoot":"","sources":["../../../src/json/test/test-helpers.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"test-helpers.js","sourceRoot":"","sources":["../../../src/json/test/test-helpers.ts"],"names":[],"mappings":";;AASA,4CAeC;AAED,4CAIC;AAED,0DAIC;AA7BD,gEAA6D;AAE7D,SAAgB,gBAAgB,CAC9B,eAAgC,EAChC,YAAoB,EACpB,MAAc;IAEd,MAAM,GAAG,GAAG,gBAAgB,YAAY,EAAE,CAAC;IAC3C,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACpD,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,YAAY,CAAC;IACnD,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAErD,OAAO;QACL,YAAY,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE;QAC1B,QAAQ,EAAE,QAAQ;KACnB,CAAC;AACJ,CAAC;AAED,SAAgB,gBAAgB,CAC9B,WAAqD;IAErD,OAAO,WAAW,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAC7D,CAAC;AAED,SAAgB,uBAAuB,CAAC,QAAgB,EAAE,eAAgC;IACxF,OAAO,IAAI,yCAAmB,CAAC,eAAe,EAAE;QAC9C,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;KACxB,CAAC,CAAC;AACL,CAAC"}
|
package/dist/json/utils.d.ts
CHANGED
|
@@ -1,6 +1 @@
|
|
|
1
|
-
import { LiquidHtmlNode, LiquidRawTag } from '@platformos/liquid-html-parser';
|
|
2
1
|
export declare function fileMatch(uri: string, patterns: RegExp[]): boolean;
|
|
3
|
-
export declare function isSectionFile(uri: string): boolean;
|
|
4
|
-
export declare function isBlockFile(uri: string): boolean;
|
|
5
|
-
export declare function isSectionOrBlockFile(uri: string): boolean;
|
|
6
|
-
export declare function findSchemaNode(ast: LiquidHtmlNode): Promise<LiquidRawTag | undefined>;
|
package/dist/json/utils.js
CHANGED
|
@@ -1,31 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.fileMatch = fileMatch;
|
|
4
|
-
exports.isSectionFile = isSectionFile;
|
|
5
|
-
exports.isBlockFile = isBlockFile;
|
|
6
|
-
exports.isSectionOrBlockFile = isSectionOrBlockFile;
|
|
7
|
-
exports.findSchemaNode = findSchemaNode;
|
|
8
|
-
const platformos_check_common_1 = require("@platformos/platformos-check-common");
|
|
9
4
|
function fileMatch(uri, patterns) {
|
|
10
5
|
return patterns.some((pattern) => pattern.test(uri));
|
|
11
6
|
}
|
|
12
|
-
function isSectionFile(uri) {
|
|
13
|
-
return /\/sections\/[^/]*\.liquid$/.test(uri);
|
|
14
|
-
}
|
|
15
|
-
function isBlockFile(uri) {
|
|
16
|
-
return /\/blocks\/[^/]*\.liquid$/.test(uri);
|
|
17
|
-
}
|
|
18
|
-
function isSectionOrBlockFile(uri) {
|
|
19
|
-
return isSectionFile(uri) || isBlockFile(uri);
|
|
20
|
-
}
|
|
21
|
-
async function findSchemaNode(ast) {
|
|
22
|
-
const nodes = await (0, platformos_check_common_1.visit)(ast, {
|
|
23
|
-
async LiquidRawTag(node) {
|
|
24
|
-
if (node.name === 'schema') {
|
|
25
|
-
return node;
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
});
|
|
29
|
-
return nodes[0];
|
|
30
|
-
}
|
|
31
7
|
//# sourceMappingURL=utils.js.map
|
package/dist/json/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/json/utils.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/json/utils.ts"],"names":[],"mappings":";;AAAA,8BAEC;AAFD,SAAgB,SAAS,CAAC,GAAW,EAAE,QAAkB;IACvD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -6,7 +6,7 @@ export declare class HtmlTagNameLinkedRangesProvider implements BaseLinkedEditin
|
|
|
6
6
|
documentManager: DocumentManager;
|
|
7
7
|
constructor(documentManager: DocumentManager);
|
|
8
8
|
linkedEditingRanges(node: LiquidHtmlNode | null, ancestors: LiquidHtmlNode[] | null, params: LinkedEditingRangeParams): Promise<{
|
|
9
|
-
ranges: import("vscode-languageserver").Range[];
|
|
9
|
+
ranges: import("vscode-languageserver-types").Range[];
|
|
10
10
|
wordPattern: string;
|
|
11
11
|
} | null>;
|
|
12
12
|
}
|
package/dist/progress.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":";;;AAmFA,0BAEC;AApFD,mFAAiG;AASjG;;;;;;;;;;GAUG;AACH,MAAa,QAAQ;IACnB,YACU,UAAsB,EACtB,aAAqB;QADrB,eAAU,GAAV,UAAU,CAAY;QACtB,kBAAa,GAAb,aAAa,CAAQ;IAC5B,CAAC;IAEJ,MAAM,CAAC,MAAM,CACX,UAAkC,EAClC,YAA4C,EAC5C,aAAqB;QAErB,IAAI,CAAC,UAAU,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC;YACrE,+EAA+E;YAC/E,OAAO;gBACL,KAAK,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;gBACrB,MAAM,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;gBACtB,GAAG,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;aACP,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,QAAQ,CAAC,UAAW,EAAE,aAAa,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAa;QACvB,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,8DAA6B,CAAC,IAAI,EAAE;YACpE,KAAK,EAAE,IAAI,CAAC,aAAa;SAC1B,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,iDAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE;YAC5E,IAAI,EAAE,OAAO;YACb,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,UAAmB,EAAE,OAAgB;QAChD,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,iDAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE;YAC5E,IAAI,EAAE,QAAQ;YACd,OAAO;YACP,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAAgB;QACxB,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,iDAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE;YAC5E,IAAI,EAAE,KAAK;YACX,OAAO;SACR,CAAC,CAAC;IACL,CAAC;CACF;AA9CD,4BA8CC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAgB,OAAO,CAAC,OAAe,EAAE,KAAa,EAAE,SAAiB,CAAC;IACxE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC;AACjE,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { PrepareRenameParams, PrepareRenameResult, RenameParams, WorkspaceEdit }
|
|
|
2
2
|
import { DocumentManager } from '../documents';
|
|
3
3
|
import { Connection } from 'vscode-languageserver';
|
|
4
4
|
import { ClientCapabilities } from '../ClientCapabilities';
|
|
5
|
-
import {
|
|
5
|
+
import { FindAppRootURI } from '../internal-types';
|
|
6
6
|
/**
|
|
7
7
|
* RenameProvider is responsible for providing rename support for the theme language server.
|
|
8
8
|
*
|
|
@@ -11,7 +11,7 @@ import { FindThemeRootURI } from '../internal-types';
|
|
|
11
11
|
export declare class RenameProvider {
|
|
12
12
|
private documentManager;
|
|
13
13
|
private providers;
|
|
14
|
-
constructor(connection: Connection, clientCapabilities: ClientCapabilities, documentManager: DocumentManager,
|
|
14
|
+
constructor(connection: Connection, clientCapabilities: ClientCapabilities, documentManager: DocumentManager, findAppRootURI: FindAppRootURI);
|
|
15
15
|
/** Prepare is for telling if you can rename this thing or not, and what text to rename */
|
|
16
16
|
prepare(params: PrepareRenameParams): Promise<null | PrepareRenameResult>;
|
|
17
17
|
/** Rename is for actually renaming something */
|
|
@@ -11,11 +11,11 @@ const LiquidVariableRenameProvider_1 = require("./providers/LiquidVariableRename
|
|
|
11
11
|
* Rename is a pretty abstract concept, it can be renaming a tag name, a variable, a class name, etc.
|
|
12
12
|
*/
|
|
13
13
|
class RenameProvider {
|
|
14
|
-
constructor(connection, clientCapabilities, documentManager,
|
|
14
|
+
constructor(connection, clientCapabilities, documentManager, findAppRootURI) {
|
|
15
15
|
this.documentManager = documentManager;
|
|
16
16
|
this.providers = [
|
|
17
17
|
new HtmlTagNameRenameProvider_1.HtmlTagNameRenameProvider(documentManager),
|
|
18
|
-
new LiquidVariableRenameProvider_1.LiquidVariableRenameProvider(connection, clientCapabilities, documentManager,
|
|
18
|
+
new LiquidVariableRenameProvider_1.LiquidVariableRenameProvider(connection, clientCapabilities, documentManager, findAppRootURI),
|
|
19
19
|
];
|
|
20
20
|
}
|
|
21
21
|
/** Prepare is for telling if you can rename this thing or not, and what text to rename */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenameProvider.js","sourceRoot":"","sources":["../../src/rename/RenameProvider.ts"],"names":[],"mappings":";;;AACA,iFAAqE;AASrE,iFAAsE;AAEtE,qFAAkF;AAClF,2FAAwF;AAKxF;;;;GAIG;AACH,MAAa,cAAc;IAGzB,YACE,UAAsB,EACtB,kBAAsC,EAC9B,eAAgC,EACxC,
|
|
1
|
+
{"version":3,"file":"RenameProvider.js","sourceRoot":"","sources":["../../src/rename/RenameProvider.ts"],"names":[],"mappings":";;;AACA,iFAAqE;AASrE,iFAAsE;AAEtE,qFAAkF;AAClF,2FAAwF;AAKxF;;;;GAIG;AACH,MAAa,cAAc;IAGzB,YACE,UAAsB,EACtB,kBAAsC,EAC9B,eAAgC,EACxC,cAA8B;QADtB,oBAAe,GAAf,eAAe,CAAiB;QAGxC,IAAI,CAAC,SAAS,GAAG;YACf,IAAI,qDAAyB,CAAC,eAAe,CAAC;YAC9C,IAAI,2DAA4B,CAC9B,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,cAAc,CACf;SACF,CAAC;IACJ,CAAC;IAED,0FAA0F;IAC1F,KAAK,CAAC,OAAO,CAAC,MAA2B;QACvC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,WAAW,KAAK,IAAI,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC/C,QAAQ;aACL,OAAO,CAAC,WAA6B,EAAE,SAA6B,EAAE,MAAM,CAAC;aAC7E,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CACrB,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;IACvC,CAAC;IAED,gDAAgD;IAChD,KAAK,CAAC,MAAM,CAAC,MAAoB;QAC/B,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,WAAW,KAAK,IAAI,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC/C,QAAQ;aACL,MAAM,CAAC,WAA6B,EAAE,SAA6B,EAAE,MAAM,CAAC;aAC5E,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CACrB,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;IACvC,CAAC;IAED,sEAAsE;IAC9D,KAAK,CACX,MAAkC;QAElC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACnE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,wCAAc,CAAC,UAAU,EAAE,CAAC;YAC7D,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACtB,CAAC;QAED,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO,IAAA,yCAAe,EAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxF,CAAC;QAED,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtB,CAAC;CACF;AAnED,wCAmEC"}
|
|
@@ -3,14 +3,14 @@ import { Connection } from 'vscode-languageserver';
|
|
|
3
3
|
import { PrepareRenameParams, PrepareRenameResult, RenameParams, WorkspaceEdit } from 'vscode-languageserver-protocol';
|
|
4
4
|
import { ClientCapabilities } from '../../ClientCapabilities';
|
|
5
5
|
import { DocumentManager } from '../../documents';
|
|
6
|
-
import {
|
|
6
|
+
import { FindAppRootURI } from '../../internal-types';
|
|
7
7
|
import { BaseRenameProvider } from '../BaseRenameProvider';
|
|
8
8
|
export declare class LiquidVariableRenameProvider implements BaseRenameProvider {
|
|
9
9
|
private connection;
|
|
10
10
|
private clientCapabilities;
|
|
11
11
|
private documentManager;
|
|
12
|
-
private
|
|
13
|
-
constructor(connection: Connection, clientCapabilities: ClientCapabilities, documentManager: DocumentManager,
|
|
12
|
+
private findAppRootURI;
|
|
13
|
+
constructor(connection: Connection, clientCapabilities: ClientCapabilities, documentManager: DocumentManager, findAppRootURI: FindAppRootURI);
|
|
14
14
|
prepare(node: LiquidHtmlNode, ancestors: LiquidHtmlNode[], params: PrepareRenameParams): Promise<null | PrepareRenameResult>;
|
|
15
15
|
rename(node: LiquidHtmlNode, ancestors: LiquidHtmlNode[], params: RenameParams): Promise<null | WorkspaceEdit>;
|
|
16
16
|
}
|
|
@@ -8,11 +8,11 @@ const vscode_languageserver_protocol_1 = require("vscode-languageserver-protocol
|
|
|
8
8
|
const documents_1 = require("../../documents");
|
|
9
9
|
const uri_1 = require("../../utils/uri");
|
|
10
10
|
class LiquidVariableRenameProvider {
|
|
11
|
-
constructor(connection, clientCapabilities, documentManager,
|
|
11
|
+
constructor(connection, clientCapabilities, documentManager, findAppRootURI) {
|
|
12
12
|
this.connection = connection;
|
|
13
13
|
this.clientCapabilities = clientCapabilities;
|
|
14
14
|
this.documentManager = documentManager;
|
|
15
|
-
this.
|
|
15
|
+
this.findAppRootURI = findAppRootURI;
|
|
16
16
|
}
|
|
17
17
|
async prepare(node, ancestors, params) {
|
|
18
18
|
const document = this.documentManager.get(params.textDocument.uri);
|
|
@@ -33,7 +33,7 @@ class LiquidVariableRenameProvider {
|
|
|
33
33
|
}
|
|
34
34
|
async rename(node, ancestors, params) {
|
|
35
35
|
const document = this.documentManager.get(params.textDocument.uri);
|
|
36
|
-
const rootUri = await this.
|
|
36
|
+
const rootUri = await this.findAppRootURI(params.textDocument.uri);
|
|
37
37
|
const textDocument = document?.textDocument;
|
|
38
38
|
if (!rootUri || !textDocument || !node || !ancestors)
|
|
39
39
|
return null;
|
|
@@ -57,7 +57,7 @@ class LiquidVariableRenameProvider {
|
|
|
57
57
|
},
|
|
58
58
|
});
|
|
59
59
|
if (this.clientCapabilities.hasApplyEditSupport && liquidDocParamUpdated) {
|
|
60
|
-
const themeFiles = this.documentManager.
|
|
60
|
+
const themeFiles = this.documentManager.app(rootUri, true);
|
|
61
61
|
const liquidSourceCodes = themeFiles.filter(documents_1.isLiquidSourceCode);
|
|
62
62
|
const name = (0, uri_1.partialName)(params.textDocument.uri);
|
|
63
63
|
await updateRenderTags(this.connection, liquidSourceCodes, name, oldName, params.newName);
|