Here we go with another editor test, this time I took a look at EditPlus. You can find the introductional posting to this series here.

editplus.png

EditPlus is a commercial product by ES-Computing and it’s available from www.editplus.com. The version I tested was v2.12 (76).

First impressions

This program manages to show me two separate warnings on first startup, about the fact that I’m not a licensed user of the program. Why can’t they just let me get started with my 30 days evaluation without bothering me with this from the word go? EditPlus installed a few start menu shortcuts and opened the link window after the installation was complete. That’s what made me click on their readme file, which I probably wouldn’t have seen otherwise. The interesting thing is that the readme has an English part and a part in “Hangul (Korean)”, a language I’m not familiar with. What surprised me, though, was that the Korean part displayed only cryptic ASCII rubbish instead of nice Korean characters. By going to a link that was listed in that paragraph (http://www.editplus.com/kr) I was able to confirm that my system has everything installed that’s necessary to view this language correctly. So, the first impression is that EditPlus doesn’t appear to have any Unicode support — or can it be that the makers forgot about that when writing up their readme?

The last thing I noticed immediately is an aesthetic aspect: I recently changed my Windows XP theme to the (more or less) new Royale theme by Microsoft. This seems to be a problem for the menu system in EditPlus, because every single entry in the menu bar has a background that’s noticeably lighter than the surrounding colour. I double-checked the same thing with the two editors I previously tested (UltraEdit and TextPad) and I found that both of them have the same problem! Interesting…

General features

EditPlus starts up very fast. The document model is MDI with an additional button bar at the bottom of the window, that allows to switch directly between loaded files. While looking at regular expressions support, I found an interesting bug: I have a file starting with a line that says “Oliver Sturm”. Now I was searching for ([^\s]+) and the first match I got was Oliver Sturm (note that the space between the words was included). Searching for the next match, I got this: Oliver Sturm. It was not possible at all to match the complete line with the complete test expression ([^\s]+) ([^\s]+). I sent this information to support and got a quick answer: EditPlus doesn’t support the \s placeholder. I looked at the documentation (hm - could have done that earlier :-)) and found that there’s no support at all for this kind of placeholder, neither for \s nor for \w, \d and the many others that are common. While TextPad (see previous test) at least offered supported for the Posix placeholder syntax, which is less comfortable to use but just as effective, EditPlus just doesn’t have any of those.

To cut the story short, I got a part success when I tried replacing the expression ([^ ]+) ([^ ]+) by \2 \1. This worked, but only after I switched off case sensitivity in the Find/Replace function. Apparently this is a bug, I’ll update this post with information when I get it from EditPlus support.

Multi file searching is supported, but replacing is not. Word wrapping can be switched on and off easily, via a standard toolbar button or a keyboard combination. It’s also possible to configure toolbars to include any of the standard menu entries. It’s not possible to create new user toolbars, nor can additional commands, like commands to toggle a specific option, be used.

Scrolling and redrawing is normally extremely fast. The only thing that drags this down a bit is if word wrapping is on for a really large file — in this case, a status bar appears in the lower left corner of the window, showing how EditPlus is recalculating the wrapping of those lines that are too long. This happens for example when resizing the window, all the time, that is, which can be a bit disturbing. Interesting enough: with a very “wide” file, one line with around four million columns, scrolling and redrawing is just fine, even if word wrapping is on.

Memory allocation in EditPlus is a funny thing. I have this XML file in two versions, one with line feeds and indentation, nicely readable, the other with all the XML on one line. The readable file is slightly larger at 3.8MB, compared to 3.6MB for the compact one. Now, when loading the compact file into memory, Process Explorer shows the working set of the process growing by about 4MB. A nice number, without too much additional overhead. But when I load the nice version of the file, I see that this takes me about 15MB of memory! Huh? Well, part of this is overhead that has to do with word wrapping, believe it or not. Word wrapping is on by default when loading this file, and switching it on and off lets the working set value shoot up and down by 4MB. 4MB RAM for word wrapping? Wow. A quick calculation: the file has about 132500 lines, 3850 of which are wrapped when word wrapping is on. I assume that for a line that’s not wrapped, only that information has to be stored: not wrapped. That’s a byte, or hell, let’s say four bytes. So roughly half an MB is gone on that. Which makes it 3.5MB for the wrapped 3850 lines, which is 909 bytes per line. Whoa. Obviously, this doesn’t explain where the additional 7MB of RAM go - and did I mention that RAM usage goes down when switching word wrapping for the one line-file, too? Saves another 400KB or so on that one…

Sadly, EditPlus doesn’t seem to have any support for Hex editing. Big file support is another thing in EditPlus that’s not as it should be. My normal test file has around 612MB, which is normally not a problem to load into my 2GB of RAM. When I tried to load this file, I got a message from EditPlus telling me that there was a file size limit of 511MB. Things didn’t get better from there. I cut the file a bit to get it just under the magic limit of 511MB. Loading it failed nevertheless, with EditPlus crashing after using about 1GB of RAM — at this point, the status bar showed a load progress of 46%. I tried freeing even more RAM and the effect was that it took more than 1.2GB before crashing. EditPlus was the first among the editors I have tested so far that didn’t manage to load a large file like this.

EditPlus is easily usable with the keyboard, with the same potential restrictions that the toolbar configurability suffers from. It’s possible to configure keyboard shortcuts for every menu command via the Preferences dialog. The only function that can pass for an editing helper is the Reformat command. This command will recognize the indentation depth of a paragraph of text and reformat it to break at a specific column. In the process, it kills any more fancy formatting there may be :-(

EditPlus supports all three variants of line feeds and allows to switch them for any open file. It’s also possible to use a so-called converter when loading or saving a file — these are available for UTF-16 (called Unicode, once again), UTF-8, UTF-7 and a variety of code pages. Not quite complete, but nicely implemented. On the other hand, I was unable to load the aforementioned readme file with any of the Korean converters, so that I could have seen the Korean text in it correctly. It’s possible that I’m doing something wrong here, though.

EditPlus settings are another peculiar thing. Directly from the application, it’s possible to set the “INI File Directory”. There’s even an extra menu entry for that, as if I was going to do it all the time. Interestingly, the default path is the EditPlus directory underneath Program Files… what if I hadn’t had write permissions there? How about using Documents and Settings\{username}\Application Data, guys? The settings themselves seem to be distributed across a few ini files in the configured path and the registry. This is exactly what I meant when I included this point in my requirements list… this is how it should not be done.

System integration

The GUI of EditPlus is moderately modern, but it could definitely benefit from a facelift. The icons look extremely simplistic and some of them are really non-standard (ever seen a green floppy disk icon for the Save button?). In the Preferences dialog there’s a mixture of weirdly formatted option pages (see the top line jumping when scrolling up and down the Categories tree) and some antique Delphi-esque (or is that Borlandish?) buttons.

Other dialogs, like Find and Replace, are crowded in the usual way and the buttons are all over the place. EditPlus integrates itself in the Explorer context menu with its own entry, but this can easily be switched off from the Preferences window. It’s also possible to associate every file type know to EditPlus with the program, directly from the corresponding configuration panel. Nice.

EditPlus didn’t have any problems with my system’s ClearType settings and the Consolas font works nicely. It’s easy to switch the default font setting in EditPlus and there’s even a toolbar button with a popup menu that allows to switch the font quickly, from a customizable list of options.

The file selection dialogs used by EditPlus are the Windows standard ones, with a few extensions. They allow access to files from UNC paths and namespace extensions without problems. The so-called Directory selector, which is an alternative means to load files and browse the file system via a panel on the left hand side of the window, doesn’t offer the same level of compatibility, though. It does have support for Network Folders, but that’s cumbersome to use and it’s not possible to browse other arbitrary parts of the Windows Explorer namespace.

Syntax highlighting

Out of the box, EditPlus supported the following from my list of requested file types: C#, Perl, HTML and XML. The extremely large list of additional “user files” on the EditPlus web site had syntax highlighting definitions for Pascal/Delphi, but once again I wasn’t able to find any for diff/patch files or e-mail files. Extending EditPlus with additional highlighters is easy, and there doesn’t seem to be a limit for this. Highlighters can be created in the form of text files and existing configurations can be extended with additional file types. Extended file type detection mechanisms are not available in EditPlus. EditPlus supports nine highlighting file types in its standard installation, while offering a few hundred, sometimes accompanied by auto-completion definitions, on the website. Once again, not the comprehensive package I was hoping for.

Extensibility

EditPlus offers a keystroke recording function that can listen to what the user types and repeat this sequence later. It’s possible to save the information to external files and by registering a keystroke recording file it’s possible to have a lot of these macros on the Tools menu. It’s possible to incorporate actions like Finding into the macro, as long as they are invoked via the keyboard.

“Intelligent” tool integration is supported, so tools can be started with a dynamically constructed parameter list, including information about the current file or the selected string. It’s also possible to capture tool output and parse it with a regular expression, which could be handy to call compilers directly from the editor. Nothing like this is included in the standard installation, though. I couldn’t find any information about integration of external extensions in EditPlus.

Networking

EditPlus has FTP support, complete with an account manager and a comprehensive set of options. I was able to access a file via standard Windows XP WebDAV support, but FTP is the only thing integrated in EditPlus itself.

Support and community

The one support request I sent was answered quickly. There’s a Yahoo! Group as well as a Wiki, both of them apparently user supported. By the looks of the large user files download area, it seems that there’s an active user community, although it’s not as visible (like in large active forums) as with other products I have tested.

Price

A single user license of EditPlus costs US $30, which seems like a fair price for the tool.

Results in numbers

General features System integration
Startup 80 Modern application/UI 50
Regex support 50 Explorer context menu 80
Quick access 70 ClearType/Fonts 80
Scrolling/redrawing 80 File access 65
Memory footprint 20 Syntax highlighting
Hex editing 0 File types 50
Large files 0 Extensibility 75
Keyboard support 70 File recognition 0
Text formatting 30 Package completeness 20
File formats 65 Extensibility
Preferences 40 Macros 50
Networking 65 External extensions 0
Support/community 70 Price 70
Sum: 1180 Average: 49