========================
 rope, a Python IDE ...
========================

Stories
=======

* Organize imports


* Add import


* Variable indentation and tab size @ 4h


* Find occurances


* Configuring keys


* Configuring fonts


* Showing syntactical errors


* Editor folding


* Having multiple clipboards


* reST support inside pydocs


* reST outlines


* reST codeassists


* Adding tool bar


* Commanding buffer


* Subversion support using pysvn


* Last edit location; C-q


* Running unit tests
  Add a graphical view for running tests.


* Replacement; M-% @ 12h


* Save as and save all; C-x C-w, C-x s @ 4h


* Remembering last open project


* File Encodings


* Static type inference


* Commenting and uncommenting lines @ 2h


* Enhancing searching @ 16h

  * End the search when some other key sequence is typed
  * C-s C-s should start the last search
  * Search history; BackSpace should go back to the matches found before
  * Starting from begining when end of file is reached
  * Showing failed searches


* Go to matching parenthesis @ 12h


* Enhancing module running @ 20h

  * Showing running status in the GUI
  * Printing output somewhere
  * Getting input from somewhere
  * Customizing CWD and parameters
  * Running last run


* User specified source folders
  You should save this project specific information somewhere. How should
  guessed source folders be used.


* Enhancing syntax highlighting @ 16h

  * Only highlighting the changed region
  * Extend highlighting region while highlighting if necessay
  * Highlighting after cut, paste, undo and redo
  * Use Modified event for updating highlighting only when necessary


* Enhancing menu @ 16h

  * Disable inaccessable items
  * Showing keyboard short-cuts in front of menu items


* Enhancing editor @ 8h

  * Kill line; C-k
  * Select all; C-x h
  * Go to line
  * Fixed places for StatusTexts


* Having different strategies for selecting next/prev words @ 8h


* Enhancing auto indentation @ 12h

  * Indenting a range of file
  * Separating entering and correcting indentation?


* Dynamic type inference


* Better New ... Dialogs
  Better folder and module selection. Completing or selecting from a list.


* Refactoring Core

  * Refactor editor._goto_definition; not using Core.get_core()
  * Refactor Core; Only use EditorManager when working with the Editors


* Enhancing editor @ 16h

  * Clearing selection if something happens
  * Unifying builtin and emacs-style selections; if selection
    is active do the builtin cut and paste
  * Edit menu: cut, paste, undo, redo, revert
  * Showing modified file status


* Handle 'HTTPClient' style names in next/prev word @ 4h


* Better multi-sequence key event handling


* Optimizing StatementRangeFinder
  Add CachedLines and not starting from the start of the lines


* Auto-importing modules
  Hold the list of project classes and import them automatically
  in codeassist


* Better list and tree navigation @ 12h
  Add filter texts and selection texts to trees and lists.


* Local history


* Open Type; C-T @ 32h


* Compound statements and auto-completion @ 12h
  Completions for for-loop, except, lambda and with variables


* Zip imports


* Auto completion type @ 16h

  * Inserting or overwriting
  * Inserting common prefixes


* Enhancing auto-completion @ 8h

  * What to do when the program has syntax errors
  * Sorting proposals


* We know the type of list and keyword args


* Introduce factory method


* Showing function signature when calling


* Introduce temporary variable


* Inline function


* Extract function


* AssList and AssTuple assignments


* 'global' keyword issues for pycore


* Read __init__.py of packages


* Auto completion contexts; strings, comments, imports, functions and ...


* Show PyDoc


* Rename function parameters


* Rename module refactoring


* Move a class to another module


* Auto-completing function parameter names when calling


* Rename function


* Rename class


* Reloading changed editors after refactorings @ 8h
  `FileEditor` should be a resource visitor. What to do when buffer
  has been changed.


* reST highlighting


* Not renaming names in strings and comments in refactorings


* Formating Code
  Writing ASTs


Remaining Stories
-----------------
* Change program goals and description; principles.txt
  Go toward refactoring and ... library rather than an IDE?
* Migrating to sourceforge SVN before 0.3 release
  SF repository; How to synchronize local SVN with SF SVN?
* Should workingon.txt be under version control?
* Functional tests
* Logo
* Project resource consistency; What if it is deleted after being created?

