-
Notifications
You must be signed in to change notification settings - Fork 5
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
Improve initial install experience #37
Comments
Hi,
It depends. In most cases, the global installation of
In 99% cases Rubyists rely on a version manager like
No idea, I will ask on social media about that. Even the latest Ruby survey does not have such topic. I was thinking about potential UX improvements and the only way to improve it is to allow a Zed extension to run system commands but that raises many security concerns. Overall, I am happy to help with anything that aims to improve UX of the Ruby extension. |
Fixing the docs is a good start, but as mentioned in #zed-industries/zed/, I would like to get to the point where Zed's ruby integration can install and configures the language server out of the box. I think you're right that this requires making extensions more powerful, and I also think that's the right trade-off. Given that today they can download arbitrary code from GitHub and run that, it doesn't seem too bad to let them run some code off the bat. What I was imagining is a way for extensions to whitelist in the manifest the things they need to do:
If we were to do something like that, would it actually be enough though? :D I think it's also important that extensions don't modify people's projects, so we wouldn't want to add things to the Gemfile by default (though we should obviously use the ruby-lsp from the Gemfile if it exists). I also know that there's a significant amount of variation in how gems get installed globally. I was wondering if we could emulate what we do with typescript and set up a fake project in a temporary directory, and run the lsp from there (if they don't already have it in the Gemfile of course); the challenge I guess would be making sure we're using the correct ruby in that directory |
I am not sure about this idea since I am not familiar with Zed codebase but I was actually thinking about providing
And so on. That should give flexibility to the Ruby extension and other extensions that rely on Ruby ecosystem. For example, the Ruby DX will be like this:
I spent some time today to craft PoC: zed-industries/zed#25350 To test it you need to:
I also pushed a version of Ruby extension that uses this runtime to illustrate how it looks in action. Let me know what do you think. Thanks! |
Wow, incredible! Thank you :D. I'll take some time to review this and try to get back to you early next week, but I like this idea a lot. |
Currently the UX for a new user installing the Ruby extension is somewhat sub-par. If you do not have solargraph or ruby-lsp installed and available in your path, the extension kicks an error:
Some of this may just be a need for better zed ruby docs.
For example on macos you would need to do the following:
homebrew
ruby)?ruby-lsp-rails
,ruby-lsp-rspec
)?I'm going to see if I can improve the docs to make sure they work for setting up from a clean mac, but wanted to see if anyone had feedback or other suggestions on how to improve first time user experience.
cc: @vitallium, @ConradIrwin
The text was updated successfully, but these errors were encountered: