eclipse-lsp4e / eclipse-lsp4e/lsp4e

Question: Should Refactoring->Rename to support multiple language servers with prepareRename/rename capabilities?

Open
#659 4 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

question
Dominant language
Java
Stars
85
Forks
69
Avg merge
8h 33m
Merged PRs (30d)
6

Description

It is possible that more than one Language Server is defined for a document.

Currently, in such a case, on rename operation LSPRenameProcessor executes renaming using the only one LS - the quickest in respond to textDocument/prepareRename request. But in case of https://github.com/eclipse/wildwebdeveloper/issues/1209 it turns out that the quickest response is a null-response (received from a LS that cannot provide the rename operation for a given text region). PR #655 solves this issue by taking into account a first non-null response.

But this still leaves the only one (the quickest) prepareRename response is actually to be processed with the rename operation leaving other possible replacements (provided by the rest of LSs) not touched.

So, the question is should LSPRenameProcessor to process ALL the responses from ALL the LS in a rename operation?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with LSPRenameProcessor and review PR #655, then compare the behavior described in eclipse/wildwebdeveloper#1209. Determine whether rename should combine responses from all language servers or retain a single response, including how null prepareRename results are handled. Done means the expected behavior is decided and documented clearly enough to guide an implementation.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
developer-experience, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.