-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Remove support for rope #10440
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
Comments
@kimadeline First we need to know if they are using rope. We need to see if we can pass string to rope. |
Yup, 👉 We can't pass strings to Suggestions:
|
Considering the fact that rope has not supported Python 3 for a while, I think its time consider dropping it. However we'd need to first find out whether this is a good idea, i.e. do users use this today, does it work without any problems (I don't think so, hasn't supported 3). |
We still get bug reports for it so some people seem to be at least attempting to use it. David said he is looking at refactoring support in Jedi. As for whether we should just yank it now or wait I don't know without chatting with @luabud about it. |
If people are attempting to use it, but rope doesn't work for Python 3, we should just remove it, and add this back in the future when either Jedi or the language server supports it. Can we disable the functionality as a short-term change until we remove it? |
@gramster it doesn't work on all_ Python 3 code, but it could work on a subset so it isn't necessarily a total failure. As for turning it off, we could just not wire it up in the extension and then rely on LSP to light it up when MPLS v1 provides the functionality. |
This whole bug is based on the wrong premise: rope has been supporting Python 3 for some time already. I (the only remaining something-like-maintainer of rope, https://github.com/python-rope/rope/ ) have no idea about VSCode (so I don't know how rope is weird into it), feel free to file issues for any bugs you find. |
Well, I think this is becoming more urgent now: |
Our current plan is to remove Rope in our |
Hi all, rope is getting a new maintainer (me). Is there anything we can help fix here in rope for VSCode users that wants to continue to use rope for refactoring? Rope 0.19.0 already has support for a lot of new Python 3.x syntaxes and I'm going to continue to further improving coverage of supported syntax, fix existing bugs, as well as improving usability and ease of use and integrations. |
Good news! @brettcannon Are you planning to replace the refactoring with something else than rope? (I'm using it a lot) |
Brett can answer more definitively, but the main aim is to put as much behind language server protocol as possible, as this provides a standard way to interface with such tools. So I imagine that if rope had an LSP implementation it would be much easier to integrate in. Jedi support has gone through this process recently; it was originally quite tightly
integrated but now sits behind LSP and that makes it easier to maintain as well as light up new features. What we want to avoid is significant amounts of 3rd-party tool-specific code in the extension; using LSP could allow us to remove much of that while actually supporting more 3rd party tools.
@melMass, which refactorings do you use? We're also aiming to increase the number of refactorings supported by pylance so knowing what is missing but popular could be helpful.
|
Rope has been replaced by JediLSP (Jedi behind LSP) and/or Pylance for refactoring. As @gramster pointed out, probably the best option for those that wish to continue to use Rope would be to create a separate extension, and I would strongly recommend putting rope behind LSP. That way other editors could also use rope directly w/o much effort. |
Testing done as part of #17540 |
Hi all, Rope should now be be usable again in VSCode and other editors that supports LSP using pylsp-rope. You'll want to install the pylsp-rope extension and configure your VSCode to use pylsp language server. |
Uh oh!
There was an error while loading. Please reload this page.
Environment data
"python.jediEnabled"
set to; more info How to update the language server to the latest stable version #3977): tested with both. Doesn't seem to effect thisSteps to reproduce:
Expected behavior
It extracts the method
Actual behavior
A notification appears telling me to save the file. Why do I need to save? And if saving is really required for now, why don't you just save the file for me?
This current UX makes refactoring a pain
The text was updated successfully, but these errors were encountered: