-
Notifications
You must be signed in to change notification settings - Fork 1.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
Manual needs to be more helpful, friendly, and better organized #9504
Comments
Some notes:
|
That's a great point! We need to incorporate feature configs into our |
Could the manual maybe be remade with mdBook? The step-by-step guide suggested by @matklad could be implemented with links creating a choose your own adventure style experience. It wouldn't be as flashy as a custom website but it would definitely be less burdensome to both create and maintain. It's also in line with the rest of the Rust ecosystem. Currently, the docs are in AsciiDoc which is relatively similar to Markdown, decreasing the work needed to migrate. I'm obviously not an active member of rust-analyzer so I could be missing something or making incorrect assumptions. Is there a specific reason this current setup was chosen? |
I don't have a super-strong opinion with respect to tech stack -- we can switch to mdBook if folks find that more convenient. I do think thought that the book format isn't the best for this info:
Both feel very different than mdBook topical split into chapters. |
mdBook has a full-text search bar at the top, so I think that use case would be covered. |
https://emacs-lsp.github.io/lsp-mode/tutorials/how-to-turn-off/ <- that's a great way to show what features are available. |
I've started a Pull Request for this here: #10791 I wanted to address some of your ideas/my approach, easier to respond here rather than copy/pasting into the above.
Agreed. Lots of information in there! I'm hoping I can help make it easier to navigate.
I think just moving the navigation over makes a world of difference which makes mdbook a decent option (but please let me know if you disagree).
Agreed. Personally, I like the shortest path to get something working, and then I'll go back for more depth. If that shortest path is the first thing the user sees or is at least very easy to find (like a
This could all go in the aforementioned top level
I've essentially kept the same structure as the current manual with my mockup, but I'm happy to move things around if that structure doesn't fit anymore.
We can possibly move this into the CI, or just rework it to use the |
I think we can do this with mdbook, we just need to make it very easy to get to ASAP. See my comments above, but I think putting a
Right now my mockup has them as separate md files, but the full list should alway be |
The current online manual is missing a complete reference of all configuration options, their possible values, related descriptions and other meta information. It is not useful when configuring rust-analyzers e.g. enum parameters. I have already written about that in issue 13179 and implemented a proof of concept. |
rust-analyzer manual is pretty long: https://rust-analyzer.github.io/manual.html
It's useful as a reference, but is quite intimidating if you want to learn the tool. We should improve this, both in terms of logical organization, and in terms of HTML&CSS rendering. I am not experienced with it, so help would be much appreciated.
I think ideally the manual shows a short pit of success, while giving the links to in-depth reference material. Here's a structure I have in mind:
First is quick start, which suggests choosing an editor (VS Code, Vim, Emacs). For a specific editor, we have a single blessed setup. After the setup, we have a short section show-casing the most important features (worksapce symbol, go to definiton, extend selection, running tests, triggering assists). This should be duplicated for editor, and serves two purposes -- teaches about the features and allows the new user to verify if the stuff is working. Aftre quick start and show case, we show how to configure rust-analyzer in the specific editor. After that, we show alterntive setups
After per-editor quick start, we probably want to re-create show case, with the emprasis on how it looks and why it is useful, rather than on which shourtcur do you use to trigger this.
After universal show-case, we should have an index of features, which leads to specific pages for diagnostics, assists, etc.
After that, we should have troubleshooting and other stuff.
As I've said, I am not an expert at this: if you think you see a better way to do this, feel free to suggest. The source for manual lives here: https://github.com/rust-analyzer/rust-analyzer/tree/master/docs/user.
It is render to a web document here: https://github.com/rust-analyzer/rust-analyzer.github.io
The code to move the manual from the first place to the second place is here: https://github.com/rust-analyzer/rust-analyzer/blob/91bfa4b154a9776a57f25071f03e68d4f9f5ef35/xtask/src/release.rs#L25-L50
The text was updated successfully, but these errors were encountered: