Closed hahuang65 closed 2 weeks ago
Thank you for the bug report! Some questions to help understand what's happening.
ruby -e 'puts [Gem.user_dir, Gem.default_dir]'
@vinistock thanks for the quick response. I just realized, it's a little more complicated.
I'm not using this in VS Code. I'm using it in Neovim. It's not the preview release. It's just 0.13.1
.
It's actually installed using a neovim package manager called mason
: https://github.com/mason-org/mason-registry/blob/main/packages/ruby-lsp/package.yaml
I'm using asdf
as my version manager for ruby
To answer question 3:
/Users/hhhuang/.gem/ruby/3.1.0
/Users/hhhuang/.asdf/installs/ruby/3.1.4/lib/ruby/gems/3.1.0
I'm certain that mason
is NOT running my asdf
ruby version (which is 3.1.4).. that said, should that actually matter?
ruby-lsp
is supposed to be self-contained correct? If I'm able to install ruby-lsp
, it should be able to install and find it's own dependencies, regardless of if I'm in a bundler
project, or just working on a single .rb
file?
What's a bit confusing to me is that it seems to be installing prism
, but then it doesn't look for the gem in the same place?
I'm certain that mason is NOT running my asdf ruby version (which is 3.1.4).. that said, should that actually matter?
This might be the issue. Depending on how you install the ruby-lsp
, it might be installed in one GEM_HOME
and then when it tries to execute it picks up a different one (thus not finding the gems).
FWIW, in the VS Code extension we always activate the environment before launching the server to ensure that the right Ruby environment variables are set.
You could try to change your launch configuration to activate the asdf
environment first and see if that solves the issue (which indicates that indeed the GEM_HOME
changed between installing and executing the gem).
I don't know asdf
, but something like
# No idea if the command exists, but you get the gist
asdf use 3.1.4 && ruby-lsp
# With chruby it would be
chruby 3.1.4 && ruby-lsp
@vinistock that's been my workaround. I can use ~/.asdf/shims/ruby-lsp
, but this involves installing ruby-lsp
to each ruby
version that I have installed with asdf
.
I was hoping, because nvim-mason
does install ruby-lsp
globally, I could use that, since it would make my neovim setup much more portable.
In my mind, it seemed like ruby-lsp
could be installed globally, as it's a standalone gem, and not one that needs to be included in a bundle
.
Needing to install ruby-lsp
with each Ruby version sort of negates that benefit.
The Ruby LSP connects to your project's bundle to identify which formatter/linter you are using and which gems to index for hover, definition and completion.
That's why we always recommend running the server with the same Ruby version as your current project. Otherwise, booting the server could fail if you have a gem that doesn't support the Ruby version you are currently running with.
If you use a global installation, it might work as long as the gems on your projects are all compatible with that Ruby version. But because we need to have access to the gems, we need the bundle to be satisfied so that Bundler adds all of their paths into the $LOAD_PATH
. Which means we need to install the project gems under your global installation.
If the project's Ruby version doesn't match the global version, then when you boot the LSP with the global one it'll identify that some gems aren't installed on that version, triggering it to install them.
For example, if you use RuboCop with extensions (e.g.: rubocop-performance
, rubocop-rails
, etc), there's no way we could provide formatting unless we had the bundle fully satisfied. We need RuboCop and all its extensions to be installed, so that we can format using the exact same configuration your project has.
I had the same issue. I use rbenv on ubuntu.
My fix was updating cmd
:
local capabilities = require('cmp_nvim_lsp').default_capabilities()
local lsp_config = require("lspconfig")
lsp_config.ruby_ls.setup {
capabilities = capabilities,
cmd = {"/home/my_user/.rbenv/shims/ruby-lsp"},
}
The ruby-lsp now won't crash anymore, and it won't need to install the bundle for the default ruby version:
"Ruby LSP> Skipping custom bundle setup since /home/my_user/RubyProjects/my_project/.ruby-lsp/Gemfile.lock already exists and is up to date\n"
"Ruby LSP> Running bundle install for the custom bundle. This may take a while...\nRuby LSP> Command: (bundle check || bundle install)
"The Gemfile's dependencies are satisfied\n"
"Starting Ruby LSP v0.13.4...\n"
"Ruby LSP is ready\n"
@hahuang65 I hit a similar issue using asdf
. It seems to be fixed by adding
cmd = { "/Users/samgarson/.asdf/shims/ruby-lsp" }
to the lspconfig setup for ruby_ls
I think it makes sense to use the shim executable. I suppose it probably points to whatever Ruby version is currently activated, which is basically the same approach we take in the VS Code extension.
Does someone want to contribute a section explaining this in https://github.com/Shopify/ruby-lsp/blob/main/EDITORS.md? I think it's worth pointing out in the documentation for clients that need to configure the command they execute.
Same as the OP of this issue, I got this error when trying to set ruby-lsp
for Neovim editor with mason and mason-lspconfig:
Ruby Version: 3.1.4
NeoVim version: NVIM v0.9.5
Version manager: RVM 1.29.12-next
OS: MacOS Sonoma 14.2.1
mason
UI, I thought it was going to work out of the box but it did not.gem info ruby-lsp
in the project folder where I'm using RVM with a gemspec
(a way to isolate gems version per project), but again it did not work.materialize Could not find prism-0.24.0 in locally installed gems
, I got to this page and looking at the comments I was able to figure out the solution for RVM pretty similar to Rbenv.So, I added the cmd
option to my lsp config:
use
which ruby-lsp
to get the path to the gem binarylocal ruby_lsp = require('alex.utils.ruby-lsp')
lspconfig['ruby_ls'].setup({ capabilities = capabilities, cmd = { '/Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/bin/ruby-lsp' }, on_attach = function(client, buffer) ruby_lsp.setup_diagnostics(client, buffer) ruby_lsp.add_ruby_deps_command(client, buffer) end, })
And now I got this, not sure whether or not I shoudl care about:
```javascript
[START][2024-02-27 22:45:56] LSP logging initiated
[ERROR][2024-02-27 22:45:56] .../vim/lsp/rpc.lua:734 "rpc" "/Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/bin/ruby-lsp" "stderr" "Ruby LSP> Skipping custom bundle setup since /Users/alex/Workspace/trello_teams/.ruby-lsp/Gemfile.lock already exists and is up to date\n"
[ERROR][2024-02-27 22:45:56] .../vim/lsp/rpc.lua:734 "rpc" "/Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/bin/ruby-lsp" "stderr" "Ruby LSP> Running bundle install for the custom bundle. This may take a while...\nRuby LSP> Command: (bundle check || bundle install) 1>&2\n"
[ERROR][2024-02-27 22:45:56] .../vim/lsp/rpc.lua:734 "rpc" "/Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/bin/ruby-lsp" "stderr" "The Gemfile's dependencies are satisfied\n"
[ERROR][2024-02-27 22:45:57] .../vim/lsp/rpc.lua:734 "rpc" "/Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/bin/ruby-lsp" "stderr" "Starting Ruby LSP v0.14.3...\n"
[ERROR][2024-02-27 22:45:57] .../vim/lsp/rpc.lua:734 "rpc" "/Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/bin/ruby-lsp" "stderr" "Ruby LSP Rails booting server\n"
[ERROR][2024-02-27 22:45:57] .../vim/lsp/rpc.lua:734 "rpc" "/Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/bin/ruby-lsp" "stderr" "Ruby LSP is ready\n"
[ERROR][2024-02-27 22:45:57] .../vim/lsp/rpc.lua:734 "rpc" "/Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/bin/ruby-lsp" "stderr" "The following cops were added to RuboCop, but are not configured. Please set Enabled to either `true` or `false` in your `.rubocop.yml` file.\n\nPlease also note that you can opt-in to new cops by default by adding this to your config:\n AllCops:\n NewCops: enable\nGemspec/DateAssignment: # new in 1.10\n Enabled: true\nGemspec/DeprecatedAttributeAssignment: # new in 1.30\n Enabled: true\nGemspec/RequireMFA: # new in 1.23\n"
[ERROR][2024-02-27 22:45:57] .../vim/lsp/rpc.lua:734 "rpc" "/Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/bin/ruby-lsp" "stderr" " Enabled: true\nLayout/LineEndStringConcatenationIndentation: # new in 1.18\n Enabled: true\nLayout/SpaceBeforeBrackets: # new in 1.7\n Enabled: true\nLint/AmbiguousAssignment: # new in 1.7\n Enabled: true\nLint/AmbiguousOperatorPrecedence: # new in 1.21\n Enabled: true\nLint/AmbiguousRange: # new in 1.19\n Enabled: true\nLint/DeprecatedConstants: # new in 1.8\n Enabled: true\nLint/DuplicateBranch: # new in 1.3\n Enabled: true\nLint/DuplicateRegexpCharacterClassElement: # new in 1.1\n Enabled: true\nLint/EmptyBlock: # new in 1.1\n Enabled: true\nLint/EmptyClass: # new in 1.3\n Enabled: true\nLint/EmptyInPattern: # new in 1.16\n Enabled: true\nLint/IncompatibleIoSelectWithFiberScheduler: # new in 1.21\n Enabled: true\nLint/LambdaWithoutLiteralBlock: # new in 1.8\n Enabled: true\nLint/NoReturnInBeginEndBlocks: # new in 1.2\n Enabled: true\nLint/NumberedParameterAssignment: # new in 1.9\n Enabled: true\nLint/OrAssignmentToConstant: # new in 1.9\n Enabled: true\nLint/RedundantDirGlobSort: # new in 1.8\n Enabled: true\nLint/RefinementImportMethods: # new in 1.27\n Enabled: true\nLint/RequireRelativeSelfPath: # new in 1.22\n Enabled: true\nLint/SymbolConversion: # new in 1.9\n Enabled: true\nLint/ToEnumArguments: # new in 1.1\n Enabled: true\nLint/TripleQuotes: # new in 1.9\n Enabled: true\nLint/UnexpectedBlockArity: # new in 1.5\n Enabled: true\nLint/UnmodifiedReduceAccumulator: # new in 1.1\n Enabled: true\nLint/UselessRuby2Keywords: # new in 1.23\n Enabled: true\nNaming/BlockForwarding: # new in 1.24\n Enabled: true\nSecurity/CompoundHash: # new in 1.28\n Enabled: true\nSecurity/IoMethods: # new in 1.22\n Enabled: true\nStyle/ArgumentsForwarding: # new in 1.1\n Enabled: true\nStyle/CollectionCompact: # new in 1.2\n Enabled: true\nStyle/DocumentDynamicEvalDefinition: # new in 1.1\n Enabled: true\nStyle/EndlessMethod: # new in 1.8\n Enabled: true\nStyle/EnvHome: # new in 1.29\n Enabled: true\nStyle/FetchEnvVar: # new in 1.28\n Enabled: true\nStyle/FileRead: # new in 1.24\n Enabled: true\nStyle/FileWrite: # new in 1.24\n Enabled: true\nStyle/HashConversion: # new in 1.10\n Enabled: true\nStyle/HashExcept: # new in 1.7\n Enabled: true\nStyle/IfWithBooleanLiteralBranches: # new in 1.9\n Enabled: true\nStyle/InPatternThen: # new in 1.16\n Enabled: true\nStyle/MapCompactWithConditionalBlock: # new in 1.30\n Enabled: true\nStyle/MapToHash: # new in 1.24\n"
[ERROR][2024-02-27 22:45:57] .../vim/lsp/rpc.lua:734 "rpc" "/Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/bin/ruby-lsp" "stderr" " Enabled: true\nStyle/MultilineInPatternThen: # new in 1.16\n Enabled: true\nStyle/NegatedIfElseCondition: # new in 1.2\n Enabled: true\nStyle/NestedFileDirname: # new in 1.26\n Enabled: true\nStyle/NilLambda: # new in 1.3\n Enabled: true\nStyle/NumberedParameters: # new in 1.22\n Enabled: true\nStyle/NumberedParametersLimit: # new in 1.22\n Enabled: true\nStyle/ObjectThen: # new in 1.28\n Enabled: true\nStyle/OpenStructUse: # new in 1.23\n Enabled: true\nStyle/QuotedSymbols: # new in 1.16\n Enabled: true\nStyle/RedundantArgument: # new in 1.4\n Enabled: true\nStyle/RedundantInitialize: # new in 1.27\n Enabled: true\nStyle/RedundantSelfAssignmentBranch: # new in 1.19\n Enabled: true\nStyle/SelectByRegexp: # new in 1.22\n Enabled: true\nStyle/StringChars: # new in 1.12\n Enabled: true\nStyle/SwapValues: # new in 1.1\n Enabled: true\nFor more information: https://docs.rubocop.org/rubocop/versioning.html\n"
[ERROR][2024-02-27 22:45:58] .../vim/lsp/rpc.lua:734 "rpc" "/Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/bin/ruby-lsp" "stderr" "Ruby LSP Rails failed to initialize server: Running via Spring preloader in process 29270\n/Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:15:in `require': cannot load such file -- sorbet-runtime (LoadError)\n\tfrom /Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:15:in `require'\n\tfrom /Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/zeitwerk-2.6.11/lib/zeitwerk/kernel.rb:38:in `require'\n\tfrom /Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/ruby-lsp-rails-0.3.1/lib/ruby_lsp/ruby_lsp_rails/server.rb:4:in `<main>'\n\tfrom /Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:39:in `load'\n\tfrom /Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:39:in `load'\n\tfrom /Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/railties-6.1.7.6/lib/rails/commands/runner/runner_command.rb:42:in `perform'\n\tfrom /Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/thor-1.2.2/lib/thor/command.rb:27:in `run'\n\tfrom /Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/thor-1.2.2/lib/thor/invocation.rb:127:in `invoke_command'\n\tfrom /Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/honeybadger-4.12.1/lib/honeybadger/plugins/thor.rb:17:in `invoke_command_with_honeybadger'\n\tfrom /Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/thor-1.2.2/lib/thor.rb:392:in `dispatch'\n\tfrom /Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/railties-6.1.7.6/lib/rails/command/base.rb:69:in `perform'\n\tfrom /Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/railties-6.1.7.6/lib/rails/command.rb:48:in `invoke'\n\tfrom /Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/railties-6.1.7.6/lib/rails/commands.rb:18:in `<main>'\n\tfrom /Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'\n\tfrom /Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'\n\tfrom /Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/zeitwerk-2.6.11/lib/zeitwerk/kernel.rb:38:in `require'\n\tfrom /Users/alex/Workspace/trello_teams/bin/rails:5:in `<main>'\n\tfrom /Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:39:in `load'\n\tfrom /Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:39:in `load'\n\tfrom /Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/activesupport-6.1.7.6/lib/active_support/fork_tracker.rb:10:in `block in fork'\n\tfrom /Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/activesupport-6.1.7.6/lib/active_support/fork_tracker.rb:10:in `block in fork'\n\tfrom /Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/activesupport-6.1.7.6/lib/active_support/fork_tracker.rb:8:in `fork'\n\tfrom /Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/activesupport-6.1.7.6/lib/active_support/fork_tracker.rb:8:in `fork'\n\tfrom /Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/activesupport-6.1.7.6/lib/active_support/fork_tracker.rb:27:in `fork'\n\tfrom /Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/activesupport-6.1.7.6/lib/active_support/fork_tracker.rb:8:in `fork'\n\tfrom /Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/activesupport-6.1.7.6/lib/active_support/fork_tracker.rb:27:in `fork'\n\tfrom <internal:/Users/alex/.rvm/rubies/ruby-3.1.4/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'\n\tfrom <internal:/Users/alex/.rvm/rubies/ruby-3.1.4/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'\n\tfrom -e:1:in `<main>'\n\n/Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/ruby-lsp-rails-0.3.1/lib/ruby_lsp/ruby_lsp_rails/runner_client.rb:56:in `rescue in initialize'\n/Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/ruby-lsp-rails-0.3.1/lib/ruby_lsp/ruby_lsp_rails/runner_client.rb:29:in `initialize'\n/Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/sorbet-runtime-0.5.11274/lib/types/private/methods/_methods.rb:279:in `bind_call'\n/Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/sorbet-runtime-0.5.11274/lib/types/private/methods/_methods.rb:279:in `block in _on_method_added'\n/Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/ruby-lsp-rails-0.3.1/lib/ruby_lsp/ruby_lsp_rails/runner_client.rb:15:in `new'\n/Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/ruby-lsp-rails-0.3.1/lib/ruby_lsp/ruby_lsp_rails/runner_client.rb:15:in `create_client'\n/Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/sorbet-runtime-0.5.11274/lib/types/private/methods/_methods.rb:279:in `bind_call'\n/Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/sorbet-runtime-0.5.11274/lib/types/private/methods/_methods.rb:279:in `block in _on_method_added'\n/Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/gems/ruby-lsp-rails-0.3.1/lib/ruby_lsp/ruby_lsp_rails/addon.rb:29:in `block in activate'\n"
[ERROR][2024-02-27 22:45:58] .../vim/lsp/rpc.lua:734 "rpc" "/Users/alex/.rvm/gems/ruby-3.1.4@trello-teams/bin/ruby-lsp" "stderr" "Server dependent features will not be available\n"
@vinistock I'm happy to contribute with some instructions for the Neovim editor setup but first I'd love to get this clarified to add as much context as possible to the guide.
The Ruby LSP integrates with Bundler to identify which dependencies your project uses. This allows the Ruby LSP to automatically connect to your formatter (like RuboCop) and to automatically detect which files have to be indexed for go to definition, hover, completion, etc - without requiring any configuration. To do this right, the Ruby LSP always has to run on the same Ruby version as your project. Otherwise, it may either fail to boot or fail to find gems.
For example, let's say your project uses Ruby 3.2.2, but you're trying to run the LSP with Ruby 3.3.0. The GEM_HOME
for these two different Ruby versions are different. Depending on which version manager and operating system you're using, they might be something like this:
~/.gem/ruby/3.2.2/gems
~/.gem/ruby/3.3.0/gems
The Ruby LSP needs to know where gems are installed in the file system, so that we can read their files and index them. But to do that, we need the gems to be installed. AFAIK, there's no way to know where in the file system the require paths of a gem exist without having it installed, because gems can configure that in their gemspec
files (example - we could simply add more directories to that configuration, which would need to be discovered and indexed).
So the LSP will first try to bundle install. If you're running the LSP with a Ruby version different than the one your project uses, then it will not find the gems installed. They are all installed in the 3.2.2 directory, but we're looking for them in the 3.3.0 directory.
Running bundle install here might fail. It's possible that a gem in your project's dependencies is locked to a version that doesn't support 3.3.0 yet, which would make running bundle install fail every time. This is why, in order to connect with the bundle and use Bundler's APIs, we need to be on the same Ruby version as your project.
This will probably depend on which version manager you are using (and I'm not a NeoVim user). My understanding is that you should configure the command to run the Ruby LSP as simply ruby-lsp
.
When you cd into a project, if you version manager activates the environment automatically, it will set the right environment variables for you. Things like GEM_HOME
, RUBY_VERSION
and so on. When you open NeoVim on that directory, it will inherit the environment and then it should launch using the right Ruby version.
However, if NeoVim somehow allows you to switch projects without closing it, then indeed you'll have issues. When you switch to a different project, the previous environment activated by your version manager may no longer be valid.
I believe that's why some people reported that using the version manager shims works for them. Because those shims will go through the version manager first, to boot the ruby-lsp
executable using the Ruby version configured in the project.
I think the possible solutions are:
ruby-lsp
, maybe try something like chruby (cat .ruby-version) && ruby-lsp
Sorry for the wall of text, but I hope this is helpful context. Let me know if anything wasn't clear enough.
This issue is being marked as stale because there was no activity in the last 2 months
ruby-lsp
VS Code extension pre-release version allows you to select Ruby version managerruby-lsp
extension log output for error details, messages are very helpfulI'm using Ruby 3.3.1
and recently switched to asdf
as my version manager and am using the pre-release version of the ruby-lsp
plugin in VS Code. It looks like this latest version includes a setting to select your Ruby version manager, and asdf
is one of the options.
In addition, it looks like the ruby-lsp
VS Code extension reads all the folders in the workspace and uses the first one it comes across. I recently switched from chruby
and still had a .ruby-version
in some of my other project folders which were in my VS Code workspace. If you read the ruby-lsp
extension log output, it tells you exactly what it's doing, which is very helpful!
In my case, it was trying to load an older version of Ruby using the .ruby-version
file in one of my other workspace folders. I just removed that folder from my workspace so that VS Code only had my "current" project directory to read from, and that seems to have solved it for me, I can now use the ruby-lsp
extension in VS Code again.
Ruby version
3.1.4
Code snippet
No response
Description
In ruby-lsp 0.13.1, when I run it, it'll think
prism
is missing, install it successfully to my local bundle, then fail to find it:You can see it is installed here
But it's not in
bundle info
.Expected output
Running
ruby-lsp
should properly install the gems it requires, and then be able to find it afterward.