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>

32 lines 1.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RenderSnippetCompletionProvider = void 0; const liquid_html_parser_1 = require("@shopify/liquid-html-parser"); const vscode_languageserver_1 = require("vscode-languageserver"); class RenderSnippetCompletionProvider { constructor(getSnippetNamesForURI = async () => []) { this.getSnippetNamesForURI = getSnippetNamesForURI; } async completions(params) { if (!params.completionContext) return []; const { node } = params.completionContext; if (!node || node.type !== liquid_html_parser_1.NodeTypes.RenderMarkup || node.snippet.type !== liquid_html_parser_1.NodeTypes.String) { return []; } const options = await this.getSnippetNamesForURI(params.textDocument.uri); const partial = node.snippet.value; return options .filter((option) => option.startsWith(partial)) .map((option) => ({ label: option, kind: vscode_languageserver_1.CompletionItemKind.Snippet, documentation: { kind: 'markdown', value: `snippets/${option}.liquid`, }, })); } } exports.RenderSnippetCompletionProvider = RenderSnippetCompletionProvider; //# sourceMappingURL=RenderSnippetCompletionProvider.js.map