A Programmer's Editor Shootout
Andy's Editor 1/1/98 release for OS/2
Written by Andrew Pitonyak
Andy's Editor is a language configurable folding source code editor.
Packaging and Installation
The packaging consisted of a single zip file ae.zip. The zip file contains the following executables:
ae_dos.exe runs on DOS, and in DOS boxes ae_o16.exe runs on 16 bit OS/2, 32 bit OS/2, and Windows NT/95 ae_dual.exe runs on 16 bit OS/2, 32 bit OS/2, Windows NT/95 and DOS ae_os2.exe runs on 32 bit OS/2 ae_win.exe runs on Windows NT/95 ae RS/6000 AIX executable.Rename ae_os2.exe to ae.exe and then copy ae.exe and ae.ini to a directory in the path.
A partial list of features follows:
The example included with the editor is given in PASCAL as:
while not eof(f) do /*...secho out another character from the file:10:*/ begin read(f, c); write(c) end /*...e*/Which appears on screen as
while not eof(f) do ... echo out another character from the filewhere the text "... echo out another character from the file" is shown in a different color so that it stands out as a folded line. Highlighting this line and pressing F3 enters the fold and you will be editing the text
begin read(f, c); write(c) endNote that you can also simply open the fold by pressing F1. This can greatly simplify navigating your code. You open your program and are presented with
... Includes ... Procedures ... Main bodyYou can then easily choose which section of code you would like to edit. A fold can be closed, as in the examples above where the folded text is not visible unless you enter the fold, virtual (open), where the folded text is always visible, or a fold can be a link to another file such as an included file. While performing a global search, you can choose to enter, or skip over, virtual folds.
Andy's editor comes configured to know about the languages top, ae, be, c, resource, module, make, assembler, Pascal, modula2, ada, lisp, batch, config, shell, script, html, java, nroff, latex, guide, sql, i82750, semi, gofer, rt, and weave. This is important because fold information is embedded inside of comments. Although folds can be manually created, the easiest method is to highlight the appropriate text and then use menu commands to create an appropriate fold. I found creating and using folds easy to do. I did not create my own languages, but this is supported.
Andy's editor is a text mode only application and it does not offer syntax highlighting. Searching can be done on regular expressions and folds can be searched, or not. Searching can also be used to find matching brackets.
Tags can be inserted and removed from a line. This is used to move quickly through a file. These tags can be created based on another file. The output from a make will typically indicate the file and line number where an error occurs. There is a command which will create a tag where these errors occurred. You can then move from tag to tag to fix the errors.
I found a very unusual block command called block_filter. This command writes a marked block to a file, runs a command such as sort against this file, and then reads the file back in. You can write any filter that you desire. The only caveat is that if a fold is marked, the fold information is written as well. There is also a block translate command to translate letters.
Wrap up for Andy's Editor
Andy's editor is different from any other editor I have previously used. Although some features such as syntax highlight are missing, you owe it to yourself to spend an hour familiarizing yourself with the benefits of a folding editor; you may join ranks of those who simply can not live without it.
Now For Something Completely Different
While I was looking at Andy's Editor, I opted to take a brief look at Andy's binary Folding Editor. The primary purpose of the Binary Folding Editor, is for structured browsing with minimal editing. To quote from the introductory text which accompanies this editor:
"This program is designed to take in a set of binary files, and with the aid of an initialization file, decode and display the definitions (structures or unions) within them. BE is particularly suited to displaying non-variable length definitions within the files. This makes examination of known file types easy, and allows rapid and reliable navigation of memory dumps."
The primary feature list is as follows:
Andy's editor has been placed into the public domain and as such is freeware. It is recommended that the latest version be obtained from the authors home page listed below.