SourceFiles.org - Use the Source, Luke
Home | Register | News | Forums | Guide | MyLinks | Bookmark

Related Sites

Latest News
  General News
  Reviews
  Press Releases
  Software
  Hardware
  Security
  Tutorials
  Off Topic


Back to files
rope, a python refactoring IDE and library ...

Overview

`rope`_ is a python refactoring IDE and library. The IDE uses the library for providing features like refactoring, code assist, and auto-completion. It is written in python. The IDE uses `Tkinter` library.

.. _`rope`: http://rope.sf.net/

New Features

  • Replace method with method object refactoring
  • Changing editor font and keybinding in ``~/.rope``
  • Handling ``with`` statements
  • Having two keybindings emacs/normal
  • Performing change signature in class hierarchies
  • Supporting builtin `zip` and `enumerate`
  • Execute command; ``M-x``
  • Removing extra spaces and lines; ``C-c C-f``

From this release, rope reads preferences from ``~/.rope`` file. You can edit this file to do things like changing the keybindings and changing the font. The good thing about this file is that it is in python. So you can do anything you like there before rope starts. For example you can register your own `Actions` (see `rope.ui.extension` module for more information) there. You can edit ``~/.rope`` using rope itself, too. (``Edit ~/.rope`` in ``Edit`` menu or ``edit_dot_rope`` action in execute_command.)

One of the main problems new users of rope had was that rope used emacs keybinding and those not familiar with it had a hard time working with rope. This release adds a normal keybinding. You can use it by editing ``edit_to_rope`` file and setting ``i_like_emacs`` variable to `False`. The emacs keybinding has been enhanced very much. But be careful! Once you get used to it, you'll be addicted to rope!

The names of some the refactoring classes have been changed. Those who used rope library probably have to update their code. The base parts of rope has been enhanced maybe as much as the UI parts. Introduce Method object refactoring has been added. Some of the old refactorings have been enhanced and the occurrence finding got notably faster.

Getting Started

  • Overview and keybinding: `docs/user/overview.txt`_
  • List of features: `docs/index.txt`_
  • Tutorial: `docs/user/tutorial.txt`_
  • Using as a library: `docs/dev/library.txt`_
  • Contributing: `docs/dev/contributing.txt`_

Project Road Map

The main motive for starting this project was the lack of good refactoring tools for python language. Refactoring programs like "bicycle repair man" aren't reliable due to type inference problems and they support a limited number of refactorings. Rope tries to improve these limitations.

  • Why an IDE and not a standalone library or program?

As Don Roberts one of the writers of the "Refactoring Browser" for smalltalk writes in his doctoral thesis:

"An early implementation of the Refactoring Browser for Smalltalk was a separate tool from the standard Smalltalk development tools. What we found was that no one used it. We did not even use it ourselves. Once we integrated the refactorings directly into the Smalltalk Browser, we used them extensively."

The main goal of rope is to concentrate on the type inference and refactoring of python programs and not a state of art IDE (At least not in the first phase). The type inference and refactoring parts will not be dependent on rope IDE and if successful, will be released as standalone programs and libraries so that other projects may use them.

Get Involved!

See `docs/dev/contributing.txt`_.

Bug Reports

Send your bug reports and feature requests in rope's sourceforge.net project page at http://sf.net/projects/rope.

License

This program is under the terms of GPL(GNU General Public License). Have a look at ``COPYING`` file for more information.

.. _`docs/user/overview.txt`: docs/user/overview.html .. _`docs/user/tutorial.txt`: docs/user/tutorial.html .. _`docs/index.txt`: docs/index.html
.. _`docs/dev/contributing.txt`: docs/dev/contributing.html .. _`docs/dev/library.txt`: docs/dev/library.html


Other Sites

Discussion Groups
  Beginners
  Distributions
  Networking / Security
  Software
  PDAs

About | FAQ | Privacy | Awards | Contact
Comments to the webmaster are welcome.
Copyright 2006 Sourcefiles.org All rights reserved.