Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Our CodeBlock uses the same mechanism for highlighting as regular Sandpack instance. This isn't great for two reasons:
This rewrites the logic to be 100% inline without dependency on Sandpack. Instead, we roughly do what the Sandpack implementation does under the hood. We also remove a bunch of logic we don't need (like actually initializing CodeMirror). I've reimplemented the logic for placing highlights and decorations by hand.
Ideally, this would run only on the server. If we had Server Components, this would be one, but since we don't yet, I'll send a follow-up PR to do some ad-hoc preprocessing so this never has to run on the client.