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>

31 lines (24 loc) 891 B
import { LiquidHtmlNode, LiquidRawTag } from '@shopify/liquid-html-parser'; import { SourceCodeType, visit, Visitor } from '@shopify/theme-check-common'; export function fileMatch(uri: string, patterns: RegExp[]): boolean { return patterns.some((pattern) => pattern.test(uri)); } export function isSectionFile(uri: string): boolean { return /\/sections\/[^/]*\.liquid$/.test(uri); } export function isBlockFile(uri: string): boolean { return /\/blocks\/[^/]*\.liquid$/.test(uri); } export function isSectionOrBlockFile(uri: string): boolean { return isSectionFile(uri) || isBlockFile(uri); } export function findSchemaNode(ast: LiquidHtmlNode): LiquidRawTag | undefined { const nodes = visit(ast, { LiquidRawTag(node) { if (node.name === 'schema') { return node; } }, } as Visitor<SourceCodeType.LiquidHtml, LiquidRawTag>); return nodes[0]; }