The second test in this series, which is the best text editor for me, is about TextPad.

textpad.png

TextPad is a commercial product by Helios Software Solutions and is available from www.textpad.com. The version I tested was 4.7.3.

First impressions

TextPad is one of those programs that for some reason always hide behind their open online help windows. This is something I find extremely inconvenient and I’m happy that I have multiple monitors — it would be much worse otherwise. The other thing I noticed is that TextPad also shows up its evaluation warning dialog from day 1. It might be just me, but I don’t like that… I’m one of those people who have every intention of paying for a product they like, but I want the chance to test it properly while being left alone with regard to nag screens.

General features

TextPad startup is very fast, due to the size of the editor. The application uses an MDI interface, selection of a currently open file is additionally possible from a list that’s shown in a docked window by default. It’s also possible to start multiple instances if needed. Regular expressions are supported to the extent tested. TextPad goes fully for POSIX compliance, which means that s doesn’t work for whitespace. Plus, POSIX compatibility has to be enabled first (in the preferences) to be able to use non-escaped braces, parentheses and pipe symbols.

Anyhow, it was possible to search for ([^[:space:]]+) ([^[:space:]]+) and replace by 2 1, so I’m quite satisfied. Searching in multiple files is possible, but replacing is not available in a similar way. The line wrapping button is right there in the standard toolbar. When line wrapping is on, TextPad tries to behave extremely well by indenting a wrapped line to the same degree as the start of the line — which leeds to the situation where it becomes difficult to see that one of the (visible) lines is actually a continuation of the other. With line numbers switched on things are a bit better, but I would really like it even better if the continued line wasn’t displayed with any indent at all.

It’s possible to configure the toolbars, but only to the degree of the prepared buttons. It seems to be by chance that the line wrapping button is provided — if I wanted to have a button to switch some other arbitrary option, chances are that wouldn’t be possible.

Scrolling and redrawing works nice and fast in TextPad. Although the editor visibly redraws a lot in situations like window resizing, it doesn’t interfere with work in any way. The scroll speed seems to be more or less independent from the degree of “coverage” of the editor pane. The only situation where scrolling suffered badly was when I loaded my 3.7 million chars on a line test file and switched on word wrap. Scrolling with the scroll bar was still quite reasonable, but navigating the cursor with the cursor keys was really sluggish. I wonder, don’t people who sell text editors test this kind of thing? I mean, I’m not inventing that… many machine generated XML files don’t have pretty indented layouts.

TextPad’s memory footprint is very reasonable. It started out at about 4MB and when opening files didn’t grow too much. File handling seems to be quite well optimised, as the editor bytes/file bytes ratio goes.

It’s a funny thing with hex editing in TextPad: it’s possible to open a file in “binary” mode, but the file seems to be inevitably opened in read-only mode. It’s possible to search for hex values, but replacing them is obviously also impossible. The online help doesn’t give any additional information on this. Another thing I noticed: by default, a file is opened in “Auto” mode (which is a selection in addition to “Text” and “Binary”), but this doesn’t seem to work very well. A lot of large test files I tried loading contained data that was certainly “garbage” if viewed in a text editor, but TextPad loaded them as text nevertheless, when left with the “Auto” setting.

TextPad can work with large files reasonably well, as long as they fit into free (physical, not swap!) memory. I loaded a file of around 656MB, which increased the application’s working set by 708MB (that’s nearly 8% overhead). Loading another large file failed because I didn’t have enough free physical RAM. Hint: the message in such a case is interesting, because it claims that “the disk is full” instead of telling the truth about the RAM situation.

It’s possible to use the keyboard to work with TextPad effectively. Keyboard configuration (Preferences dialog) enables one to configure arbitrary shortcuts for all menu entries as well as a lot of other commands and the insertion of special characters. Nice!

TextPad has a few simple text formatting functions. Although it doesn’t really understand formats like a bullet list, it’s able to reformat such paragraphs satisfactorily. This has to be invoked manually. More complicated formats like justified text are supported, but this breaks the bullet list, for example. To define the file format for any given file, the user has to make the proper selection during file saving. It’s possible to save with DOS, Unix and Mac line endings and TextPad supports UTF-8, UTF-16 (which they call “Unicode”, don’t ask me why) and ANSI as character encodings. TextPad does support writing a BOM to UTF-8 and UTF-16 files, but this is an option for the so-called “document class” (see below, about highlighting), instead of being an option when saving. I haven’t found an option to switch the codepage or the locale for ASCII files. I found all the TextPad settings in the registry at HKEY_CURRENT_USER\Software\Helios\TextPad 4, so it looks like it should be easy to transport them to another system.

