@platformos/platformos-language-server-common 0.0.11 → 0.0.13

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.
Files changed (98) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/PropertyShapeInference.d.ts +5 -0
  3. package/dist/PropertyShapeInference.js +28 -0
  4. package/dist/PropertyShapeInference.js.map +1 -1
  5. package/dist/TypeSystem.js +117 -60
  6. package/dist/TypeSystem.js.map +1 -1
  7. package/dist/VariableShapeExtractor.js +2 -4
  8. package/dist/VariableShapeExtractor.js.map +1 -1
  9. package/dist/codeActions/CodeActionsProvider.d.ts +1 -1
  10. package/dist/codeActions/providers/GenerateDocBlockProvider.d.ts +10 -0
  11. package/dist/codeActions/providers/GenerateDocBlockProvider.js +39 -0
  12. package/dist/codeActions/providers/GenerateDocBlockProvider.js.map +1 -0
  13. package/dist/commands/providers/GenerateDocBlockCommandProvider.d.ts +19 -0
  14. package/dist/commands/providers/GenerateDocBlockCommandProvider.js +64 -0
  15. package/dist/commands/providers/GenerateDocBlockCommandProvider.js.map +1 -0
  16. package/dist/completions/CompletionsProvider.d.ts +1 -0
  17. package/dist/completions/CompletionsProvider.js +6 -0
  18. package/dist/completions/CompletionsProvider.js.map +1 -1
  19. package/dist/completions/params/LiquidCompletionParams.js +7 -2
  20. package/dist/completions/params/LiquidCompletionParams.js.map +1 -1
  21. package/dist/completions/providers/GraphQLFieldCompletionProvider.d.ts +12 -0
  22. package/dist/completions/providers/GraphQLFieldCompletionProvider.js +75 -0
  23. package/dist/completions/providers/GraphQLFieldCompletionProvider.js.map +1 -0
  24. package/dist/definitions/DefinitionProvider.d.ts +19 -1
  25. package/dist/definitions/DefinitionProvider.js +33 -1
  26. package/dist/definitions/DefinitionProvider.js.map +1 -1
  27. package/dist/definitions/providers/PageRouteDefinitionProvider.d.ts +51 -0
  28. package/dist/definitions/providers/PageRouteDefinitionProvider.js +204 -0
  29. package/dist/definitions/providers/PageRouteDefinitionProvider.js.map +1 -0
  30. package/dist/definitions/providers/RenderPartialDefinitionProvider.d.ts +14 -0
  31. package/dist/definitions/providers/RenderPartialDefinitionProvider.js +50 -0
  32. package/dist/definitions/providers/RenderPartialDefinitionProvider.js.map +1 -0
  33. package/dist/diagnostics/runChecks.d.ts +3 -1
  34. package/dist/diagnostics/runChecks.js +2 -1
  35. package/dist/diagnostics/runChecks.js.map +1 -1
  36. package/dist/documentLinks/DocumentLinksProvider.d.ts +3 -1
  37. package/dist/documentLinks/DocumentLinksProvider.js +16 -20
  38. package/dist/documentLinks/DocumentLinksProvider.js.map +1 -1
  39. package/dist/documents/DocumentManager.js +0 -4
  40. package/dist/documents/DocumentManager.js.map +1 -1
  41. package/dist/documents/types.d.ts +1 -20
  42. package/dist/documents/types.js.map +1 -1
  43. package/dist/hover/HoverProvider.d.ts +1 -0
  44. package/dist/hover/HoverProvider.js +6 -0
  45. package/dist/hover/HoverProvider.js.map +1 -1
  46. package/dist/hover/providers/GraphQLFieldHoverProvider.d.ts +12 -0
  47. package/dist/hover/providers/GraphQLFieldHoverProvider.js +85 -0
  48. package/dist/hover/providers/GraphQLFieldHoverProvider.js.map +1 -0
  49. package/dist/json/completions/providers/BlockTypeCompletionProvider.d.ts +4 -3
  50. package/dist/json/completions/providers/BlockTypeCompletionProvider.js +5 -10
  51. package/dist/json/completions/providers/BlockTypeCompletionProvider.js.map +1 -1
  52. package/dist/json/hover/providers/BlockSettingsHoverProvider.js +5 -10
  53. package/dist/json/hover/providers/BlockSettingsHoverProvider.js.map +1 -1
  54. package/dist/json/schemaSettings.d.ts +3 -3
  55. package/dist/json/schemaSettings.js.map +1 -1
  56. package/dist/renamed/handlers/BlockRenameHandler.d.ts +3 -3
  57. package/dist/renamed/handlers/BlockRenameHandler.js +86 -15
  58. package/dist/renamed/handlers/BlockRenameHandler.js.map +1 -1
  59. package/dist/renamed/handlers/SectionRenameHandler.d.ts +3 -3
  60. package/dist/renamed/handlers/SectionRenameHandler.js +3 -3
  61. package/dist/renamed/handlers/SectionRenameHandler.js.map +1 -1
  62. package/dist/server/AppGraphManager.js +3 -4
  63. package/dist/server/AppGraphManager.js.map +1 -1
  64. package/dist/server/CachedFileSystem.js +7 -2
  65. package/dist/server/CachedFileSystem.js.map +1 -1
  66. package/dist/server/startServer.js +71 -5
  67. package/dist/server/startServer.js.map +1 -1
  68. package/dist/tsconfig.tsbuildinfo +1 -1
  69. package/dist/utils/searchPaths.d.ts +21 -0
  70. package/dist/utils/searchPaths.js +34 -0
  71. package/dist/utils/searchPaths.js.map +1 -0
  72. package/package.json +6 -4
  73. package/src/PropertyShapeInference.spec.ts +44 -0
  74. package/src/PropertyShapeInference.ts +27 -0
  75. package/src/TypeSystem.spec.ts +59 -0
  76. package/src/TypeSystem.ts +132 -63
  77. package/src/VariableShapeExtractor.ts +2 -4
  78. package/src/completions/CompletionsProvider.ts +11 -0
  79. package/src/completions/params/LiquidCompletionParams.ts +7 -2
  80. package/src/completions/providers/GraphQLFieldCompletionProvider.ts +78 -0
  81. package/src/definitions/DefinitionProvider.ts +52 -0
  82. package/src/definitions/providers/PageRouteDefinitionProvider.spec.ts +753 -0
  83. package/src/definitions/providers/PageRouteDefinitionProvider.ts +250 -0
  84. package/src/definitions/providers/RenderPartialDefinitionProvider.spec.ts +191 -0
  85. package/src/definitions/providers/RenderPartialDefinitionProvider.ts +70 -0
  86. package/src/diagnostics/runChecks.ts +4 -0
  87. package/src/documentLinks/DocumentLinksProvider.spec.ts +131 -10
  88. package/src/documentLinks/DocumentLinksProvider.ts +23 -32
  89. package/src/documents/DocumentManager.ts +0 -4
  90. package/src/documents/types.ts +1 -21
  91. package/src/hover/HoverProvider.ts +11 -0
  92. package/src/hover/providers/GraphQLFieldHoverProvider.spec.ts +124 -0
  93. package/src/hover/providers/GraphQLFieldHoverProvider.ts +90 -0
  94. package/src/server/AppGraphManager.ts +3 -5
  95. package/src/server/CachedFileSystem.ts +11 -2
  96. package/src/server/startServer.ts +85 -5
  97. package/src/utils/searchPaths.spec.ts +101 -0
  98. package/src/utils/searchPaths.ts +32 -0
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PageRouteDefinitionProvider = void 0;
4
+ const liquid_html_parser_1 = require("@platformos/liquid-html-parser");
5
+ const platformos_common_1 = require("@platformos/platformos-common");
6
+ const platformos_check_common_1 = require("@platformos/platformos-check-common");
7
+ const vscode_uri_1 = require("vscode-uri");
8
+ const vscode_languageserver_protocol_1 = require("vscode-languageserver-protocol");
9
+ function getTagName(node) {
10
+ if (node.type !== liquid_html_parser_1.NodeTypes.HtmlElement)
11
+ return null;
12
+ const el = node;
13
+ if (el.name.length !== 1)
14
+ return null;
15
+ if (el.name[0].type !== liquid_html_parser_1.NodeTypes.TextNode)
16
+ return null;
17
+ return el.name[0].value;
18
+ }
19
+ /** Tag name → attribute that holds the URL */
20
+ const TAG_URL_ATTR = {
21
+ a: 'href',
22
+ form: 'action',
23
+ };
24
+ /**
25
+ * Find the URL-bearing attribute on an element.
26
+ * For <a> looks for href, for <form> looks for action.
27
+ */
28
+ function findUrlAttr(el, tagName) {
29
+ const urlAttrName = TAG_URL_ATTR[tagName];
30
+ if (!urlAttrName)
31
+ return null;
32
+ const attr = el.attributes.find((a) => (0, platformos_check_common_1.isValuedAttrNode)(a) && (0, platformos_check_common_1.getAttrName)(a) === urlAttrName);
33
+ if (!attr || !(0, platformos_check_common_1.isValuedAttrNode)(attr))
34
+ return null;
35
+ return attr;
36
+ }
37
+ class PageRouteDefinitionProvider {
38
+ constructor(documentManager, fs, findAppRootURI) {
39
+ this.documentManager = documentManager;
40
+ this.fs = fs;
41
+ this.findAppRootURI = findAppRootURI;
42
+ this.builtRoots = new Set();
43
+ this.routeTable = new platformos_common_1.RouteTable(fs);
44
+ }
45
+ /** Returns the shared route table (may trigger a build if not yet built). */
46
+ getRouteTable() {
47
+ return this.routeTable;
48
+ }
49
+ async ensureBuilt(uri) {
50
+ const rootUri = await this.findAppRootURI(uri);
51
+ if (!rootUri)
52
+ return false;
53
+ if (!this.builtRoots.has(rootUri)) {
54
+ await this.routeTable.build(vscode_uri_1.URI.parse(rootUri));
55
+ this.builtRoots.add(rootUri);
56
+ }
57
+ return true;
58
+ }
59
+ /**
60
+ * Called by the LSP when a page file changes on disk or in the editor.
61
+ * Keeps the route table in sync without a full rebuild.
62
+ * Callers are responsible for filtering to page URIs via isPage().
63
+ */
64
+ onPageFileChanged(uri, content) {
65
+ this.routeTable.updateFile(uri, content);
66
+ }
67
+ /**
68
+ * Called by the LSP when a page file is deleted.
69
+ * Callers are responsible for filtering to page URIs via isPage().
70
+ */
71
+ onPageFileDeleted(uri) {
72
+ this.routeTable.removeFile(uri);
73
+ }
74
+ /**
75
+ * Invalidate the cached build state so the next definition request triggers
76
+ * a full route-table rebuild. Call this after bulk file changes that bypass
77
+ * incremental updates (e.g., git checkout, branch switch, stash pop).
78
+ */
79
+ invalidate() {
80
+ this.builtRoots.clear();
81
+ this.routeTable = new platformos_common_1.RouteTable(this.fs);
82
+ }
83
+ async definitions(params, node, ancestors) {
84
+ const sourceCode = this.documentManager.get(params.textDocument.uri);
85
+ if (!sourceCode)
86
+ return [];
87
+ const doc = sourceCode.textDocument;
88
+ const resolved = this.resolveUrlContext(node, ancestors);
89
+ if (!resolved)
90
+ return [];
91
+ const { urlAttr, method, element } = resolved;
92
+ // Build a variable map from {% assign %} tags that precede the current element.
93
+ // This ensures that when a variable is reassigned, each usage sees only the
94
+ // assigns that come before it in document order.
95
+ let variableMap;
96
+ if (sourceCode.type === platformos_check_common_1.SourceCodeType.LiquidHtml &&
97
+ !(sourceCode.ast instanceof Error) &&
98
+ 'children' in sourceCode.ast &&
99
+ Array.isArray(sourceCode.ast.children)) {
100
+ variableMap = (0, platformos_check_common_1.buildVariableMap)(sourceCode.ast.children, element.position.start);
101
+ }
102
+ const urlPattern = (0, platformos_check_common_1.extractUrlPattern)(urlAttr, variableMap);
103
+ if (urlPattern === null || (0, platformos_check_common_1.shouldSkipUrl)(urlPattern))
104
+ return [];
105
+ const ready = await this.ensureBuilt(params.textDocument.uri);
106
+ if (!ready)
107
+ return [];
108
+ const matches = this.routeTable.match(urlPattern, method);
109
+ if (matches.length === 0)
110
+ return [];
111
+ const originRange = vscode_languageserver_protocol_1.Range.create(doc.positionAt(element.position.start), doc.positionAt(urlAttr.value[urlAttr.value.length - 1].position.end));
112
+ const results = [];
113
+ for (const entry of matches) {
114
+ const targetRange = vscode_languageserver_protocol_1.Range.create(0, 0, 0, 0);
115
+ results.push(vscode_languageserver_protocol_1.LocationLink.create(entry.uri, targetRange, targetRange, originRange));
116
+ }
117
+ return results;
118
+ }
119
+ /**
120
+ * Resolve the URL context from the cursor position.
121
+ * Activates when cursor is on:
122
+ * - The tag name (e.g. `a` in `<a href="...">`)
123
+ * - The URL-bearing attribute name or value (e.g. `href` or `/about` for <a>, `action` for <form>)
124
+ * - Inside a Liquid expression within the URL attribute (e.g. `{{ url }}` inside href)
125
+ * Does NOT activate on unrelated attributes (e.g. `class` in `<a class="x" href="/about">`).
126
+ */
127
+ resolveUrlContext(node, ancestors) {
128
+ // Case 1: node is the HtmlElement itself (cursor on tag name)
129
+ if (node.type === liquid_html_parser_1.NodeTypes.HtmlElement) {
130
+ return this.resolveFromElement(node);
131
+ }
132
+ // Case 2: node is a valued attribute — only activate if it's the URL attribute
133
+ if ((0, platformos_check_common_1.isValuedAttrNode)(node)) {
134
+ const element = this.findElementAncestor(ancestors);
135
+ if (!element)
136
+ return null;
137
+ return this.resolveFromUrlAttr(node, element);
138
+ }
139
+ // Case 3: node is inside a valued attribute (TextNode, LiquidVariableOutput, VariableLookup, etc.)
140
+ const attrAncestor = ancestors.find(platformos_check_common_1.isValuedAttrNode);
141
+ if (attrAncestor) {
142
+ const element = this.findElementAncestor(ancestors);
143
+ if (!element)
144
+ return null;
145
+ return this.resolveFromUrlAttr(attrAncestor, element);
146
+ }
147
+ // Case 4: TextNode directly under HtmlElement (e.g., tag name text)
148
+ if (node.type === liquid_html_parser_1.NodeTypes.TextNode) {
149
+ const parentElement = ancestors[ancestors.length - 1];
150
+ if (parentElement && parentElement.type === liquid_html_parser_1.NodeTypes.HtmlElement) {
151
+ return this.resolveFromElement(parentElement);
152
+ }
153
+ }
154
+ return null;
155
+ }
156
+ /**
157
+ * Only resolve if the given attribute is the URL-bearing attribute (href/action)
158
+ * for the parent element.
159
+ */
160
+ resolveFromUrlAttr(attr, element) {
161
+ const tagName = getTagName(element);
162
+ if (!tagName)
163
+ return null;
164
+ const urlAttrName = TAG_URL_ATTR[tagName];
165
+ if (!urlAttrName)
166
+ return null;
167
+ // Check that the cursor's attribute IS the URL attribute
168
+ const attrName = (0, platformos_check_common_1.getAttrName)(attr);
169
+ if (attrName !== urlAttrName)
170
+ return null;
171
+ const method = this.getMethodForElement(tagName, element);
172
+ if (!method)
173
+ return null;
174
+ return { urlAttr: attr, method, element };
175
+ }
176
+ resolveFromElement(element) {
177
+ const tagName = getTagName(element);
178
+ if (!tagName)
179
+ return null;
180
+ const urlAttr = findUrlAttr(element, tagName);
181
+ if (!urlAttr)
182
+ return null;
183
+ const method = this.getMethodForElement(tagName, element);
184
+ if (!method)
185
+ return null;
186
+ return { urlAttr, method, element };
187
+ }
188
+ findElementAncestor(ancestors) {
189
+ for (let i = ancestors.length - 1; i >= 0; i--) {
190
+ if (ancestors[i].type === liquid_html_parser_1.NodeTypes.HtmlElement)
191
+ return ancestors[i];
192
+ }
193
+ return null;
194
+ }
195
+ getMethodForElement(tagName, element) {
196
+ if (tagName === 'a')
197
+ return 'get';
198
+ if (tagName === 'form')
199
+ return (0, platformos_check_common_1.getEffectiveMethod)(element);
200
+ return null;
201
+ }
202
+ }
203
+ exports.PageRouteDefinitionProvider = PageRouteDefinitionProvider;
204
+ //# sourceMappingURL=PageRouteDefinitionProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageRouteDefinitionProvider.js","sourceRoot":"","sources":["../../../src/definitions/providers/PageRouteDefinitionProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { LiquidHtmlNode } from '@platformos/liquid-html-parser';
2
+ import { DocumentsLocator } from '@platformos/platformos-common';
3
+ import { DefinitionParams, DefinitionLink } from 'vscode-languageserver-protocol';
4
+ import { DocumentManager } from '../../documents';
5
+ import { BaseDefinitionProvider } from '../BaseDefinitionProvider';
6
+ import { SearchPathsLoader } from '../../utils/searchPaths';
7
+ export declare class RenderPartialDefinitionProvider implements BaseDefinitionProvider {
8
+ private documentManager;
9
+ private documentsLocator;
10
+ private searchPathsCache;
11
+ private findAppRootURI;
12
+ constructor(documentManager: DocumentManager, documentsLocator: DocumentsLocator, searchPathsCache: SearchPathsLoader, findAppRootURI: (uri: string) => Promise<string | null>);
13
+ definitions(params: DefinitionParams, node: LiquidHtmlNode, ancestors: LiquidHtmlNode[]): Promise<DefinitionLink[]>;
14
+ }
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RenderPartialDefinitionProvider = void 0;
4
+ const liquid_html_parser_1 = require("@platformos/liquid-html-parser");
5
+ const vscode_languageserver_protocol_1 = require("vscode-languageserver-protocol");
6
+ const vscode_uri_1 = require("vscode-uri");
7
+ const TAG_MARKUP_TYPE = {
8
+ render: liquid_html_parser_1.NodeTypes.RenderMarkup,
9
+ include: liquid_html_parser_1.NodeTypes.RenderMarkup,
10
+ theme_render_rc: liquid_html_parser_1.NodeTypes.RenderMarkup,
11
+ function: liquid_html_parser_1.NodeTypes.FunctionMarkup,
12
+ graphql: liquid_html_parser_1.NodeTypes.GraphQLMarkup,
13
+ };
14
+ class RenderPartialDefinitionProvider {
15
+ constructor(documentManager, documentsLocator, searchPathsCache, findAppRootURI) {
16
+ this.documentManager = documentManager;
17
+ this.documentsLocator = documentsLocator;
18
+ this.searchPathsCache = searchPathsCache;
19
+ this.findAppRootURI = findAppRootURI;
20
+ }
21
+ async definitions(params, node, ancestors) {
22
+ if (node.type !== liquid_html_parser_1.NodeTypes.String)
23
+ return [];
24
+ const markup = ancestors.at(-1);
25
+ const tag = ancestors.at(-2);
26
+ if (!markup || !tag || tag.type !== liquid_html_parser_1.NodeTypes.LiquidTag)
27
+ return [];
28
+ const expectedMarkupType = TAG_MARKUP_TYPE[tag.name];
29
+ if (expectedMarkupType === undefined || markup.type !== expectedMarkupType)
30
+ return [];
31
+ const rootUri = await this.findAppRootURI(params.textDocument.uri);
32
+ if (!rootUri)
33
+ return [];
34
+ const root = vscode_uri_1.URI.parse(rootUri);
35
+ const searchPaths = await this.searchPathsCache.get(root);
36
+ const docType = tag.name;
37
+ const fileUri = await this.documentsLocator.locate(root, docType, node.value, searchPaths);
38
+ if (!fileUri)
39
+ return [];
40
+ const sourceCode = this.documentManager.get(params.textDocument.uri);
41
+ if (!sourceCode)
42
+ return [];
43
+ const doc = sourceCode.textDocument;
44
+ const originRange = vscode_languageserver_protocol_1.Range.create(doc.positionAt(node.position.start), doc.positionAt(node.position.end));
45
+ const targetRange = vscode_languageserver_protocol_1.Range.create(0, 0, 0, 0);
46
+ return [vscode_languageserver_protocol_1.LocationLink.create(fileUri, targetRange, targetRange, originRange)];
47
+ }
48
+ }
49
+ exports.RenderPartialDefinitionProvider = RenderPartialDefinitionProvider;
50
+ //# sourceMappingURL=RenderPartialDefinitionProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderPartialDefinitionProvider.js","sourceRoot":"","sources":["../../../src/definitions/providers/RenderPartialDefinitionProvider.ts"],"names":[],"mappings":";;;AAAA,uEAAoG;AAEpG,mFAKwC;AACxC,2CAAiC;AAKjC,MAAM,eAAe,GAA8B;IACjD,MAAM,EAAE,8BAAS,CAAC,YAAY;IAC9B,OAAO,EAAE,8BAAS,CAAC,YAAY;IAC/B,eAAe,EAAE,8BAAS,CAAC,YAAY;IACvC,QAAQ,EAAE,8BAAS,CAAC,cAAc;IAClC,OAAO,EAAE,8BAAS,CAAC,aAAa;CACjC,CAAC;AAEF,MAAa,+BAA+B;IAC1C,YACU,eAAgC,EAChC,gBAAkC,EAClC,gBAAmC,EACnC,cAAuD;QAHvD,oBAAe,GAAf,eAAe,CAAiB;QAChC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,qBAAgB,GAAhB,gBAAgB,CAAmB;QACnC,mBAAc,GAAd,cAAc,CAAyC;IAC9D,CAAC;IAEJ,KAAK,CAAC,WAAW,CACf,MAAwB,EACxB,IAAoB,EACpB,SAA2B;QAE3B,IAAI,IAAI,CAAC,IAAI,KAAK,8BAAS,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAE9C,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,8BAAS,CAAC,SAAS;YAAE,OAAO,EAAE,CAAC;QAEnE,MAAM,kBAAkB,GAAG,eAAe,CAAE,GAAiB,CAAC,IAAI,CAAC,CAAC;QACpE,IAAI,kBAAkB,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB;YAAE,OAAO,EAAE,CAAC;QAEtF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAExB,MAAM,IAAI,GAAG,gBAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAChC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAI,GAAiB,CAAC,IAAoB,CAAC;QACxD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAChD,IAAI,EACJ,OAAO,EACN,IAAqB,CAAC,KAAK,EAC5B,WAAW,CACZ,CAAC;QACF,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAExB,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACrE,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,CAAC;QAE3B,MAAM,GAAG,GAAG,UAAU,CAAC,YAAY,CAAC;QACpC,MAAM,WAAW,GAAG,sCAAK,CAAC,MAAM,CAC9B,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EACnC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAClC,CAAC;QACF,MAAM,WAAW,GAAG,sCAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE7C,OAAO,CAAC,6CAAY,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;IAC/E,CAAC;CACF;AAhDD,0EAgDC"}
@@ -1,8 +1,10 @@
1
+ import { RouteTable } from '@platformos/platformos-common';
1
2
  import { DocumentManager } from '../documents';
