From d54d51f84a4acfad77d5d53a98edc9427e2fd586 Mon Sep 17 00:00:00 2001 From: Karl Horky Date: Thu, 28 Feb 2019 12:45:32 +0100 Subject: [PATCH 1/3] Add MVP of Line Annotations feature --- packages/code-surfer/src/code-surfer.js | 5 +++++ packages/code-surfer/src/step-parser.js | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/code-surfer/src/code-surfer.js b/packages/code-surfer/src/code-surfer.js index 37845e53..0aab5e7c 100644 --- a/packages/code-surfer/src/code-surfer.js +++ b/packages/code-surfer/src/code-surfer.js @@ -72,6 +72,11 @@ const CodeSurfer = ({ })} /> ))} + {step.lineAnnotations && step.lineAnnotations[i] + ? typeof step.lineAnnotations[i] === "function" + ? step.lineAnnotations[i]() + : step.lineAnnotations[i] + : 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); From 7b2987ec3a75f28d58fe7eaee26bf397f8aeed18 Mon Sep 17 00:00:00 2001 From: Karl Horky Date: Wed, 6 Mar 2019 10:42:27 +0100 Subject: [PATCH 2/3] Use 1-based line numbers for annotation keys --- packages/code-surfer/src/code-surfer.js | 73 +++++++++++++------------ 1 file changed, 38 insertions(+), 35 deletions(-) diff --git a/packages/code-surfer/src/code-surfer.js b/packages/code-surfer/src/code-surfer.js index 0aab5e7c..0ab96af1 100644 --- a/packages/code-surfer/src/code-surfer.js +++ b/packages/code-surfer/src/code-surfer.js @@ -44,41 +44,44 @@ const CodeSurfer = ({ })} > - {tokens.map((line, i) => ( -
- {showNumbers && ( - - {(i + 1 + ".").padStart(3)}{" "} - - )} - {line.map((token, key) => ( - - ))} - {step.lineAnnotations && step.lineAnnotations[i] - ? typeof step.lineAnnotations[i] === "function" - ? step.lineAnnotations[i]() - : step.lineAnnotations[i] - : null} -
- ))} + {tokens.map((line, i) => { + const lineNumber = i + 1; + return ( +
+ {showNumbers && ( + + {(lineNumber + ".").padStart(3)}{" "} + + )} + {line.map((token, key) => ( + + ))} + {step.lineAnnotations && step.lineAnnotations[i] + ? typeof step.lineAnnotations[lineNumber] === "function" + ? step.lineAnnotations[lineNumber]() + : step.lineAnnotations[lineNumber] + : null} +
+ ); + })}
)} From 78c8922d350ca37b771d38e61fc326a22c838e6a Mon Sep 17 00:00:00 2001 From: Karl Horky Date: Wed, 6 Mar 2019 11:35:12 +0100 Subject: [PATCH 3/3] Fix missed key --- packages/code-surfer/src/code-surfer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/code-surfer/src/code-surfer.js b/packages/code-surfer/src/code-surfer.js index 0ab96af1..8ba10c2c 100644 --- a/packages/code-surfer/src/code-surfer.js +++ b/packages/code-surfer/src/code-surfer.js @@ -74,7 +74,7 @@ const CodeSurfer = ({ })} /> ))} - {step.lineAnnotations && step.lineAnnotations[i] + {step.lineAnnotations && step.lineAnnotations[lineNumber] ? typeof step.lineAnnotations[lineNumber] === "function" ? step.lineAnnotations[lineNumber]() : step.lineAnnotations[lineNumber]