Please click this logo to help me get on their beta program:

Xobni outlook add-in for your inbox








7/6/2006

PowerShellIDE is available

Filed under: General, Programming, .NET, Software — Oliver Sturm @ 8:40 am - 2 years, 1 month ago

Powershellide

This is fantastic – an IDE for PowerShell (used to be Monad). Get it here, it’s free!

14/9/2005

No time for text editor tests

Filed under: General, Best text editor — Oliver Sturm @ 10:14 am - 2 years, 10 months ago

I just thought it might be a good idea to write a post for my text editor category again - the problem is, I don’t currently have the time to do more tests. I haven’t lost interest in this, so rest assured there will be more tests as soon as my time allows it!

28/7/2005

Text editor test: EditPlus

Filed under: General, Software, Best text editor — Oliver Sturm @ 6:47 pm - 2 years, 12 months ago

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 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 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

18/7/2005

Tabular overview of tested text editors available

Filed under: General, Software, Best text editor — Oliver Sturm @ 7:58 pm - 3 years ago

I have now started to make a tabular overview of the tested text editors available. You can find it here and I will keep it updated with new results as I continue to test.

15/7/2005

Text editor test: TextPad

Filed under: General, Software, Best text editor — Oliver Sturm @ 7:40 pm - 3 years ago

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

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 that 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

13/7/2005

Text editor test: UltraEdit-32

Filed under: General, Software, Best text editor — Oliver Sturm @ 6:41 pm - 3 years ago

So here it is, the first test result in my quest for the best text editor. I started with UltraEdit because I had recently downloaded the trial version of it, and because the web site makes full-bodied promises about it: UltraEdit the #1 selling, most powerful, value priced text editor available! The ideal text, HEX, HTML, PHP, Java, Perl, Javascript, and programmer’s editor!

UltraEdit-32 is a commercial product by IDM Computer Solutions, Inc. and has its homepage at http://www.ultraedit.com. The version I tested was v11.10a (5/10/05) with a hotfix dated 07/07/05 installed.

First impression

The first impression I got was that the installer didn’t work correctly. The download I got was a zip file and I ran the setup from there directly, which apparently didn’t extract two additional files correctly. During installation, I also elected to install a German dictionary in addition to the standard English one, and the setup program wasn’t able to deal with that. A dialog told me that a file would have to be downloaded from somewhere, but this didn’t seem to work. After a while, the dialog switched to another file, and back again after another while. I recognized that one of the files was the standard English dictionary that was really in the zip file - I killed the setup process, extracted the two files alongside the setup executable, went without the German dictionary and finally the setup was able to complete its job.

General features

The program startup is fast enough. Although the evaluation period is a generous 45 days, a nag screen appears on program startup from day 1, which is not so nice because it hangs around in the way for a while. It’s actually possible to work with that dialog in the foreground, but I would have thought it should suffice to show that dialog when the evaluation period is nearing its end.

The document model is a mixture of MDI and a tabbed interface, the tabs are implemented in a docking window which can be closed. Anyhow, UltraEdit needs only to be started up once for any number of documents.

Regular expressions are supported, and the online help even lists a two variants, namely the “old UltraEdit syntax” and the “Unix-compatible” syntax. I was going for the Unix syntax and this proved to be a bit of a problem because I failed to see the sentence in the help file where it says that I have to switch UltraEdit to use that syntax in the Options dialog. After I finally found out about this I was able to search for the expression ([^\s]+) ([^\s]+) and replace by \2 \1, although I didn’t find in the help that there was any support for regular expression replacements at all. So, at a glance, very good!

UltraEdit’s memory consumption is a peculiar thing. Right after startup it was at only 4.3 MB, which went up to 7.5 after my first use of the file select dialog. Then, after playing around with the regular expression tests, with three small files open, I noticed that memory was now up to 23.6MB. I’ll keep an eye on this while I continue the tests. (Update: During the course of the tests, memory usage went up to about 30MB, but no more than that, even with a lot more files loaded and the editor running for two days.)

The button to toggle line-wrapping is right there in the default toolbar. Toolbar configuration is very flexible, although the user interface for it is not very intuitive. A nicer configuration dialog, like Office has had since 1997 at least, would do no harm here.

