ruby-lsp icon indicating copy to clipboard operation
ruby-lsp copied to clipboard

Implement find references and rename for locals

Open yedhink opened this issue 11 months ago • 3 comments

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

Image

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:

Image
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.

yedhink avatar Jan 30 '25 14:01 yedhink

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.

vinistock avatar Jan 30 '25 15:01 vinistock

We can also update the docs: https://github.com/Shopify/ruby-lsp/pull/3113

andyw8 avatar Jan 30 '25 15:01 andyw8

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!

qertoip avatar Apr 14 '25 07:04 qertoip