< print >
<< back < articles home > next >>
I was getting desperate. I was at the point where I was willing to try anything. I wouldn't have ever considered a Java application otherwise. I found Jedit's homepage while searching Google for alternatives, and was wowed by the screenshots. I decided I'd give it a whirl.
I first looked to see if Gentoo (my Linux Distro of the moment) had an ebuild for it. It didn't, but there were three JRE (Java Runtime Environment) ebuilds to choose from. First, I emerged (Gentoo-speak for download, compile and install) the Blackdown JRE, currently at version 1.3.1. Then I downloaded the RPM for Jedit. At the time I figured that was the best option, as Gentoo has RPM and it works quite well. It would also allow for a clean uninstall which was my chief concern.
So I started Jedit and got an error that my JAVA_HOME environment variable was not set. Had I read the fine manual, I'd have known about this. It was easy to fix. Gentoo installed the Blackdown JRE to /opt/blackdown-jre-1.3.1/ and that's what Jedit wanted JAVA_HOME set to. Once I set the environment variable, I started Jedit.
When the splashscreen came up, clad with a progress bar, I was sure I was in trouble. The startup time was not bad at all, however. It also got better in subsequent starts. Once started, I was quite surprised to find Jedit reasonably fast and responsive. It certainly wouldn't win any races with a C app, but it wasn't anywhere close to being annoyingly slow or clunky. So much for my anti-Java attitude, neh?
As I explored the application, I realized this editor was very powerful and well designed. First off, Jedit has a very powerful plugin system. There are plugins for just about every imaginable thing. So, after I browsed the list on the website a bit, I opened the plugin manager inside Jedit and was shocked to find a complete plugin installation system that gets a list of available plugins from the website and installs the ones you choose. You can even look at a short description of the plugin. One MusePoint awarded.

Figure 2.1 - The plugin installer.
I noticed right away that the mouse wheel wasn't working. I'd seen that there was support for it, and I use the feature constantly in most applications. So I set off in search of information on how to do this. It didn't take long for me to find complete information on the various JREs and their quirks at the Jedit site. It seems that mouse wheel support was added in JRE v1.4, and Sun is the only vendor that currently ships a v1.4 JRE.
So I installed Sun's v1.4 JRE and changed the environment variable JAVA_HOME to point to my new JRE. Jedit started right up, but still lacked mouse wheel support. On a hunch, I checked the plugin installer and noticed a new plugin that enabled mouse wheel support was now on the list. The plugin installer must be smart enough to detect the running JRE and not show plugins that wouldn't work with the current JRE. Another MusePoint awarded for a smart plugin installer.
The Blackdown JRE had detected all my XServer's fonts and made them usable in Java automatically. Sun's JRE ships with a set of truetype fonts of its own, and keeps a separate repository. I wanted to use Courier New, so I copied the .ttf file into the JRE's font directory (/opt/sun-jdk-1.4.0/jre/lib/fonts/ on my system) and restarted Jedit. I was happy to find that the JRE had detected the new fonts and made them available.
All of my needs are met with Jedit and an assortment of plugins. I have a nice project manager where I can easily open files related to the current project called projectviewer. I have a spell checker that integrates with aspell. I have a tab bar of open files via the buffer tabs plugin. I have excellent HTML and XML tag completion and assistance from the XML plugin. Two MusePoints awarded for feature completeness.
Jedit sports a collection of features with the programmer in mind. Braces and parenthesis need never confuse you again with Jedit's helpful highlighting and scope lines. When writing in HTML or XML, Jedit will intelligently close tags for you by completing the start of a close tag for you. Jedit will also highlight any braces or tags that don't get closed with a red squiggly line.
I do quite a bit of PHP editing, and Jedit seems to know exactly how I like to indent my code and it automatically does all of it for me. Also, after the placement of some special code comments described in the manual, bits of code can be folded. See figures 2.2 and 2.3 for examples of this.

Figure 2.2 - Folding: The highlight marks a "collapsed" function.

Figure 2.3 - A scope line, vertical in the left margin.
Jedit has a powerful statement completion engine which makes writing code a snap. It detects the language you are using and if asked will prompt you with the possible completions for the current keyword. This is very helpful if you know a keyword starts with "foo," for example, but don't remember how it ends. It has a quirk though, in that it sometimes pops up when unrequested. I haven't yet found a way to turn this off, so Jedit gains one MusePoint for this neat feature and a loses a point for its buggy state and for not being able to turn it off.
UPDATEI heard back from the lead developer (Slava Pestov) on this, and it turns out that this is partially a bug and partially a confusion on my part. The XML plugin, which also does some nice statement completion for HTML, is what was popping up unrequested. This is easily disabled by going to General Options->Plugin Options->XML->Completion. The specific instance that was annoying me was occurring in the below example:
<A HREF="foo.php?bar=1&cat=1">
The pop-up was appearing when I typed the ampersand (&). Slava informed me that the pop-up should never occur in a string literal and that it would be corrected in the next release of the XML plugin. Therefore Jedit gets its MusePoint back!
As an aside, the XML plugin is excellent, and has saved me lots of time.
Learning to use Jedit turned out to be very easy thanks to the fantastic documentation. As I'm sure you know, documentation often is a weakness with free software. Jedit is definitely an exception to that. One MusePoint awarded.

Figure 2.4 - The help system.
Linux is a registered trademark of Linus Torvalds. Linux systems contain a large component of GNU Software, see www.gnu.org for details.
All other brand and product names are or may be trademarks of, and are used to identify the products and services of their respective owners.
All other content Copyright (C) 2002 Linux Muse. Powered by MagaMuse v0.3.5, (C) 2002 Greg Lincoln.