-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create something akin to vimtutor
for Helix
#506
Comments
VIm tutor is basically a text file which contains explanations of keys, and some examples to work on, right? I had a look at this site for thus info, because I never used vim: here If so, can I have a go at this? |
Yes, |
Kakoune has something similar: https://github.com/mawww/kakoune/blob/master/contrib/TRAMPOLINE |
I know this doesn't have to do with the tutorial itself, but what if we were to copy that title page idea?
|
Actually a good idea, but I would suggest using some other format, rather than the exact one used by Kakoune... |
I don't think I like the format of this in comparison to Vimtutor. The latter emphasizes that the user should learn by doing, rather than trying to memorize everything, and provides tasks for the user to complete using what is taught in each lesson. Whereas Kakoune's seems to just list the keys and describe what they do. |
How about I do it like
|
As long as it maintains Vimtutor's premise of learning by doing by giving the user small tasks to perform using the skills they learn. Also, you might want to open a draft PR so that you can receive feedback as you work on this. |
As someone who finds the project quite neat but a bit clueless about its full potential and advance usage I'll just stick around to watch how tutorials and documentation get better 👀 |
Ok, a partial tutorial has been added by #537. I'll leave this open until the tutorial is completed. |
Should there be some kind of explanation on using LSP and TS features within tutor? TS features should be fairly straightforward, show some example code in whatever language, and ask them to navigate with go to next function and things like that. For the language server it's a bit tricky since we can't really rely on the user having any specific language server installed can we? |
Both are difficult to add to the current tutor because they need the document to be a language with tree-sitter and language-server support and currently it's text, plus it would need you to install the language server for that language. That may be better left off as a separate git project similar to https://github.com/rust-lang/rustlings |
It'd be cool if the tutor file was somehow templated from the configured keybinds so it would always display the correct instructions even if the user had rebound the key. I imagine this would be pretty difficult to implement though. |
in I might be the only one, but this kind of thing stops me in my tracks and I stop following the tutor and do something else, unrelated, instead. ie. it's easy to give up on helix when tiny things like this happen, and just fall back to nvim. |
That's #3842. |
We might want to remove the As such,
I was a bit surprised that That makes writing a chapter on the match minor mode a bit tricky. I also tried this in a markdown file with a rust block, hoping that the language injection feature would allow using matching mode movements inside it, but it seems it's only used for highlighting (edit: with #5176, making the tutor a markdown file would let us use other languages to demonstrate tree-sitter features) |
i was thinking exact same thing :) |
Perhaps the TS and LSP lessons could be implemented in multiple languages, and There's probably only a handful of languages needed to significantly cover the user base |
We could also wait for the plugin system, and either ship the TS and LSP for the plugin system's language, or privilege that language by having |
I'm doing the tutor. I know I'm nitpicking... sorry! D: Might want to remove such hints, as they would probably cause more confusion than anything for someone not well versed in different keyboard layouts. |
This would introduce the user to modal editing, and to Helix's commands and its multiple selections. I think it could be opened via something like
hx --tutor
, or opened from within the editor with:tutor
.This is currently WIP. Current progress can be found in
runtime/tutor.txt
.PRs:
vimtutor
#537hx --tutor
and:tutor
to loadtutor.txt
#898Todos:
hx --tutor
and:tutor
to load tutorial into a buffer (Implementhx --tutor
and:tutor
to loadtutor.txt
#898)The text was updated successfully, but these errors were encountered: