JujuEdit Shrine
JujuEdit is an Australian text editor for Microsoft Windows created by Mark Pursey. It has a number of notable features:
- Regular expression–driven, finite state machine–based syntax highlight engine
- Automatic detection of binary files, which are shown using a hexadecimal editor; text, hexadecimal and binary modes can be selected on the fly
- NULL-safe editing
- Dynamic switching between character sets and encodings and between big and little endian interpretation with no alteration to the data in any way
- Transparent decoding and encoding of .gz and .svgz files (not documented; it seems to only be these two extensions)
- Character set conversion
- Disk-based handling of large files up to 2 GB
- Clean and tidy interface; the program runs SDI but search and replace history is shared between open instances
- The existence of a Unicode byte-order mark (BOM) is indicated by an underlined initial character (use of a BOM is critical in some situations as an indicator of UTF-8 encoding as distinct from ANSI)
- Alt+Page Up/Down cycles through files in the current directory that have the same file extension, preserving the scroll position where possible
- File → Delete: delete your open files!
- Export syntax-highlighted document to HTML
Newly-created files all default to UTF-8. DOS and UNIX line endings are recognised.
My dream is that one day it gets resurrected, or a replacement program appears that does what only JujuEdit does. Unfortunately, Mark Pursey has all but disappeared and has not answered correspondence in years. Although recreating the user interface would be a trivial task, recreating the exceptional intelligence of Mark’s text engine would be a considerable feat.
Revised unauthorised version
JujuEdit 1.441 was made available in 2006. Since then, the project has become abandoned. Mark Pursey resumed development briefly some years later, shortly before switching to Mac, thus ending the project forever. The source code is reportedly too entangled with the other Jujusoft products for it to be released. (You can see parts of other projects embedded inside JujuEdit.)
The shell extension shipped with the original installer interferes with Explorer, and it no longer works in modern 64-bit Windows. In addition, the default program icon is terrible, the toolbar icons are woefully outdated, and the program does not handle file association.
The installer below provides a revised program icon, a fresh set of toolbar icons that feel more at home in Windows 10, and a set of file types and file type icons for common file types that I personally use. The old and new icons can be compared below:
File associations are not made automatically; file types must be assigned manually per modern Windows practice (Windows 8 upwards will prompt automatically). The file type icons supplied at present are: CGI, CSS, INC, INI, LOG, *NIX (used for the .htacess file type), “Juju”, PHP, SQL, TXT and XML; please let me know if you desire additional type icons.
The installer also adds an “JujuEdit this” command to all file types, which makes use of the program’s ability to serve as both a text and a hex editor. Any time you come across a file you don’t recognise, you can send it straight to JujuEdit and it will open.
The default syntax highlight definitions comprise a pared-down, updated set compared to what ships with JujuEdit normally.
The first change I made to JujuEdit, years ago, was to provide it with a better icon. JujuEdit passes its 32×32 icon to Windows for use in its title bar, and since Vista and earlier used 16×16 taskbar icons, the program icon was optimised for scaling down to 16×16. (My original replacement icon was engineered to suit XP’s nearest neighbour resizing: every fourth pixel was set according to the 16×16 size, and the rest of the image was built around it.)
I have since redesigned the icon completely, optimised for taskbars with larger icons (Windows 7 upwards). Windows 10 uses 24×24 pixel icons in the taskbar, but stupidly insists on scaling down from 32×32 instead of using real 24×24 icons where available.
Icon version 1.0 above was the Mark’s original icon (in low colour and that only extended to 32×32), and 1.0a above was my high-quality recreation, with an extra 48×48 mode for Windows XP. Icon 1.0b was the same, but the 32×32 image was totally redesigned for scaling to 16×16, and was therefore hideous. Version 2.4 is the most recent revision of my redesigned icon, designed for Windows 7, 8 and 10. The 32×32 icon has a number of subtle differences to optimise its appearance when scaled down to smaller sizes. The version 2 series is characterised by visual simplification and different typeface for the “J”.
The soft wrap toolbar button was originally drawn as a modern curve shape, but the same icon is also used for the status bar, where each keystroke causes the icon to be drawn over itself, compounding the anti-aliasing. The angular arrow used in this public release is a compromise that addresses this limitation.
Bugs
There are probably more:
- Under Windows 10 the program frequently detects the control key as being briefly held, causing keystrokes to be misread as shortcut invocations; this fault is uncommon but is not restricted to JujuEdit, with Skype for Business being another victim.
- Save As does not check for an existing file, and will overwrite without prompting!
- The program constantly interrogates every open file, presumably to check for external changes.
- There are occasional visual glitches with the scroll position.
- The window management system (Window menu) is unreliable and tends not to detect all the JujuEdit windows.
- When creating a new syntax highlighting configuration, it ignores the name you give it; the name must be set by manually altering the configuration files, and those are confusing.
- The recent file menu is right-aligned in modern versions of Windows and from time to time becomes completely corrupted.
- The reverse video setting is not saved.
- Sometimes the line number readout in the status bar is out by a few lines until you toggle line wrap.
- With soft wrap enabled, sometimes the text cursor is drawn on the wrong line until you toggle line wrap.
- In a document that is shorter than the window, you can scroll the top line out of view, which can be confusing.
- File → Delete fails silently if the file is open in Excel; the window is emptied as though the file were deleted, but no deletion occurs.
- When dragging text, the window will only auto-scroll downwards; moving the cursor to the top of the window scrolls the document instantly to the bottom.
- Dragging auto-scroll only works with text from the same window, and not from other applications or other JujuEdit windows.
- The Go To dialog is modeless and is a pain to use with Active Window Tracking; this was fixed in Windows 10 Creators Update.
- The program only gives Windows a 32×32 window icon: any optimised 16×16 icon is ignored. This is less of an issue in Windows 10 which has better icon scaling for the system menu (title bar icon) of a window.
Limitations
There are almost certainly more:
- The program uses the ANSI Windows API for everything, including file handling and search and replace; while Unicode is extensively supported, you cannot use Unicode paths, or search for or replace with Unicode text.
- The program is not DPI aware. This is a major problem as it leads to fuzzy text on display scaling options 125% to 175%. Only with 200% scaling does Windows simply double the width and height of pixels. JujuEdit therefore prevents the use of displays with higher pixel densities, especially laptops.
- The program misinterprets some raw data files as Chinese text instead of binary. This misinterpretation may be inevitable and is not significant in itself. The problem is that such files take a long time to open, with the JujuEdit window not even appearing for quite a few seconds. If nothing else, the window needs to open and show a progress message while the file is being interpreted.
- Undo is per-keystroke, not per-stride, which I prefer, but many may hate; it also fails to restore the text selection.
- There is not enough of a choice of syntax highlight colours! (Highlighting uses colours 0–f, meaning that it could go all the way to z without changing the syntax).
- Files above 2 GB cannot be read.
Desires
There is not much that I really want to see changed, besides sorting out the wretched window icon. Chiefly:
- DPI awareness, allowing JujuEdit to be used on modern laptops and higher dot pitch desktop monitors
- Multiple windows open on the same document
- Regular expression–based document structure menu, that allows arbitrary character sequences to be defined as document structure that can be selected from a document outline menu
- Nesting of syntax highlight definitions, such that I only need to define the HTML, CSS and JavaScript rules once, instead of having to duplicate the CSS and JavaScript rules inside the HTML ruleset
For the most part, the program does all it needs to do: it’s fast and simple and that is all I ever want.
Copyright
JujuEdit is copyright 2000–2006 Jujusoft (Mark Pursey)
Note that, as of March 2024, the JujuEdit website is still up, but Mark Pursey’s own website has been taken over and replaced with junk.