Typing Mirror is a VS Code extension that opens a code file on the right as a reference and gives the user an empty editor on the left to type into.
As the user types, the reference editor tracks progress:
typed matching text is dimmed in the reference file
the next character is highlighted
the reference editor scrolls along with progress
the typing editor can show the rest of the current reference line as inline ghost text accepted with Tab
spacing and line-break differences are tolerated
comments are visible but skipped, including //, #, /* ... */, and Python triple-quoted comment blocks
comments can be automatically inserted into the typing editor as they are reached
the typing editor keeps syntax highlighting without auto-inserting matching (), {}, [], quotes, or backticks
text that truly diverges from the reference is highlighted in the typing editor
Use
Open this folder in VS Code.
Press F5 to launch an Extension Development Host.
In the new VS Code window, open any code file.
Run Typing Mirror: Start From Current File from the Command Palette, click the preview icon in the editor title bar, right-click in the editor, or right-click a file in Explorer.
Type in the empty editor on the left while the original file stays visible on the right.
The extension can also auto-start when a code file is opened if you enable typingMirror.autoStartOnOpen.
Settings
typingMirror.autoStartOnOpen: starts automatically when a code file is opened. Defaults to false.
typingMirror.maxAutoStartFileSizeKb: skips very large files for automatic starts. Defaults to 512.
typingMirror.showCommentsInTypingEditor: inserts reference comments into the typing editor as progress reaches them. Defaults to true.
typingMirror.inlineSuggestions: shows the rest of the current reference line as inline ghost text in the typing editor. Defaults to true.
Other Functions
Opening a folder with a compilation of files, while the extension is activated press "Shift+arrowUp" or "Shift+arrowDown" to cycle
Enable comments on editor or disable on the settings menu
Notes
project has only been tested on .cpp files. Will update on other file supports