Implement find references and rename for locals
Description
Ruby LSP Information
VS Code Version
1.97.0-insider
Ruby LSP Extension Version
0.8.19
Ruby LSP Server Version
0.23.7
Ruby LSP Add-ons
- Ruby LSP Rails
- RuboCop
Ruby Version
3.4.1
Ruby Version Manager
rbenv
Installed Extensions
Click to expand
- catppuccin-vsc (3.16.0)
- dotenv (1.0.1)
- prettier-vscode (11.0.0)
- ruby-extensions-pack (0.1.12)
- ruby-lsp (0.8.19)
- sorbet-vscode-extension (0.3.37)
- vim (1.29.0)
- vscode-eslint (3.0.10)
- vscode-mdx (1.8.13)
- vscode-ruby (0.28.0)
Ruby LSP Settings
Click to expand
Workspace
{}
User
{
"enabledFeatures": {
"codeActions": true,
"diagnostics": true,
"documentHighlights": true,
"documentLink": true,
"documentSymbols": true,
"foldingRanges": true,
"formatting": true,
"hover": true,
"inlayHint": true,
"onTypeFormatting": true,
"selectionRanges": true,
"semanticHighlighting": true,
"completion": true,
"codeLens": true,
"definition": true,
"workspaceSymbol": true,
"signatureHelp": true,
"typeHierarchy": true
},
"featuresConfiguration": {},
"addonSettings": {},
"rubyVersionManager": {
"identifier": "auto"
},
"customRubyCommand": "",
"formatter": "auto",
"linters": null,
"bundleGemfile": "",
"testTimeout": 30,
"branch": "",
"pullDiagnosticsOn": "both",
"useBundlerCompose": false,
"bypassTypechecker": false,
"rubyExecutablePath": "",
"indexing": {},
"erbSupport": true,
"featureFlags": {}
}
Reproduction steps
Add the following test case in Rails 8 and try to rename the variable password:
def test_password_is_not_too_short
password = "w" * (User::MIN_PASSWORD_LENGTH - 1)
@user.password = password
@user.password_confirmation = password
end
Getting the error message The element can't be renamed.
Neovim
Same issue in neovim. But message is different though:
ruby-lsp --version: 0.23.6
Question
I am not sure if this is a bug. Maybe this is a limitation of Ruby-lsp. Please close the issue if this issue is scoped to be fixed as part of the roadmap or if it cannot be fixed.
Thank you for the report. This is not a bug, we just haven't implemented reference tracking for locals yet. I'll change the title and labels to make that clearer, since we don't have an issue for this created yet.
We can also update the docs: https://github.com/Shopify/ruby-lsp/pull/3113
Coming from JetBrains IDEs this feature not present feels like I lost my left hand ;-)
I am renaming my locals and methods all day long.
Would love to see this added!