@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.
- package/CHANGELOG.md +43 -0
- package/dist/PropertyShapeInference.d.ts +5 -0
- package/dist/PropertyShapeInference.js +28 -0
- package/dist/PropertyShapeInference.js.map +1 -1
- package/dist/TypeSystem.js +117 -60
- package/dist/TypeSystem.js.map +1 -1
- package/dist/VariableShapeExtractor.js +2 -4
- package/dist/VariableShapeExtractor.js.map +1 -1
- package/dist/codeActions/CodeActionsProvider.d.ts +1 -1
- package/dist/codeActions/providers/GenerateDocBlockProvider.d.ts +10 -0
- package/dist/codeActions/providers/GenerateDocBlockProvider.js +39 -0
- package/dist/codeActions/providers/GenerateDocBlockProvider.js.map +1 -0
- package/dist/commands/providers/GenerateDocBlockCommandProvider.d.ts +19 -0
- package/dist/commands/providers/GenerateDocBlockCommandProvider.js +64 -0
- package/dist/commands/providers/GenerateDocBlockCommandProvider.js.map +1 -0
- package/dist/completions/CompletionsProvider.d.ts +1 -0
- package/dist/completions/CompletionsProvider.js +6 -0
- package/dist/completions/CompletionsProvider.js.map +1 -1
- package/dist/completions/params/LiquidCompletionParams.js +7 -2
- package/dist/completions/params/LiquidCompletionParams.js.map +1 -1
- package/dist/completions/providers/GraphQLFieldCompletionProvider.d.ts +12 -0
- package/dist/completions/providers/GraphQLFieldCompletionProvider.js +75 -0
- package/dist/completions/providers/GraphQLFieldCompletionProvider.js.map +1 -0
- package/dist/definitions/DefinitionProvider.d.ts +19 -1
- package/dist/definitions/DefinitionProvider.js +33 -1
- package/dist/definitions/DefinitionProvider.js.map +1 -1
- package/dist/definitions/providers/PageRouteDefinitionProvider.d.ts +51 -0
- package/dist/definitions/providers/PageRouteDefinitionProvider.js +204 -0
- package/dist/definitions/providers/PageRouteDefinitionProvider.js.map +1 -0
- package/dist/definitions/providers/RenderPartialDefinitionProvider.d.ts +14 -0
- package/dist/definitions/providers/RenderPartialDefinitionProvider.js +50 -0
- package/dist/definitions/providers/RenderPartialDefinitionProvider.js.map +1 -0
- package/dist/diagnostics/runChecks.d.ts +3 -1
- package/dist/diagnostics/runChecks.js +2 -1
- package/dist/diagnostics/runChecks.js.map +1 -1
- package/dist/documentLinks/DocumentLinksProvider.d.ts +3 -1
- package/dist/documentLinks/DocumentLinksProvider.js +16 -20
- package/dist/documentLinks/DocumentLinksProvider.js.map +1 -1
- package/dist/documents/DocumentManager.js +0 -4
- package/dist/documents/DocumentManager.js.map +1 -1
- package/dist/documents/types.d.ts +1 -20
- package/dist/documents/types.js.map +1 -1
- package/dist/hover/HoverProvider.d.ts +1 -0
- package/dist/hover/HoverProvider.js +6 -0
- package/dist/hover/HoverProvider.js.map +1 -1
- package/dist/hover/providers/GraphQLFieldHoverProvider.d.ts +12 -0
- package/dist/hover/providers/GraphQLFieldHoverProvider.js +85 -0
- package/dist/hover/providers/GraphQLFieldHoverProvider.js.map +1 -0
- package/dist/json/completions/providers/BlockTypeCompletionProvider.d.ts +4 -3
- package/dist/json/completions/providers/BlockTypeCompletionProvider.js +5 -10
- package/dist/json/completions/providers/BlockTypeCompletionProvider.js.map +1 -1
- package/dist/json/hover/providers/BlockSettingsHoverProvider.js +5 -10
- package/dist/json/hover/providers/BlockSettingsHoverProvider.js.map +1 -1
- package/dist/json/schemaSettings.d.ts +3 -3
- package/dist/json/schemaSettings.js.map +1 -1
- package/dist/renamed/handlers/BlockRenameHandler.d.ts +3 -3
- package/dist/renamed/handlers/BlockRenameHandler.js +86 -15
- package/dist/renamed/handlers/BlockRenameHandler.js.map +1 -1
- package/dist/renamed/handlers/SectionRenameHandler.d.ts +3 -3
- package/dist/renamed/handlers/SectionRenameHandler.js +3 -3
- package/dist/renamed/handlers/SectionRenameHandler.js.map +1 -1
- package/dist/server/AppGraphManager.js +3 -4
- package/dist/server/AppGraphManager.js.map +1 -1
- package/dist/server/CachedFileSystem.js +7 -2
- package/dist/server/CachedFileSystem.js.map +1 -1
- package/dist/server/startServer.js +71 -5
- package/dist/server/startServer.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/searchPaths.d.ts +21 -0
- package/dist/utils/searchPaths.js +34 -0
- package/dist/utils/searchPaths.js.map +1 -0
- package/package.json +6 -4
- package/src/PropertyShapeInference.spec.ts +44 -0
- package/src/PropertyShapeInference.ts +27 -0
- package/src/TypeSystem.spec.ts +59 -0
- package/src/TypeSystem.ts +132 -63
- package/src/VariableShapeExtractor.ts +2 -4
- package/src/completions/CompletionsProvider.ts +11 -0
- package/src/completions/params/LiquidCompletionParams.ts +7 -2
- package/src/completions/providers/GraphQLFieldCompletionProvider.ts +78 -0
- package/src/definitions/DefinitionProvider.ts +52 -0
- package/src/definitions/providers/PageRouteDefinitionProvider.spec.ts +753 -0
- package/src/definitions/providers/PageRouteDefinitionProvider.ts +250 -0
- package/src/definitions/providers/RenderPartialDefinitionProvider.spec.ts +191 -0
- package/src/definitions/providers/RenderPartialDefinitionProvider.ts +70 -0
- package/src/diagnostics/runChecks.ts +4 -0
- package/src/documentLinks/DocumentLinksProvider.spec.ts +131 -10
- package/src/documentLinks/DocumentLinksProvider.ts +23 -32
- package/src/documents/DocumentManager.ts +0 -4
- package/src/documents/types.ts +1 -21
- package/src/hover/HoverProvider.ts +11 -0
- package/src/hover/providers/GraphQLFieldHoverProvider.spec.ts +124 -0
- package/src/hover/providers/GraphQLFieldHoverProvider.ts +90 -0
- package/src/server/AppGraphManager.ts +3 -5
- package/src/server/CachedFileSystem.ts +11 -2
- package/src/server/startServer.ts +85 -5
- package/src/utils/searchPaths.spec.ts +101 -0
- 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":";;
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
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":";;;AAAA,
|
|
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,
|
|
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;
|
|
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
|
+
}
|