The next not-so-nice thing is scrolling and redrawing. Scrolling is sluggish - I have my keyboard set to the highest possible repeat rate, but I can’t scroll very fast by holding down the cursor key. I tried timing things, and I came to about 20 lines a second, merely 2/3 of the keyboard repeat rate. UltraEdit takes close to 100% CPU while the down key is being held. Even worse is redrawing: the complete editor surface is being redrawn all the time while the window is being resized, or while the splitter of the “File tree view” is being dragged (which also results in a resize of the editor pane). This redraw seems to be very slow, so that I can more or less watch it happening, regardless of the screen I’m running the editor window on. Both redrawing and scrolling get much worse when the editor pane is actually covered with text (long lines from top to bottom), resulting in bad flickering when scrolling up or down. Although it wasn’t reliably reproducible, I saw a scrolling bug a few times when using Page up or down, where only part of the editor pane would be redrawn after the key press.

In general, navigating large files can be quite painful. I have a test XML file with all its content (3.5MB) on one line and it’s not really possible to comfortably work in this file. The single line is wrapped at what looks like 4096 characters, for no apparent reason, but even moving the cursor left or right within any line is painfully slow, while up and down is even slower than in the test with the “normal” file.

Hex editing is supported, together with searching and replacing values. Regular expressions even work with hex edit search, but they are restricted to the ASCII text - would be nice if they also worked for the hex representation. Why not search for DEAD....?

UltraEdit is a disk-based editor which doesn’t load edited files into memory completely (there’s an option to use memory buffers instead, which I haven’t tested extensively). Editing extremely large files without performance issues becomes possible this way. To approach the programmers have chosen is to make use of temporary files - for every file that’s opened in UltraEdit, a temporary file is created first. There are a few options to control this behaviour, but only to a certain extent. For example it doesn’t seem to be possible to automatically have memory buffers used for files up to a certain size… but maybe that’s just a weird idea of mine, wanting to reduce hard disk traffic.

The editor is completely usable with mouse or keyboard. All menus and toolbars are configurable, as are the keyboard shortcuts. Very good!

There are a few simple text formatting options, but nothing too fancy. All formatting takes place after text entry and has to be invoked manually. It’s possible to define the layout of a paragraph (left, right, center, fill), but apart from that only indented paragraphs and line wraps at specific columns are supported.

UltraEdit supports all the various line endings as well as Unicode in UTF-8 and UTF-16, with and without BOM. All these types can be converted from one to the other. In addition, there’s ASCII to EBCDIC conversion. For non-Unicode files, the codepage and even the locale can be switched. Great!

UltraEdit can save its settings either in an INI file (stored in the proper path under Documents and Settings) or in the registry. In both cases, this should be transportable fairly easily.

System integration

UltraEdit does certainly look like a modern Windows application, but the UI could do with a workover in several places. For example, the Options dialog is enormously overloaded and the layout of many dialogs is inconsistent and unprofessional. Throughout the application, there are at least five different layout variants for standard buttons like Ok, Cancel or Help. Many dialogs should also simply be larger. Guys, read some UI guidelines! Once again I can’t help but wonder how a program goes through eleven (11!) major versions without anybody bothering about the UI. It’s the business card of an application, the first and most immediately impressive part of an application that a user sees. With UltraEdit, at least the main window doesn’t have any archaic elements, but the dialogs… oh well.

The installer integrated an entry for UltraEdit in the Explorer context menu, and file type registration and configuration is available directly from the Options dialog.

My use of ClearType was a problem at first, because fonts weren’t anti-aliased at all. I changed the font to Consolas and the result was even more horrible. An option in the long list on the General page helped: “Setting this may improve display issues with ClearType fonts on Windows XP”. Yes, that’s the name of the option. Fine that it works, but I can’t help but wonder if these guys really know what they are doing. What funny development language/environment are they using that allowed them to break ClearType support in the first place?

Handling files in virtual directories (namespace extensions) and UNC paths was no problem for UltraEdit.

Syntax highlighting

The syntax highlighting supports C#, Perl, HTML and XML (from my list of wanted formats) out of the box. Support for languages can be extended, but the means to do it are quite… hm… ridiculous, really. UltraEdit has a so-called wordlist, which is a text file in which a list of at most 20 blocks of highlighting configurations is stored. To extend the system, you have to edit that file manually and restart UltraEdit afterwards. The blocks in the file are numbered, and it’s up to the user to make sure that there are no duplicate numbers.

In a download area on the UltraEdit web server there’s a long list of add-on wordlist entries that need to be downloaded and manually fiddled into a wordlist file locally - as long as there aren’t twenty entries already in that list (11 are used by the default installation). I was able to find a Delphi highlighting there, but I didn’t find any for diff or e-mail formats.

Extensibility

UltraEdit can be automated by its macro system, which also supports a recording function. The macro editor didn’t look particularly comfortable to me, it could probably benefit from a UI workover as much as any other part of the application. For example, it would be extremely helpful if there was some hinting system that would show information about the syntax and parameters of the various commands.

The macro system itself looked quite capable and there are a few macros in the download area on the web site - together with the recording function that should be enough to get started.

Although the program comes with a few functional modules that look like they might be extensions (a colour selector, HTML tidy, …), I couldn’t find any information on an extensibility API. It’s possible to configure external tools to call from the editor, but these don’t integrate with the editor in any way.

Networking

UltraEdit is able to access files on FTP servers (my god, the UI!) and it was able to open a file from a WebDAV location that was previously configured in My Network Places. It didn’t have any support for WebDAV of its own, though.

Support and community

There’s an active community forum for UltraEdit and a support e-mail address at support@idmcomp.com. I haven’t had reason to contact the support team, but I generally like the fact that they want to hear about bugs and feature requests in this direct way, because I haven’t had many good experiences with companies who supposedly handle their support solely via forums (apart from the fact that forums are far more difficult to use for me than my own mailer, you usually have to register first (yeah, yet another password!) and so on… but I digress).

Price

The price for a single, non-concurrent, user license is $39.95 at the current time, which seems a little on the high side, as shareware prices go. It’s nevertheless a reasonable price to ask, given the largely mature functionality that UltraEdit offers.

Other miscellaneous impressions

Why the *#**! can’t I resize the Options dialog? The options list on the General page is long and even too wide to fit without scrolling, yet I can’t resize the dialog.

Results in numbers

As announced, I assign points for each of my categories, from 1 (worst) to 100 (best). As this is the first in a sequence of tests, I won’t assign extremely high nor extremely low numbers right now, apart from places where the asked functionality is simply absent. So the real range is 20 to 80 for this first test.

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

12/7/2005

So what is the best text editor?

Filed under: General, Programming, Software, Best text editor — Oliver Sturm @ 5:01 pm - 3 years ago

I guess every computer user in the world has (been) asked that question at least once, and many have invested a lot of time in the quest for the best, if not the perfect, text editor. Apparently many aspects of the problem are a matter of taste, and the fact that the technical environments are changing all the time (and even faster for us programmers than for most other people) doesn’t make it any easier.

I have once again decided that I should have another look at what’s available and I thought it might be a good idea to publish my findings in a way that allows others to benefit from them. I don’t plan to look at all available text editors out there at the same time, but rather to take the time every now and then to look at one or a few and document my findings in a categorised way.

Below I’ll publish the criteria by which I will rate the various contenders. While I was trying to set up that list, I already recognized one problem: I won’t be able to do it at this time. I’m sure there are editors out there that will surprise me with features I didn’t think of at this time, and I might recognize these features as important as time goes on. So I’ll probably re-evaluate the criteria every now and then.

Finally, I should note that I’m looking at editors running on Windows, this being my current platform of choice for my desktop systems.

The criteria

Let me say this up front: this is not supposed to be an impartial evaluation. These criteria are my own, not someone else’s. You might have different priorities, and while I’d like to hear about them (feel free to comment), I probably won’t respect them in my evaluations.

All distinct criteria will be rated on a scale from 1 to 100. I always find it funny when people say: “I’m using a scale from 1 to 10 and the rating for this item is 7.5.” That’s why I’m going for 1 to 100.

