# REQUIREMENTS.txt

These features are absolutely required to make the editor useable. Names
starting with '*' are implemented.

*R1. tab/space distinction (i.e. you can use either tabs or spaces, there should
be conversion functions, etc)

*R2. Shift-Tab needs to work (for dedent)

*R3. auto-indent

*R4. (x, y) indicator so we know what column/line the cursor is on.

*R5. syntax highlighting

*R6. better fonts everywhere

*R7. working file selector

*R8. working statusbar ("working" means, that it should be used when we save
something, load something, etc.)

R9. user-configurable toolbar with buttons

R10. user-configurable keyboard shortcuts
 [may be a bit obsolete now, because most of the keybindings are set in the
  main menu. maybe the menu should be user-configurable?]

*R11. use interactive interpreter (PyCrust) in a window (functionality that 
doesn't work here, like "save", should gracefully tell you so)

R12. integration with PyChecker?

R13. integration with Bicycle Repair Man?

R14. integration with CVS?

*R15. execute a file in the default shell (OS shell, not interactive
interpreter)

*R16. open files by specifying them on the command line

*R17. special bar next to the file selector where vi-like commands can be
entered (esp. "/foo" syntax for quick searching)
 [Works. Of course, lots of commands can be added...]

*R18. need a way to switch windows. Alt-Tab doesn't work here. Maybe something
with F5/F6 (F6 was 'next window' in the Borland IDEs), or can we even do
Shift-Right and Shift-Left? :)

*R19. Ctrl-PgUp and Ctrl-PgDn must work the way I expect them to work. This can
possibly an option for those who _don't_ want this. Yes, this is a requirement.

R20. searching for text in a file, "normal" text or regular expression. This
should be available through the menu (with a dialog), but also through the
command line.
 [currently being implemented]
 
*R21. Extension to R15: execute a file on the command line with parameters. I
propose the '!' command for this, like in vi. E.g. '! foo bar' will start the
current file with parameters 'foo' and 'bar'.
 [This works now.]