System integration

TextPad’s integration into Windows is okay. The style of the application is a bit outdated, I think they guys at Helios should consider updating to a more current look and feel. But that’s not a problem of usability. The main dialogs are quite alright as well, although they could easily be a little bigger and/or resizable, which would make them less crowded. Some of the utility dialogs, like search/replace, suffer from a wide-spread problem: they are so tiny that the UI elements only just fit in, the buttons are already smaller than they should be with the text only just making it on the surface of the button (and that’s in English, one of the shortest languages there are) and all the buttons are crammed into some funny layout on the right side of the dialog. Nothing intuitive about that.

Integration into the Explorer context menu was done by the installer and seemed to work fine. There were no technical problems using ClearType and the Consolas font with TextPad. Making the settings for the font proved a bit cumbersome, because the font is one of the settings that are made for each so-called document class in TextPad. There is a default document class, but that one is only used if no more specific class is found for a file extension, so to make the editor use the Consolas font in all configurations it’s necessary to make the change in many places instead of just one. Virtual directories in namespace extensions as well as UNC paths are supported.

Syntax highlighting

It’s a funny thing with the standard highlighting support of TextPad: several highlighters aren’t configured in the standard installation although they are included. To explain: TextPad bases support file types on the so-called document classes, which are bound to a list of file extensions and aggregate all the settings specific to the file type. Out of the box, only four document classes (apart from some “internal” stuff like Binary) are configured: C/C++, HTML, Java and Text. The default installation includes 26 highlighting definition files, most of which are not in use. So, hint to the TextPad makers: save the user the work and create document classes for these by default! The only one of my wanted highlightings configured out of the box was HTML. Using the existing highlighters, I was able to configure document classes for C#, Pascal and Perl. In the download area of the TextPad website I was able to find a highlighting definition for XML (you have to put such an external file into the samples folder to install it - huh?), but I was out of luck for diff and e-mail. It looks to me as if TextPad supported an unlimited number of highlighters (i.e. document classes) and it’s easily possible to add extensions to existing classes. One thing is inconvenient, though: changes to a document class are never applied to open files, it’s necessary to close and reopen a file to see the effect of any chances to the corresponding class. It’s possible to create additional highlighters, they are stored in text format files. TextPad doesn’t seem to implement any means of recognizing file types, apart from the file extensions.

Extensibility

TextPad contains a macro system, which works with an integrated recorder. It’s not possible to manually edit macros, they are stored in a binary format. The recording works quite well in its restricted way, I tested selecting text, typing and using search/replace. In multi-play mode, it’s possible to run a macro more than once without interrupting, thereby simulating a global loop. It’s possible to integrate external applications into TextPad’s Tools menu and regular expressions can be used to parse the output of any such applications. This is useful to integrate compilers or make tools into the editor, to be able to jump directly to error locations. Apart from that, TextPad seems to have no other extensibility model.

Networking

There’s no networking support in TextPad.

Support and community

I had no reason to contact the Helios Software support. As support goes, they seem to be one of these companies who think that support can happen in a web forum… they do have a feedback form on their web page that customers are supposed to use (quote) “only if you have exhausted every other option, or have a purchase or licensing question”, and they also inform their customers that they may not reply to queries that have already been answered on their site. Well, personally I hate web forms and I almost hate web forums. What’s more, I looked at the forum and while there seems to be a nicely active community there, in many threads I didn’t see any reply that looked as if it actually came from somebody from Helios. It might be just me, but that’s not what I expect support for a commercial program to be like. I really want an email contact so I can write down my requests in my own mailer and I can store the replies in my own archives, it’s as simple as that. A community forum and a web form with a disclaimer like the above are not good substitutes.

Price

A single TextPad license costs $30 (US) or £16.50 (UK), which sounds like an average shareware price to me. I guess the functionality is worth that.

Results in numbers

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