General features, in no particular order Various entries that don’t seem to fit into any of the special categories below
The editor should start up fast. I don’t really care whether the editor is implemented as an MDI (or tabbed) application or as a single-document application, but obviously the importance of the fast startup is greater with a single-document approach. When I say fast, I mean it should be fast on my 2 GHz laptop, not only on the highest standard machines.
The search/replace function should have support for Regular Expressions. Incremental search would be nice, as well as multi-file operation.
I like to use my text editor as a text viewer, so I often need quick access to configurations like the line wrapping setting. There should be some means to configure the editor for quick access to features like this.
Scrolling and other redrawing functions must be implemented fast, even with big files. I have a multi-head setup on my system with three large displays. One of these is attached to a PCI graphics card, the other two are rotated by a software driver, so neither of these has the performance of last-generation graphics adapters. OTOH, each of my displays is capable of showing full-screen videos, so I know they are fast enough…
The editor should have a low memory footprint. This is more important if a single-document approach is used. I’m not one of those people who want everything in 2MB, but I think an editor is one of the minor tools on my system, even if it’s regularly used, so it shouldn’t use the same amount of memory that Visual Studio or an Office application does.
I’d like to see support for Hex editing, and searching and replacing Hex values should also be possible.
It should be possible to edit big files, at least up to the size of the available memory, without performance issues. I expect that files can have unlimited numbers of lines and columns. Obviously, optimised memory usage would be a good thing, i.e. keep down the allocated bytes/file byte ratio down. Editing files larger than available memory would be a bonus that I’d also like to see.
I expect to be able to use the editor without resorting to the mouse. I don’t want a non-GUI app, though. It would be nice if keyboard bindings were configurable as they are seldom exactly the way anybody wants them.
To edit text, I’d like to see features for formatted text entry. Create bulleted lists, ordered lists, proper word wrapping in indented paragraphs, reformatting of changed paragraphs, …
The editor must support various file formats. I need support for DOS, Unix and Mac line endings and for Unicode (at least UTF-8 and UTF-16) with and without BOM. I would also like to have a switchable codepage for ASCII files. I want to be able to convert files from one of these standards to the relevant others.
I want to be able to carry all my preferences for the editor to another system easily. This may or may not be an integrated function of the editor, but settings shouldn’t be scattered all over the system.
System integration The editor should be a “real” Windows program of the newest generation.
I expect the program to look like a modern Windows application, modern meaning the standard of Windows XP. This may sound like nitpicking to some, but to me it means that the author(s) keep up to date with current technology and chances are bigger they are not using VB 4 for the product.
The editor should integrate itself into the Windows Explorer context menu to allow me to open any file in it immediately. Registration for a list of file types would also be fine, but I’d like this to be configurable (from the editor, that is). The editor or its installer should do these things automatically.
I use ClearType on all my systems and I expect the editor to be compatible with that. I’m going to test editors with the new Consolas font.
Standard Windows mechanisms should be supported by the editor’s file management. I want to have access to UNC paths and namespace extensions like My Documents.
Syntax highlighting The editor should be able to syntax highlight my files of various types.
As a minimum, I need highlighting for the following file types: C#, Pascal (Delphi), Perl, HTML, XML, diff and e-mail. I’m sure I’m forgetting something here and I’d like to see much more than that.
Support for highlighting should be able to handle an unlimited number of file types and it should be extensible. I also want to easily assign new file types (by extension) to existing highlighters. It should be possible to create additional highlighters myself.
I would like the editor to implement advanced means of recognizing file types, in addition to standard file extensions. Examples would be standard XML and HTML headers, file type markers as recognized by Emacs, …
I want a comprehensive package that includes support for lots of file types, as opposed to downloading tons of support files myself (which are naturally unsupported by the vendor, if it’s a commercial product).
Extensibility It would be good if the editor could be programmed in some way, and maybe extended with modules.
It should be possible to automate tasks in the editor, by means of a programming language or a macro system.
It should be possible to extend the editor with modules programmed as separate modules. In this case, it would be good if the module system were compatible with .NET.
Networking I don’t use this very often, but I’d like to be able to access files across FTP and WebDAV.
Support and community In the case of commercial products, I’d like to see responsive support services from the vendor. In any event a lively community would be a good thing to see, but this is much more important for free/Open Source products.
Price I got this last because it’s not supposed to be a very important factor in this evaluation. In this category I’ll rate the “value for money” of the editor.
Feedback, please!