2
3
  import { Dependencies } from '../types';
3
4
  import { DiagnosticsManager } from './DiagnosticsManager';
4
5
  import { AppGraphManager } from '../server/AppGraphManager';
5
- export declare function makeRunChecks(documentManager: DocumentManager, diagnosticsManager: DiagnosticsManager, { fs, loadConfig, platformosDocset, jsonValidationSet, appGraphManager, includeFilesFromDisk, }: Pick<Dependencies, 'fs' | 'loadConfig' | 'platformosDocset' | 'jsonValidationSet'> & {
6
+ export declare function makeRunChecks(documentManager: DocumentManager, diagnosticsManager: DiagnosticsManager, { fs, loadConfig, platformosDocset, jsonValidationSet, appGraphManager, includeFilesFromDisk, getRouteTable, }: Pick<Dependencies, 'fs' | 'loadConfig' | 'platformosDocset' | 'jsonValidationSet'> & {
6
7
  appGraphManager?: AppGraphManager;
7
8
  includeFilesFromDisk?: () => boolean;
9
+ getRouteTable?: () => RouteTable | undefined;
8
10
  }): (triggerURIs: string[]) => Promise<void>;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeRunChecks = makeRunChecks;
4
4
  const platformos_check_common_1 = require("@platformos/platformos-check-common");
5
- function makeRunChecks(documentManager, diagnosticsManager, { fs, loadConfig, platformosDocset, jsonValidationSet, appGraphManager, includeFilesFromDisk, }) {
5
+ function makeRunChecks(documentManager, diagnosticsManager, { fs, loadConfig, platformosDocset, jsonValidationSet, appGraphManager, includeFilesFromDisk, getRouteTable, }) {
6
6
  return async function runChecks(triggerURIs) {
7
7
  // This function takes an array of triggerURIs so that we can correctly
8
8
  // recheck on file renames that came from out of bounds in a
@@ -25,6 +25,7 @@ function makeRunChecks(documentManager, diagnosticsManager, { fs, loadConfig, pl
25
25
  fs,
26
26
  platformosDocset,
27
27
  jsonValidationSet,
28
+ routeTable: getRouteTable?.(),
28
29
  async getReferences(uri) {
29
30
  if (!appGraphManager)
30
31
  return [];
@@ -1 +1 @@
1
- {"version":3,"file":"runChecks.js","sourceRoot":"","sources":["../../src/diagnostics/runChecks.ts"],"names":[],"mappings":";;AAcA,sCA+DC;AA7ED,iFAO6C;AAO7C,SAAgB,aAAa,CAC3B,eAAgC,EAChC,kBAAsC,EACtC,EACE,EAAE,EACF,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,GAIrB;IAED,OAAO,KAAK,UAAU,SAAS,CAAC,WAAqB;QACnD,uEAAuE;QACvE,4DAA4D;QAC5D,cAAc;QACd,EAAE;QACF,yBAAyB;QACzB,uCAAuC;QACvC,oCAAoC;QACpC,EAAE;QACF,uBAAuB;QACvB,MAAM,UAAU,GAAG,IAAA,wCAAc,EAAC,EAAE,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,kCAAQ,EAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;QACxF,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvF,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAEnE,OAAO;QAEP,KAAK,UAAU,gBAAgB,CAAC,iBAAyB;YACvD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;YACvD,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC;YAE1E,MAAM,WAAW,GAAG,MAAM,IAAA,+BAAK,EAAC,GAAG,EAAE,MAAM,EAAE;gBAC3C,EAAE;gBACF,gBAAgB;gBAChB,iBAAiB;gBAEjB,KAAK,CAAC,aAAa,CAAC,GAAW;oBAC7B,IAAI,CAAC,eAAe;wBAAE,OAAO,EAAE,CAAC;oBAChC,OAAO,eAAe,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBAC5C,CAAC;gBAED,KAAK,CAAC,gBAAgB,CAAC,YAAY;oBACjC,MAAM,GAAG,GAAG,8BAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;oBACpD,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACrC,IAAI,GAAG,EAAE,IAAI,KAAK,wCAAc,CAAC,UAAU;wBAAE,OAAO,SAAS,CAAC;oBAC9D,OAAO,GAAG,CAAC,YAAY,EAAE,CAAC;gBAC5B,CAAC;aACF,CAAC,CAAC;YAEH,oEAAoE;YACpE,sEAAsE;YACtE,QAAQ;YACR,KAAK,MAAM,UAAU,IAAI,GAAG,EAAE,CAAC;gBAC7B,MAAM,kBAAkB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC;gBAC3F,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"runChecks.js","sourceRoot":"","sources":["../../src/diagnostics/runChecks.ts"],"names":[],"mappings":";;AAeA,sCAkEC;AAjFD,iFAO6C;AAQ7C,SAAgB,aAAa,CAC3B,eAAgC,EAChC,kBAAsC,EACtC,EACE,EAAE,EACF,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,aAAa,GAKd;IAED,OAAO,KAAK,UAAU,SAAS,CAAC,WAAqB;QACnD,uEAAuE;QACvE,4DAA4D;QAC5D,cAAc;QACd,EAAE;QACF,yBAAyB;QACzB,uCAAuC;QACvC,oCAAoC;QACpC,EAAE;QACF,uBAAuB;QACvB,MAAM,UAAU,GAAG,IAAA,wCAAc,EAAC,EAAE,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,kCAAQ,EAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;QACxF,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvF,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAEnE,OAAO;QAEP,KAAK,UAAU,gBAAgB,CAAC,iBAAyB;YACvD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;YACvD,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC;YAE1E,MAAM,WAAW,GAAG,MAAM,IAAA,+BAAK,EAAC,GAAG,EAAE,MAAM,EAAE;gBAC3C,EAAE;gBACF,gBAAgB;gBAChB,iBAAiB;gBACjB,UAAU,EAAE,aAAa,EAAE,EAAE;gBAE7B,KAAK,CAAC,aAAa,CAAC,GAAW;oBAC7B,IAAI,CAAC,eAAe;wBAAE,OAAO,EAAE,CAAC;oBAChC,OAAO,eAAe,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBAC5C,CAAC;gBAED,KAAK,CAAC,gBAAgB,CAAC,YAAY;oBACjC,MAAM,GAAG,GAAG,8BAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;oBACpD,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACrC,IAAI,GAAG,EAAE,IAAI,KAAK,wCAAc,CAAC,UAAU;wBAAE,OAAO,SAAS,CAAC;oBAC9D,OAAO,GAAG,CAAC,YAAY,EAAE,CAAC;gBAC5B,CAAC;aACF,CAAC,CAAC;YAEH,oEAAoE;YACpE,sEAAsE;YACtE,QAAQ;YACR,KAAK,MAAM,UAAU,IAAI,GAAG,EAAE,CAAC;gBAC7B,MAAM,kBAAkB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC;gBAC3F,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -2,11 +2,13 @@ import { DocumentLink } from 'vscode-languageserver';
2
2
  import { DocumentManager } from '../documents';
3
3
  import { FindAppRootURI } from '../internal-types';
4
4
  import { DocumentsLocator, TranslationProvider } from '@platformos/platformos-common';
5
+ import { SearchPathsLoader } from '../utils/searchPaths';
5
6
  export declare class DocumentLinksProvider {
6
7
  private documentManager;
7
8
  private findAppRootURI;
8
9
  private documentsLocator;
9
10
  private translationProvider;
10
- constructor(documentManager: DocumentManager, findAppRootURI: FindAppRootURI, documentsLocator: DocumentsLocator, translationProvider: TranslationProvider);
11
+ private searchPathsCache;
12
+ constructor(documentManager: DocumentManager, findAppRootURI: FindAppRootURI, documentsLocator: DocumentsLocator, translationProvider: TranslationProvider, searchPathsCache: SearchPathsLoader);
11
13
  documentLinks(uriString: string): Promise<DocumentLink[]>;
12
14
  }
@@ -7,11 +7,12 @@ const vscode_languageserver_1 = require("vscode-languageserver");
7
7
  const vscode_uri_1 = require("vscode-uri");
8
8
  const platformos_check_common_2 = require("@platformos/platformos-check-common");
9
9
  class DocumentLinksProvider {
10
- constructor(documentManager, findAppRootURI, documentsLocator, translationProvider) {
10
+ constructor(documentManager, findAppRootURI, documentsLocator, translationProvider, searchPathsCache) {
11
11
  this.documentManager = documentManager;
12
12
  this.findAppRootURI = findAppRootURI;
13
13
  this.documentsLocator = documentsLocator;
14
14
  this.translationProvider = translationProvider;
15
+ this.searchPathsCache = searchPathsCache;
15
16
  }
16
17
  async documentLinks(uriString) {
17
18
  const sourceCode = this.documentManager.get(uriString);
@@ -24,32 +25,27 @@ class DocumentLinksProvider {
24
25
  if (!rootUri) {
25
26
  return [];
26
27
  }
27
- const visitor = documentLinksVisitor(sourceCode.textDocument, vscode_uri_1.URI.parse(rootUri), this.documentsLocator, this.translationProvider);
28
+ const root = vscode_uri_1.URI.parse(rootUri);
29
+ const searchPaths = await this.searchPathsCache.get(root);
30
+ const visitor = documentLinksVisitor(sourceCode.textDocument, root, this.documentsLocator, this.translationProvider, searchPaths);
28
31
  return (0, platformos_check_common_2.visit)(sourceCode.ast, visitor);
29
32
  }
30
33
  }
31
34
  exports.DocumentLinksProvider = DocumentLinksProvider;
32
- function documentLinksVisitor(textDocument, root, documentsLocator, translationProvider) {
35
+ function documentLinksVisitor(textDocument, root, documentsLocator, translationProvider, searchPaths) {
33
36
  return {
34
37
  async LiquidTag(node) {
35
- if ((node.name === 'render' || node.name === 'include') &&
36
- typeof node.markup !== 'string' &&
37
- isLiquidString(node.markup.partial)) {
38
- const partial = node.markup.partial;
39
- return vscode_languageserver_1.DocumentLink.create(range(textDocument, partial), await documentsLocator.locate(root, node.name, partial.value));
40
- }
41
- if (node.name === 'function' &&
42
- typeof node.markup !== 'string' &&
43
- isLiquidString(node.markup.partial)) {
44
- const partial = node.markup.partial;
45
- return vscode_languageserver_1.DocumentLink.create(range(textDocument, partial), await documentsLocator.locate(root, node.name, partial.value));
38
+ const markup = node.markup;
39
+ if (typeof markup === 'string' || markup === null)
40
+ return;
41
+ const name = node.name;
42
+ // render, include, function, theme_render_rc all have a .partial field
43
+ if ('partial' in markup && isLiquidString(markup.partial)) {
44
+ return vscode_languageserver_1.DocumentLink.create(range(textDocument, markup.partial), await documentsLocator.locate(root, name, markup.partial.value, searchPaths));
46
45
  }
47
- if (node.name === 'graphql' &&
48
- typeof node.markup !== 'string' &&
49
- 'graphql' in node.markup &&
50
- isLiquidString(node.markup.graphql)) {
51
- const snippet = node.markup.graphql;
52
- return vscode_languageserver_1.DocumentLink.create(range(textDocument, snippet), await documentsLocator.locate(root, node.name, snippet.value));
46
+ // graphql has a .graphql field
47
+ if ('graphql' in markup && isLiquidString(markup.graphql)) {
48
+ return vscode_languageserver_1.DocumentLink.create(range(textDocument, markup.graphql), await documentsLocator.locate(root, name, markup.graphql.value));
53
49
  }
54
50
  },
55
51
  async LiquidVariable(node) {
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentLinksProvider.js","sourceRoot":"","sources":["../../src/documentLinks/DocumentLinksProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DocumentLinksProvider.js","sourceRoot":"","sources":["../../src/documentLinks/DocumentLinksProvider.ts"],"names":[],"mappings":"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"}
@@ -136,10 +136,6 @@ class DocumentManager {
136
136
  ...sourceCode,
137
137
  textDocument,
138
138
  /** Lazy and only computed once per file version */
139
- getSchema: (0, platformos_check_common_1.memo)(async () => {
140
- return undefined;
141
- }),
142
- /** Lazy and only computed once per file version */
143
139
  getLiquidDoc: (0, platformos_check_common_1.memo)(async () => {
144
140
  const ast = sourceCode.ast;
145
141
  if ((0, platformos_check_common_1.isError)(ast))
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentManager.js","sourceRoot":"","sources":["../../src/documents/DocumentManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DocumentManager.js","sourceRoot":"","sources":["../../src/documents/DocumentManager.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,5 @@
1
- import { SourceCodeType, SourceCode } from '@platformos/platformos-check-common';
2
- import { JSONNode } from '@platformos/platformos-check-common';
1
+ import { SourceCodeType, SourceCode, DocDefinition } from '@platformos/platformos-check-common';
3
2
  import { TextDocument } from 'vscode-languageserver-textdocument';
4
- import { DocDefinition } from '@platformos/platformos-check-common';
5
- /**
6
- * Reserved for future use. platformOS does not use `{% schema %}` blocks,
7
- * so `getSchema()` always returns `undefined`.
8
- */
9
- export interface SchemaObject {
10
- parsed: any;
11
- validSchema?: unknown;
12
- ast: JSONNode | Error;
13
- offset: number;
14
- }
15
3
  /** Util type to add the common `textDocument` property to the SourceCode. */
16
4
  type _AugmentedSourceCode<SCT extends SourceCodeType = SourceCodeType> = SourceCode<SCT> & {
17
5
  textDocument: TextDocument;
@@ -19,14 +7,7 @@ type _AugmentedSourceCode<SCT extends SourceCodeType = SourceCodeType> = SourceC
19
7
  /** JsonSourceCode + textDocument */
20
8
  export type AugmentedJsonSourceCode = _AugmentedSourceCode<SourceCodeType.JSON>;
21
9
  export type AugmentedGraphQLSourceCode = _AugmentedSourceCode<SourceCodeType.GraphQL>;
22
- /**
23
- * AugmentedLiquidSourceCode may hold the schema for the section or block.
24
- *
25
- * We'll use the SourceCode as the source of truth since we won't need to care
26
- * about cache invalidation and will mean we'll parse the schema at most once.
27
- */
28
10
  export type AugmentedLiquidSourceCode = _AugmentedSourceCode<SourceCodeType.LiquidHtml> & {
29
- getSchema: () => Promise<SchemaObject | undefined>;
30
11
  getLiquidDoc: () => Promise<DocDefinition | undefined>;
31
12
  };
32
13
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/documents/types.ts"],"names":[],"mappings":";;;AAAA,iFAAiF;AAwD1E,MAAM,kBAAkB,GAAG,CAAC,IAAyB,EAAqC,EAAE,CACjG,IAAI,CAAC,IAAI,KAAK,wCAAc,CAAC,UAAU,CAAC;AAD7B,QAAA,kBAAkB,sBACW;AAEnC,MAAM,gBAAgB,GAAG,CAAC,IAAyB,EAAmC,EAAE,CAC7F,IAAI,CAAC,IAAI,KAAK,wCAAc,CAAC,IAAI,CAAC;AADvB,QAAA,gBAAgB,oBACO;AAE7B,MAAM,mBAAmB,GAAG,CAAC,IAAyB,EAAmC,EAAE,CAChG,IAAI,CAAC,IAAI,KAAK,wCAAc,CAAC,OAAO,CAAC;AAD1B,QAAA,mBAAmB,uBACO"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/documents/types.ts"],"names":[],"mappings":";;;AAAA,iFAAgG;AAoCzF,MAAM,kBAAkB,GAAG,CAAC,IAAyB,EAAqC,EAAE,CACjG,IAAI,CAAC,IAAI,KAAK,wCAAc,CAAC,UAAU,CAAC;AAD7B,QAAA,kBAAkB,sBACW;AAEnC,MAAM,gBAAgB,GAAG,CAAC,IAAyB,EAAmC,EAAE,CAC7F,IAAI,CAAC,IAAI,KAAK,wCAAc,CAAC,IAAI,CAAC;AADvB,QAAA,gBAAgB,oBACO;AAE7B,MAAM,mBAAmB,GAAG,CAAC,IAAyB,EAAmC,EAAE,CAChG,IAAI,CAAC,IAAI,KAAK,wCAAc,CAAC,OAAO,CAAC;AAD1B,QAAA,mBAAmB,uBACO"}
@@ -12,6 +12,7 @@ export declare class HoverProvider {
12
12
  readonly getDocDefinitionForURI: GetDocDefinitionForURI;
13
13
  readonly findAppRootURI: FindAppRootURI;
14
14
  private providers;
15
+ private graphqlFieldHoverProvider;
15
16
  constructor(documentManager: DocumentManager, platformosDocset: PlatformOSDocset, translationProvider: TranslationProvider, getTranslationsForURI?: GetTranslationsForURI, getDocDefinitionForURI?: GetDocDefinitionForURI, findAppRootURI?: FindAppRootURI);
16
17
  hover(params: HoverParams): Promise<Hover | null>;
17
18
  }
@@ -7,6 +7,7 @@ const providers_1 = require("./providers");
7
7
  const HtmlAttributeValueHoverProvider_1 = require("./providers/HtmlAttributeValueHoverProvider");
8
8
  const platformos_check_common_2 = require("@platformos/platformos-check-common");
9
9
  const LiquidDocTagHoverProvider_1 = require("./providers/LiquidDocTagHoverProvider");
10
+ const GraphQLFieldHoverProvider_1 = require("./providers/GraphQLFieldHoverProvider");
10
11
  class HoverProvider {
11
12
  constructor(documentManager, platformosDocset, translationProvider, getTranslationsForURI = async () => ({}), getDocDefinitionForURI = async () => undefined, findAppRootURI = async () => null) {
12
13
  this.documentManager = documentManager;
@@ -17,6 +18,7 @@ class HoverProvider {
17
18
  this.findAppRootURI = findAppRootURI;
18
19
  this.providers = [];
19
20
  const typeSystem = new TypeSystem_1.TypeSystem(platformosDocset);
21
+ this.graphqlFieldHoverProvider = new GraphQLFieldHoverProvider_1.GraphQLFieldHoverProvider(platformosDocset, documentManager);
20
22
  this.providers = [
21
23
  new providers_1.LiquidTagHoverProvider(platformosDocset),
22
24
  new providers_1.LiquidFilterArgumentHoverProvider(platformosDocset),
@@ -35,6 +37,10 @@ class HoverProvider {
35
37
  async hover(params) {
36
38
  const uri = params.textDocument.uri;
37
39
  const document = this.documentManager.get(uri);
40
+ // GraphQL files get dedicated hover support
41
+ if (document?.type === platformos_check_common_1.SourceCodeType.GraphQL) {
42
+ return this.graphqlFieldHoverProvider.hover(params);
43
+ }
38
44
  // Supports only Liquid resources
39
45
  if (document?.type !== platformos_check_common_1.SourceCodeType.LiquidHtml || document.ast instanceof Error) {
40
46
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"HoverProvider.js","sourceRoot":"","sources":["../../src/hover/HoverProvider.ts"],"names":[],"mappings":";;;AAAA,iFAI6C;AAE7C,8CAA2C;AAI3C,2CAWqB;AACrB,iGAA8F;AAC9F,iFAAsE;AACtE,qFAAkF;AAGlF,MAAa,aAAa;IAGxB,YACW,eAAgC,EAChC,gBAAkC,EAClC,mBAAwC,EACxC,wBAA+C,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAC/D,yBAAiD,KAAK,IAAI,EAAE,CAAC,SAAS,EACtE,iBAAiC,KAAK,IAAI,EAAE,CAAC,IAAI;QALjD,oBAAe,GAAf,eAAe,CAAiB;QAChC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,0BAAqB,GAArB,qBAAqB,CAA0C;QAC/D,2BAAsB,GAAtB,sBAAsB,CAAgD;QACtE,mBAAc,GAAd,cAAc,CAAmC;QARpD,cAAS,GAAwB,EAAE,CAAC;QAU1C,MAAM,UAAU,GAAG,IAAI,uBAAU,CAAC,gBAAgB,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,GAAG;YACf,IAAI,kCAAsB,CAAC,gBAAgB,CAAC;YAC5C,IAAI,6CAAiC,CAAC,gBAAgB,CAAC;YACvD,IAAI,qCAAyB,CAAC,gBAAgB,CAAC;YAC/C,IAAI,qCAAyB,CAAC,UAAU,CAAC;YACzC,IAAI,8CAAkC,CAAC,UAAU,CAAC;YAClD,IAAI,gCAAoB,EAAE;YAC1B,IAAI,sCAA0B,EAAE;YAChC,IAAI,iEAA+B,EAAE;YACrC,IAAI,oCAAwB,CAAC,eAAe,EAAE,mBAAmB,EAAE,cAAc,CAAC;YAClF,IAAI,sCAA0B,CAAC,sBAAsB,CAAC;YACtD,IAAI,+CAAmC,CAAC,sBAAsB,CAAC;YAC/D,IAAI,qDAAyB,CAAC,eAAe,CAAC;SAC/C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAmB;QAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE/C,iCAAiC;QACjC,IAAI,QAAQ,EAAE,IAAI,KAAK,wCAAc,CAAC,UAAU,IAAI,QAAQ,CAAC,GAAG,YAAY,KAAK,EAAE,CAAC;YAClF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,IAAA,yCAAe,EAC9C,QAAQ,CAAC,GAAG,EACZ,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAChD,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QACpF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;IACvC,CAAC;CACF;AA9CD,sCA8CC"}
1
+ {"version":3,"file":"HoverProvider.js","sourceRoot":"","sources":["../../src/hover/HoverProvider.ts"],"names":[],"mappings":";;;AAAA,iFAI6C;AAE7C,8CAA2C;AAI3C,2CAWqB;AACrB,iGAA8F;AAC9F,iFAAsE;AACtE,qFAAkF;AAClF,qFAAkF;AAGlF,MAAa,aAAa;IAIxB,YACW,eAAgC,EAChC,gBAAkC,EAClC,mBAAwC,EACxC,wBAA+C,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAC/D,yBAAiD,KAAK,IAAI,EAAE,CAAC,SAAS,EACtE,iBAAiC,KAAK,IAAI,EAAE,CAAC,IAAI;QALjD,oBAAe,GAAf,eAAe,CAAiB;QAChC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,0BAAqB,GAArB,qBAAqB,CAA0C;QAC/D,2BAAsB,GAAtB,sBAAsB,CAAgD;QACtE,mBAAc,GAAd,cAAc,CAAmC;QATpD,cAAS,GAAwB,EAAE,CAAC;QAW1C,MAAM,UAAU,GAAG,IAAI,uBAAU,CAAC,gBAAgB,CAAC,CAAC;QACpD,IAAI,CAAC,yBAAyB,GAAG,IAAI,qDAAyB,CAC5D,gBAAgB,EAChB,eAAe,CAChB,CAAC;QACF,IAAI,CAAC,SAAS,GAAG;YACf,IAAI,kCAAsB,CAAC,gBAAgB,CAAC;YAC5C,IAAI,6CAAiC,CAAC,gBAAgB,CAAC;YACvD,IAAI,qCAAyB,CAAC,gBAAgB,CAAC;YAC/C,IAAI,qCAAyB,CAAC,UAAU,CAAC;YACzC,IAAI,8CAAkC,CAAC,UAAU,CAAC;YAClD,IAAI,gCAAoB,EAAE;YAC1B,IAAI,sCAA0B,EAAE;YAChC,IAAI,iEAA+B,EAAE;YACrC,IAAI,oCAAwB,CAAC,eAAe,EAAE,mBAAmB,EAAE,cAAc,CAAC;YAClF,IAAI,sCAA0B,CAAC,sBAAsB,CAAC;YACtD,IAAI,+CAAmC,CAAC,sBAAsB,CAAC;YAC/D,IAAI,qDAAyB,CAAC,eAAe,CAAC;SAC/C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAmB;QAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE/C,4CAA4C;QAC5C,IAAI,QAAQ,EAAE,IAAI,KAAK,wCAAc,CAAC,OAAO,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtD,CAAC;QAED,iCAAiC;QACjC,IAAI,QAAQ,EAAE,IAAI,KAAK,wCAAc,CAAC,UAAU,IAAI,QAAQ,CAAC,GAAG,YAAY,KAAK,EAAE,CAAC;YAClF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,IAAA,yCAAe,EAC9C,QAAQ,CAAC,GAAG,EACZ,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAChD,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QACpF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;IACvC,CAAC;CACF;AAxDD,sCAwDC"}
@@ -0,0 +1,12 @@
1
+ import { Hover, HoverParams } from 'vscode-languageserver';
2
+ import { DocumentManager } from '../../documents';
3
+ import { PlatformOSDocset } from '@platformos/platformos-check-common';
4
+ export declare class GraphQLFieldHoverProvider {
5
+ private platformosDocset;
6
+ private documentManager;
7
+ private schemaCache;
8
+ private schemaLoaded;
9
+ constructor(platformosDocset: PlatformOSDocset, documentManager: DocumentManager);
10
+ private getSchema;
11
+ hover(params: HoverParams): Promise<Hover | null>;
12
+ }