Text
+ + +`.trim(); + export const defaultCode: Code = { javascript: defaultJsCode, json: defaultJsonCode, markdown: defaultMarkdownCode, css: defaultCssCode, + html: defaultHtmlCode, }; export const defaultJsOptions: JsOptions = { diff --git a/src/lib/convert-nodes-to-ranges.ts b/src/lib/convert-nodes-to-ranges.ts index 75c4d6b3..3d44c045 100644 --- a/src/lib/convert-nodes-to-ranges.ts +++ b/src/lib/convert-nodes-to-ranges.ts @@ -18,6 +18,11 @@ export function convertNodesToRanges( node.loc.start.offset, node.loc.end.offset, ] satisfies HighlightedRange; + } else if (isNodeWithRange(node)) { + return [ + node.range[0], + node.range[1], + ] satisfies HighlightedRange; } }) .filter(range => range !== undefined); @@ -42,6 +47,10 @@ type PositionElem = { offset: number; }; +type NodeWithRange = { + range: [number, number]; +}; + function isNodeWithStartEnd(node: unknown): node is NodeWithStartEnd { return ( typeof node === "object" && @@ -92,3 +101,15 @@ function isNodeWithLoc(node: unknown): node is NodeWithLoc { typeof node.loc.end.offset === "number" ); } + +function isNodeWithRange(node: unknown): node is NodeWithRange { + return ( + typeof node === "object" && + node !== null && + "range" in node && + Array.isArray(node.range) && + node.range.length === 2 && + typeof node.range[0] === "number" && + typeof node.range[1] === "number" + ); +} diff --git a/vite.config.ts b/vite.config.ts index be6ff70f..12d2773b 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -9,6 +9,9 @@ export default defineConfig({ "@": path.resolve(__dirname, "src"), }, }, + optimizeDeps: { + include: ["@html-eslint/eslint-plugin"], + }, build: { outDir: "build", },