diff --git a/packages/code-surfer/src/code-surfer.js b/packages/code-surfer/src/code-surfer.js index 37845e53..8ba10c2c 100644 --- a/packages/code-surfer/src/code-surfer.js +++ b/packages/code-surfer/src/code-surfer.js @@ -44,36 +44,44 @@ const CodeSurfer = ({ })} > - {tokens.map((line, i) => ( -
- {showNumbers && ( - - {(i + 1 + ".").padStart(3)}{" "} - - )} - {line.map((token, key) => ( - - ))} -
- ))} + {tokens.map((line, i) => { + const lineNumber = i + 1; + return ( +
+ {showNumbers && ( + + {(lineNumber + ".").padStart(3)}{" "} + + )} + {line.map((token, key) => ( + + ))} + {step.lineAnnotations && step.lineAnnotations[lineNumber] + ? typeof step.lineAnnotations[lineNumber] === "function" + ? step.lineAnnotations[lineNumber]() + : step.lineAnnotations[lineNumber] + : null} +
+ ); + })}
)} diff --git a/packages/code-surfer/src/step-parser.js b/packages/code-surfer/src/step-parser.js index 2b9b5fb8..6a91df76 100644 --- a/packages/code-surfer/src/step-parser.js +++ b/packages/code-surfer/src/step-parser.js @@ -67,7 +67,10 @@ const getTokensPerLineFromString = step => { export const mapStep = step => { if (typeof step === "string") { return getTokensPerLineFromString(step); - } else if (Object.keys(step).length === 0) { + } else if ( + Object.keys(step).length === 0 || + (Object.keys(step).length === 1 && step.lineAnnotations) + ) { return { all: true }; } else { return getTokensPerLineFromObject(step);