If you know of an editor, or you have created an editor that you give away, for money or for free, please contact me and tell me about it! I’d really like my list to be comprehensive. I’d like to set a limit though, feature-wise: your editor should have something interesting that standard Windows Notepad doesn’t have, to be considered for inclusion. It doesn’t matter if your editor fulfills all the criteria above - I’ll include editors that don’t suit my own needs, as they may suit others’.

New articles will be published on my blog, in the Best text editor category.

22/6/2005

Rory Blyth on bad UI design

Filed under: General, Programming, .NET, Software — Oliver Sturm @ 9:40 am - 3 years, 1 month ago

This blog post from Rory Blyth really had me biting the carpet. Although it’s very funny, there are certain serious points to it that really everybody should consider who has to create user interfaces of any kind at all. Great!

21/4/2005

VS.NET 2005 beta 2 kills networking on my Tablet PC - the fix

Filed under: General, Programming, .NET, Software, Tablet PC — Oliver Sturm @ 3:42 pm - 3 years, 3 months ago

As astonishing as this problem was, I found a very easy fix for it, suggested in the Microsoft Product Feedback Center, if you can believe it. Apparently, a similar issue was already in the beta 1 refresh that came out many months ago, but was never actually solved. I tried to make my voice heard here, maybe it’ll be fixed in the future.

Meanwhile, here’s what needs to be done to get networking back: Uninstall (or don’t install from the start) the “Microsoft Device Emulator version 1.0 Beta 2 - ENU” entry (BTW, anybody in this world know what ENU means? What’s the use of acronyms such as this in my installed applications list? Wikipedia gives a 404 when I search for it…) from the Add or Remove Programs control panel. Networking will be back to normal instantly.

Interestingly, in my normal workstation I’ve used the device emulator in the past and it used to work just fine. No idea what’s causing it to fail on the Tablet PC, and some of the other reports in the feedback center don’t seem to be using Tablet PCs at all. Oh well :-)

Developer Express gives away free Refactor! for VB.NET 2005

Filed under: General, Programming, .NET, Software — Oliver Sturm @ 8:38 am - 3 years, 3 months ago

You can find their original announcement here and this link at Microsoft tells you much more about Refactor! itself.

With the availability of new C# refactoring functionality in VS.NET 2005, Microsoft seem to have noticed the lack of similar functionality for Visual Basic developers. That’s why a cooperation was struck up with Developer Express for them to offer their fantastic DXCore-based refactoring product in a free version to VB.NET 2005 developers.

