(ap)Proximated (x)Emacs Powered by Python.

-- an XEmacs-like editor in Python. Eventually.

Latest version: 0.7.3.2 "Zeta Function". Download here

This project started out as my graduate school thesis, built as an educational experiment to attempt to demonstrate the modern software development process using the ReadySET project management templates. However, the code that started out as a means-to-an-end has grown beyond its original purpose of demonstrating the software development process. It's now quite usable and useful.

I suppose you're thinking that the world doesn't need another editor, and you might even be right. In fact, a really good editor does already exist, but I'm not just trying to create another editor. I'm looking for a way to build an extensible framework in Python that can support editing and viewing many different types of files, not just text files or source code. But, having said that, the primary target is still source code editing; however, unlike other editors I'm not limiting myself to that, as evidenced by the hex edit mode and other esoteric modes like the hyperspectral image viewer.

Features

  • Multiple top-level windows
  • Multiple language support: currently baseline implementations of Python, Makefile, C/C++ major modes
  • Multiple views of the same file (edit in one view and changes are reflected in realtime in the others, even if the others are different major modes!)
  • Virtual file system abstraction layer based on itools.vfs, allowing transparent file loads from the local file system, http URLs, and from within tar archives without uncompressing the archive beforehand.
  • Minibuffer ala XEmacs, including tab completion
  • On-the-fly spell checking using the pyenchant module
  • Other interesting major modes:
    • Hex edit mode
    • Hyperspectral image view mode
    • Music Player Daemon mode for controlling an MPD server
    • Dired mode for viewing directories

Development features

  • Pure python source based on the wxPython widget toolkit
  • Most features coded as plugins - can enable or disable individual features at will
  • Scintilla styling code borrowed from Editra and I will continue to track Editra as more language lexers are supported

Help Wanted

Mac OSX

I'm especially interested in help with the Mac OSX testing. I regularly test on Windows and Linux, but don't have access to a Mac. I'd appreciate any help in debugging on the Mac, as I believe there's still a problem in the keyboard handling on OSX.

Localization

Additionally, if you speak languages other than English, the i18n work is hosted at launchpad using their collaborative translation feature. I could definitely use the help getting peppy localized in your language, as my only language skills include a tiny bit to contribute to the Esperanto localization (mi havas eta vortprovizon de esperanto) and knowing the word for 'beer' in numerous languages.

Mailing List

There's now a mailing list for peppy development. All people interested in the development of peppy are welcome to join. You can also sign up by sending an email to peppy-dev-subscribe [at] googlegroups [dot] com from the account you wish to use (useful for signing up with a non-gmail account).

License

The application as a whole is licensed under the GPLv3 due to the inclusion of itools. The bulk of the code in peppy was written by me and is also available under either the GPLv2 or wxWidgets depending on the individual source file. Consult the header of each file for the specific license.

So, if you're going to borrow the whole application, it's under the GPLv3. However, if you're just going to borrow an individual source file from one of the files that I've written outside of itools, you get to choose the license from one of the following dual license pairs: either GPLv2/GPLv3 or wxWidgets/GPLv3.