UNPKG

@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
"use strict"; 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