Comments (2)
Hi @niqodea, thanks for writing this issue. Having a non-editor-centric API is a fairly common request, so I'd be open to pull requests implementing this. Would you like to take a stab at implementing this? I think you probably have a better idea of how a non-editor centric API should work than I do anyway.
If I understand correctly, this should be possible by exposing create_move(..., name: PyName)
in the API as well as the class constructors. Currently, create_move()
uses eval_location()
to get the pyname, but for a non-editor API, you'll need get a PyName by name, which can be done by using the module/scope interface like so:
In [22]: eval_location(mod, 6425 + 10) # offset of `class Project()` inside the file
Out[22]: <rope.base.pynamesdef.DefinedName at 0x7f730b1e3050>
In [26]: dn = proj.get_module("rope.base.project")["Project"]
Out[26]: <rope.base.pynamesdef.DefinedName at 0x7f730b1e3050>
So once the pyname
parameter is exposed, you will be able to do something like so:
create_move(proj, proj.get_module("rope.base.project").resource, name=proj.get_module("rope.base.project")["Project"])
This will require changing the create_move()
, MoveGlobal
, and MoveMethod
.
Aside, do you want to add ropify
to the Wiki page?
from rope.
Thank you for the guidance! I will be happy to contribute when I have time.
Aside, do you want to add ropify to the Wiki page?
With pleasure!
from rope.
Related Issues (20)
- Keep from xx import yy style when moving
- Renaming methd HOT 1
- Rename refactoring allow the use of Python keywords HOT 1
- Rename refactoring allow the use of the same name of the declared method in the superclass HOT 1
- Rename refactoring doesn't apply to the references of the renamed class HOT 1
- rope_autoimport doesn't work for neovim HOT 2
- Sort functions by usage
- Mistakes HOT 1
- rope incompatible with Python 3.12 HOT 2
- Support aliases in rope_autoimport HOT 3
- Calling Autoimport.connection.execute from differnt thread causes error HOT 1
- AutoImport's `get_modules` is case insensitive HOT 4
- Small typo in https://rope.readthedocs.io/en/latest/contributing.html
- AutoImport.generate_modules_cache can be speeded up by 2x HOT 1
- RFE: is it possible to start making github releases?🤔 HOT 3
- 1.11.0: pytest is failing in `ropetest/contrib/autoimporttest.py::AutoImportTest::test_search_submodule` unit HOT 3
- 1.11.0: sphinx warnings `reference target not found` HOT 1
- Any prerequisites for a new release (> 1.6.0)? HOT 3
- MoveModule creates new top-level imports HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rope.