Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Cursorless tutorial units 1 & 2 (#360)
<img width="773" alt="image" src="https://github.com/user-attachments/assets/ae0d024b-a810-4eab-add5-732f1171d9ef"> ## Todo - [x] Install locally and try everything out - [x] Try "cursorless docs" both inside and outside of VSCode - [x] I have not broken the cheatsheet - [x] Make it more obvious that the tutorial list is a list of all tutorials - [x] Change what we show when tutorial prereqs no longer met, eg "prereqs not met, feel free to keep playing, and say resume to resume" - [x] Add note at end of unit 1 suggesting they continue to play with the document - [x] Tune tutorial content. Move / add docs tip to end of first tutorial. More stuff maybe better for follow-up PR - [x] Point out that we're using highlights for marks in first tutorial step - [x] Have "tutorial exit" command and corresponding button - [x] Add paragraph break between sentences in step - [x] Workshop the actual text in the editor itself so that it indicates they should look at the side bar - [x] Make color of commands stand out more - [x] Properly support custom actions and other necessary custom spoken forms - [x] Store current progress in local storage (and sync it) - [x] Properly support custom symbol spoken forms (eg alphabet) - [x] Add "tutorial restart" - [x] I have added [tests](https://www.cursorless.org/docs/contributing/test-case-recorder/) - [x] Fix scope tree view - [x] How to handle disabled hat color? - [x] Figure out unicode for emoji - [x] Figure out what "cursorless tutorial" should actually do. Currently starts second tutorial, which is obv not what we want - [x] Figure out how to advance from last step of initial tutorial, as it has no action to perform - [x] Add "tutorial next" / "tutorial previous" commands - [x] Add tutorial step saying to use "cursorless help" cheatsheat - [x] Fix broken references to css eg reset - [x] Invalidate state if custom spoken forms change - [x] Change view when we detect that prereqs are no longer met (eg cursor in wrong place, etc). Indicate they should say "tutorial continue" / "tutorial restore" / "cursorless tutorial" to reset the prereqs - [x] Merge HUD changes - [x] Figure out how to properly detect VSCode focused - [x] Highlight marks that need to be targeted, so user doesn't have to search for them - [x] Remove print statements and commented out code from `tutorial.py` - [x] Figure out how to only run step preparation when you have the right window focused. Some of the time @pokey gets error message after "cursorles help" step <img width="385" alt="image" src="https://github.com/cursorless-dev/cursorless/assets/755842/fc9bbcbd-111c-48e0-80b5-beeed8dafaea"> - [x] Open new window on start? - [x] Ensure you're in the right window / editor before restoring state, so we don't accidentally clobber something - [x] Get it to work with mainline Talon HUD - [x] Finish constructing spoken forms from commands - [x] Use [app name](https://github.com/pokey/cursorless-vscode/blob/a81dd0ce5f6359482fe9afc55a47ceb142cac17d/cursorless-talon/src/tutorial.py#L17) for VSCode that works cross-platform - [x] Figure out what todo with the fact that the cheatsheet clobbers the entire screen and you can't even see the close button (#619) See also cursorless-dev/cursorless-talon#143 ### Unit 2 - Python - Have an action class? To cover: - [x] New scope types - [x] New actions, including - [x] single argument "bring" - [x] multiple argument "bring" - [x] "move" - [x] "swap" - [x] Simple inference in the context of multiple target actions such as swap or bring ### Extra unit - [x] Probably want to move this into a new pull request - [x] Create a json script for it - [x] Don't forget to add the intermediate steps where it was not a cursorless command and so isn't recorded ## Links ### Helpful places in our code base - https://github.com/cursorless-dev/cursorless/blob/main/packages/cursorless-vscode-e2e/src/suite/recorded.vscode.test.ts sets up file to initial state of tutorial step - to generate a spoken form from the command payload in the yaml: https://github.com/cursorless-dev/cursorless/blob/a9cc79f287a0278faf1198f9775cef6932630800/packages/cursorless-engine/src/scopeProviders/ScopeInfoProvider.ts#L95 - this is where you'll send a command to cursorless requesting it to set up initial tutorial step state and have it return generated spoken form: https://github.com/cursorless-dev/cursorless/pull/360/files#diff-5c1cd9d422f7c8df0325fd0958446c90873fb338c462287ef5f57606a363658bR35-R37 - registering a new command extension-side https://github.com/cursorless-dev/cursorless/blob/a9cc79f287a0278faf1198f9775cef6932630800/packages/cursorless-vscode/src/extension.ts#L125 ### In case we decided to look into VSCode walkthroughs rather than Talon hud - https://code.visualstudio.com/api/references/contribution-points#contributes.walkthroughs --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
- Loading branch information