in beta/src/components/MDX/CodeBlock/CodeBlock.tsx [132:165]
function getInlineHighlights(metastring: string, code: string) {
const INLINE_HIGHT_REGEX = /(\[\[.*\]\])/;
const parsedMetastring = INLINE_HIGHT_REGEX.exec(metastring);
if (!parsedMetastring) {
return [];
}
const lines = code.split('\n');
const encodedHiglights = JSON.parse(parsedMetastring[1]);
return encodedHiglights.map(([step, lineNo, substr, fromIndex]: any[]) => {
const line = lines[lineNo - 1];
let index = line.indexOf(substr);
const lastIndex = line.lastIndexOf(substr);
if (index !== lastIndex) {
if (fromIndex === undefined) {
throw Error(
"Found '" +
substr +
"' twice. Specify fromIndex as the fourth value in the tuple."
);
}
index = line.indexOf(substr, fromIndex);
}
if (index === -1) {
throw Error("Could not find: '" + substr + "'");
}
return {
step,
line: lineNo,
startColumn: index,
endColumn: index + substr.length,
};
});
}