There’s lots of additional information on Refactor! available at the Developer Express website, also about the Professional version (which also works with C#, very recommended!) and the companion (parent?) product CodeRush for VS.NET. A white paper has been made available about Refactoring in Visual Basic .NET 2005 that’s really worth a read.

The free download of Refactor! for VB.NET 2005 is available here: http://www.devexpress.com/vbrefactor

There are three ways to get support for this version of Refactor!. You can contact the Developer Express support directly at support@devexpress.com, the Visual Basic IDE Forum at Microsoft’s is open to questions and suggestions at http://forums.microsoft.com/msdn/showforum.aspx?forumid=65 and finally Developer Express have opened a newsgroup called devexpress.public.dotnet.refactor.vb on their news server (you can find all the information you need to get connected to the news server at http://www.devexpress.com/Support/Newsgroups.xml.)

18/4/2005

VS.NET 2005 beta 2 kills networking on my Tablet PC

Filed under: General, Programming, .NET, Software, Tablet PC — Oliver Sturm @ 2:38 pm - 3 years, 3 months ago

I have just finished installing VS.NET 2005 beta 2 on my Tablet PC for the second time, with the exact same result: I can’t get any networking whatsoever to work on the system.

What I did is really quite simple: I cleaned up the system very carefully because there had been an installation of beta 1 on it before. I found a lot of information about that on the web, like here, I also had collected some experience doing that a few times with the CTPs (on a different system). I’m reasonably sure I didn’t miss anything important, because my main workstation, which has been through a lot more cycles than the Tablet PC, works just fine with beta 2 after the same procedure.

I ran through the setup without noticing anything suspicious. No errors, nothing. Rebooted at the end… and after that’s done, I noticed that my wireless connection didn’t come up any longer. I checked and double-checked everything to do with the connection, but found no problems at all, apart from it not working. The behaviour was rather interesting: the wireless connection was just showing that it wasn’t connected, but searching for available networks didn’t really seem to do anything. You know how this normally takes a few seconds once you click the “Refresh” link in the dialog? This didn’t happen, in fact nothing seemed to happen at all.

Finally, I found there was a newer driver available from the Motion support site. I had tried one of these drivers in the past and had had some problems with it, so I had reverted back to the standard MS driver for my mini PCI Intel card. I thought I’d download that newer driver and see if there was any tool in the package that might help me find out if maybe the antenna was broken. After downloading the driver I found that it was a little difficult to get the thing over to the Tablet PC without having any network connectivity…

I decided to plug a network cable in and go that way instead. That was when I found out that networking was just completely broken on the machine, nothing to do with the wireless card at all. The built-in fast ethernet card had the same problem: it seemed to be connected on the hardware level (for example, Windows noticed when I unplugged the cable), but it wasn’t possible to get TCP/IP running over the interface. In the Connection Status window, there was no TCP/IP information at all and a click on the Repair button gave an error message saying “Windows could not finish repairing the problem because the following action cannot be completed: Failed to query TCP/IP settings of the connection. Cannot proceed.”

I tried using DHCP and assigning a fixed address. I tried all the same things with the wireless adapter, no difference. I rebooted all the time to be sure there wasn’t any problem with that. Nothing. Finally, I restored the system to a restore point before the VS 2005 beta 2 installation and everything went back to normal immediately. Then I cleaned the system up once again, I installed the whole beta 2 once again. The result was exactly the same.

Obviously it’s possible that this has more to do with the beta 2 of the .NET framework than with VS itself. As parts of the Tablet PC tools are written with .NET, it’s probably possible that there’s some incompatibility there. But apart from the networking problems, the system seems to work just fine, even VS itself works just fine. But I need my network… I’ll keep looking for this, and I’ll keep everybody posted if I find the reason. Please tell me if you have any idea where I should look!

16/4/2005

Wow, it’s only going to take 26 hours!

Filed under: General, Programming, .NET, Software — Oliver Sturm @ 9:58 am - 3 years, 3 months ago

VS.NET 2005 beta 2 is finally available in MSDN subscriber downloads, as I’m sure I’m not the first to report. Now if only the download would use more than a third of my download capacity… So we’re talking tomorrow at the same time, if things keep up. Hm.

15/4/2005

VS.NET 2005 beta 2 coming at us quickly

Filed under: General, Programming, .NET, Software — Oliver Sturm @ 12:13 pm - 3 years, 3 months ago

I’ve heard similar information from other sources, but now Mark Bower said it out loud in his blog post: VS 2005 beta 2 is nearly there and should be available for MSDN subscribers a while before the 25th. Early next week, or maybe even a little earlier than that?

13/4/2005

Electric Editing plugin updated

Filed under: General, Programming, .NET, Software — Oliver Sturm @ 3:19 pm - 3 years, 3 months ago

In a recent post, I announced a plugin that would bring a few features from nostalgic Emacs days to the modern world of Visual Studio 2003 and CodeRush. I received some feedback on that first version and now the Updated, Fixed and Obviously Much Better New VersionTM is available.

To start with, here’s the download link again, for the current version: CR_ElectricEditing-current.zip
If you need instructions to get the plugin installed, review my first post on the topic, please.

Now, what can that fantastic plugin do? I’ll show you some screenshots and provide some explanations with them.

Deletion

One part of the functionality is related to deleting stuff. Not only stuff, but quite specific stuff, namely whitespace. Have you ever noticed how cumbersome it is to get back to the point you where working at after accidentally hitting Return? Electric Editing provides the Electric Backspace function (Hungry Backspace is what is was called in Emacs, for good reasons) that deletes all the whitespace left of the caret in one go. The standard options for that look like this:

With the exception of deleting recent electric insertions (which wouldn’t make much sense), the same options are available for the Delete key:

In addition to the pure functionality, a hinting option has been introduced that allows you to anticipate exactly what will be deleted if you use the Backspace or Delete at any time. The hint lines will always reflect the exact options you have set for the above features. You can switch hinting on and off and configure its color:

Here’s a screenshot of the hints in action, with the color set to blazing red to make them clearly visible.

Automatic linefeeds

The remaining functionality is all about automatically adding linefeeds when certain characters are inserted in the code. There are several options for this, which should really be quite self-explanatory. You can have linefeeds inserted before and after opening and closing braces, as well as after the semicolon. By default, the braces don’t get any linefeeds added if the caret is within parentheses at that moment, because it’s assumed that you want to create an inline array initialisation, like here:

  MethodInfo mi = typeof(MyClass).GetMethod("DoSomething");
  mi.Invoke(anObject, new object[] { one, another });

If you want to insert linefeeds before braces, you have the option to do that only if the caret isn’t already on an empty line.

Important: The semicolon also jumps to the end of the line before inserting itself. Because of this, there’s a conflict with CodeRush’s own smart semicolon feature, which you need to switch off to get the Electric Editing semicolon to work correctly. To do this, enter the CodeRush options dialog via the menu entry DevExpress/Options… Then make sure that the Level (the combo box in the lower left corner of the dialog) is set to Advanced or even Expert. Navigate to the page Editor/Auto Complete/Intellassist/Parens & Brackets. On this page, deactivate the two options “Smart semi-colon”, one in each of the settings groups. I hope the following screenshot makes this clearer:

That’s it then. Have fun and don’t forget to give feedback if there’s anything you like, or don’t!

10/4/2005

CodeRush Electric Editing plugin

Filed under: General, Programming, .NET, Software — Oliver Sturm @ 1:43 pm - 3 years, 3 months ago

One thing I loved back in those days when I was using (X)Emacs as a development platform was the fantastic support for editing programming languages. Obviously, C and C++ were the programming languages everybody wanted to edit at the time, and Emacs had various editing modes for these languages. The culmination point was the arrival of CC Mode, but even before that the c mode and c++ mode for Emacs had features that were called “electric”.

Years later, IDEs in the MS world have finally caught up with some of the features that Emacs has to offer in terms of code formatting (VS 2005 promises a lot in that area). Nevertheless, the ease of typing is still not comparable… certainly not without tools like CodeRush. Based on CodeRush, I created a plugin that lets me use some of the “electric” features I remember from Emacs: hungry delete and backspace and automatic newline insertion for the semicolon and the opening and closing curly braces.

I have implemented the features in such a way that hungry delete and backspace should be available for all languages (you can switch on and off every single feature on a per-language basis via the CR options dialog, look for the Editor/Electric Editing page), but the electric semicolon and braces are only available for C# at the moment. If there’s interest in having this work with C++ I might look into it, let me know please. Or does someone actually have an idea how that could be usefully implemented for VB.NET?

Currently I have tried the plugin in VS 2003, because CR itself is giving me a hard time in VS 2005 (beta 1). As soon as beta 2 is finally available, I’ll try it out on that platform, until then I expect there might be problems due to the new features the editor in VS 2005 brings.

Another thing I haven’t tried is running the plugin on the basis of a DXCore installation without CodeRush, so YMMV if you try to do that.

Now, here’s the download: CR_ElectricEditing.zip

To install, just unzip and drop the file into the DXCore Plugin directory, which by default is at C:\Program Files\Developer Express Inc\DXCore for Visual Studio .NET\1.1\Bin\Plugins.

Disclaimer: I have taken the greatest care to create the plugin in a way so that it won’t format your hard drive or damage your system in any other imaginable way. If it does that anyway, that’s your own bad luck for downloading and installing stuff from the internet.

Have fun!

Next Page »

Powered by WordPress
© Copyright 2005-2008 Oliver Sturm