Skip to content
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

pylsp-rope vs python-lsp-server[rope] ? #35

Open
fdobad opened this issue Mar 14, 2025 · 1 comment
Open

pylsp-rope vs python-lsp-server[rope] ? #35

fdobad opened this issue Mar 14, 2025 · 1 comment

Comments

@fdobad
Copy link

fdobad commented Mar 14, 2025

Hi, hope everyone in this community is alright!

Maybe a little dense here, but is there any difference between (pip install) pylsp-rope vs python-lsp-server[rope] ?

@lieryan
Copy link
Member

lieryan commented Mar 14, 2025

Hi fdobad, yes they're separate plugins that implements different parts of rope into pylsp.

When you use the built-in pylsp plugin pip install python-lsp-server[rope] that enables autocomplete and autoimport functionality using rope. Note that jedi is the default auto complete provider in pylsp, the rope autocomplete provider usually needs to be enabled explicitly.

The plugin in this repo pip install pylsp-rope is an external plugin that implements the more advanced refactoring functionalities of rope, these are implemented as LSP code actions to extract, inline, organise import, rename symbols, etc.

The commonalities is that they both use rope internally, but otherwise there's currently no overlap in functionalities between what's implemented in built-in plugin and by this external plugin. There used to be a time when both the built-in and external plugin implements rename, but pylsp has removed their built-in rope-based rename implementation (their default rename provider is currently jedi).

You do not need to enable the built-in rope plugin to use the external rope plugin, and vice versa.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants