@shopify/theme-language-server-common
Version:
<h1 align="center" style="position: relative;" > <br> <img src="https://github.com/Shopify/theme-check-vscode/blob/main/images/shopify_glyph.png?raw=true" alt="logo" width="141" height="160"> <br> Theme Language Server </h1>
29 lines • 1.32 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.ObjectCompletionProvider = void 0;
const liquid_html_parser_1 = require("@shopify/liquid-html-parser");
const vscode_languageserver_1 = require("vscode-languageserver");
const params_1 = require("../params");
const common_1 = require("./common");
class ObjectCompletionProvider {
constructor(typeSystem) {
this.typeSystem = typeSystem;
}
async completions(params) {
if (!params.completionContext)
return [];
const { partialAst, node } = params.completionContext;
if (!node || node.type !== liquid_html_parser_1.NodeTypes.VariableLookup) {
return [];
}
if (!node.name || node.lookups.length > 0) {
// We only do top level in this one.
return [];
}
const partial = node.name.replace(params_1.CURSOR, '');
const options = await this.typeSystem.availableVariables(partialAst, partial, node, params.textDocument.uri);
return options.map(({ entry, type }) => (0, common_1.createCompletionItem)(entry, { kind: vscode_languageserver_1.CompletionItemKind.Variable }, 'object', type));
}
}
exports.ObjectCompletionProvider = ObjectCompletionProvider;
//# sourceMappingURL=ObjectCompletionProvider.js.map
;