PyPE is de afkorting van Python Programmers Editor waarmee je, zoals de naam al doet vermoeden, stukken broncode kan bewerken. Het is geschreven in de platform onafhankelijke taal Python en maakt gebruik van wxPython voor de user interface. Het programma heeft een handige syntax highlighter aan boord waarmee de broncode een stuk overzichtelijker getoond kan worden. Wie benieuwd is geworden naar het uiterlijk van dit programma kan op deze pagina een aantal screenshots bekijken. De ontwikkelaar heeft versie 2.3.1 de deur uit gedaan met de volgende aanpassingen:
- (fixed) Find previous NameError.
- (fixed) Find/Replace for non-\n line endings.
- (fixed) Find previous for unicode.
- (fixed) Replace All and Replace in Selection.
- (fixed) setup.py for non-Windows platforms.
- (added) embedded Python shell. Uses the platform-defined 'python' to run an interpreter in another process. Because the interpreter is not running in the same process, it is not susceptible to the 'while 1:pass' issue that other in-process interpreters seem to have. wxPython and Tk should work without issue in this shell. You get syntax highlighting.
- (added) embedded command shell. You get a shell to either 'cmd' on Windows, or '/bin/sh' on *nix.
Note: The above two shells replace the old shell tab in the bottom toolbar, and act like documents.
- (changed) When using "Replace All" and "Replace in Selection", you will now notice that your view is constantly updated as the replacements are advancing. You can stop the replacement by closing the replace bar (via the "close" button, hitting "escape" while one of the replace bar text entries has focus, or by attempting to close the document - it will cancel the replacement whether you actually close the document or not)).
- (fixed) the title for the trigger setting dialog.
- (added) menu items for TeX/LaTeX support and made it easier to add support for more languages in the future. Will probably at some time attempt to integrate a version of the STCStyleEditor into PyPE, along with a menu to customize which languages to show in the Open dialog, as well as the Syntax Highlighting and various save/load settings menus.
- (updated) the STCStyleEditor.py to the most recent version shipped with the wxPython 2.6 Docs and Demos.
- (replaced) the STCStyleEditor.py for style changes. When running along with threads (which weren't accessing the GUI), it tended to crash Python and wxPython. I can supply a proof-of-concept minimal application which crashes the STC quite reliably. I've replaced it with a work-alike which doesn't use wxFileConfig, and should do essentially everything STCStyleEditor does for style changes.
- (added) a better/stronger slow parser. This slow parser offers docstrings, better support for multi-line function signature definitions, and a correct hierarchical source tree. It will do its job in a background thread, unless your code has a syntax error, in which case it will switch to the fast parser.
Note: the slow parser can be 3-100 times slower than the fast parser, depending on the structure of the document.
- (added) full style support for Pyrex (gets its own entries in the stc-styles file.
- (changed) embedded Python shell to be faster when sending code to the underlying shell.
- (fixed) embedded Python shell to not duplicate '... ' and '>>> ' prompt prefixes.
- (changed) in the embedded Python shell, numpad enter is the same as the normal enter, and ctrl+enter sends the current contents of the buffer plus a line feed, regardless of the Python parsing or not (to handle raw_input from the underlying shell).
- (added) spell checker with support for custom dictionaries, a very simple spelling suggester, and alternate user-defined alphabets (for languages where this makes sense), see the readme.
- (fixed) Options->Title Options will now also update the title whenever you switch documents.
- (changed) made all of the block submenus for options (Line Ending, Long Line Indicator, Default Highlighting, Toolbar, and Caret Options) into blocks of data, which reduced the number of global ids significantly.
- (contemplating) switching to ReStructured Text for the help file, then using the ReST to generate an HTML help file, which then gets viewed via the Help. PyPE could definitely use better documentation.
- (added) try/except, try/finally, and try/except/finally wrapping of selected code to new Transforms menu.
- (changed) moved code transformations indenting, wrapping, commenting, and perform trigger to the new transforms menu, from the edit menu.
- (added) code path for 'insert comment' for C/C++, HTML/XML, and LaTeX.
- (added) code path for 'comment/uncomment selection' for LaTeX.
- (added) sample_alphabet.txt for english and sample_dictionary.txt from Scowl 6 english-words.10 for examples of input.
- (updated) auto-indent/dedent code for break/continue and the forthcoming 'with' statement.
- (added) \section, \subsection, \subsubsection, \label, and %todo: support for latex.
- (added) \\todo: support for C/C++ and %todo: support for LaTeX
- (wanted) a decent parser for C/C++
- (fixed) pasting in Python/command shells to properly handle pasting of text without line endings.
- (added) Options->Save preferences to save your current preferences (some slight protection against OS crash, etc.)