My post In search of the perfect editor actually generated a comment from Scott Westfall, the Director of Software Development for SlickEdit. He said:
As the Director of Development at SlickEdit, I'm always looking for feedback on our products and why people choose an editor.
I'm glad they're interested in continuing to improve the product beyond 10.0. As I said in my original post, no editor is perfect for me. So this post shouldn't be taken as "things that are wrong with SlickEdit". Rather, they are "things that would make SlickEdit my perfect editor."
At the moment I'm using jEdit, although I'm having trouble using it as my only editor. It uses 2-3X the size of a file in memory, so it runs out of memory trying to open two 10MB files.
Here is a screen shot of jEdit, showing some of the interface elements I like. (Click to enlarge.)
The number one item I'd like is the file buffer list in the right hand column. It shows the open files in a nice directory tree structure. This makes switching between files much easier than file tabs, which are hard to navigate once you have more open files than screen width. Right clicking on the file buffer tree give options a menu of options to close, save, revert, etc. The button on the right edge of the screen toggles showing this pane, so it gets out of the way easily.
This could replace the "List Buffers ..." floating window in SlickEdit, which is used and dismissed. The Macintosh TextMate editor goes one step further and has a collapsible tree outline to opening files as well. You could see the integration of these two ideas.
The other major omission is an integrated shell window. We use a custom make environment at work. I just issue make command in the shell window to build, and then it automatically greps for errors. If it finds any, it collects all the error and switches to the Error List pane. Clicking on the errors in Error list takes you to the appropriate line. This allows for nice "on the fly" integration with the system. I know I can setup build operations with menu items in SlickEdit, but this is more dynamic. The odd "OS Shell" command in SlickEdit just pop up an unrelated shell, as far as I can see. It looks like a "checklist feature" that was added to say "yes we have an OS shell too."
Buttons along the bottom toggle the Console, Error List, and HyperSearch panes on or off, and switch between them. This gets them out of the way quickly. I like this approach much better than the push-button auto-hide feature in windows. The auto-hide window overlaps other windows, which I find odd. I'd like everything to have its own chunk of screen.
The figure shows how jEdit handles matching parenthesis, in a less distracting way than the gray selection of SlickEdit.
The split pane command is implemented so that each pane gets its own set of scroll bars. The drop down at the top lets you easily choose which buffer is in each pane. Seeing two buffers at once is as simple as clicking on a split pane icon, and then choosing a file from the drop-down (or clicking on the new buffer, and then choosing the buffer from open buffer list.) There is an "unpane" icon (my term) that restores things to a single buffer in one click.
The SciTE editor also has a few nice GUI flourishes. It has "indentation guides" which are the light gray dotted lines you see in the if statement, below. These really help the eye to line up code. They are much more subtle than most attempts at indentation guides, so they don't get turned off out of ugliness.
When you close a brace or parenthesis, it changes them both to blue. Even better, the dotted line connecting them also turns blue, as seen in the else clause.
SciTE and jEdit both do a nice job of code folding. The column to the right of the line numbers has - characters that can be collapsed to hide sections of code (the - changes to + in that case). SlickEdit should replace their "Selective Display" feature with true code folding.
I've found I use code folding quite a bit on text files. You get a poor man's outliner, which is handy for to-do lists. The jEdit code folding is shown below.
The final GUI improvement I'd like would be a cleaner open file dialog. jEdit and Boxer both have good open dialogs, where you can use a tab key to expand partial file names. (Always having to do the down arrow to select the expansion is a pain.) An easy "favorite directory" element in the dialog would also be useful.
As you can see in my outline graphic, there are several small items I'd change. I'd imagine these could be implemented in SlickEdit using the macro language. I especially like the fact that you can modify the entire menu structure of SlickEdit. jEdit doesn't allow this easily, and it relies on plug in code. The menu items for the plug ins end up together, even when they would more logically be somewhere else.
My little change are:
- A reload menu item (this seems a strange omission.)
- A unwrap line command, that takes a multiple line selection and removes the \n characters (in reformatting an email to quote it for example).
- A "copy filename" and "copy file path" menu item (or on right click menu of buffer list)
- A Prefix Lines... and Remove Prefix Lines... command. (Why is there a Comment Lines command in SlickEdit, but no corresponding way to remove comments?)
- A "search in open buffers" menu item
Add all those items, and I'll switch to SlickEdit right away ;-). The open file buffer list, and integrated shell would be my two big requests.
Thanks to SlickEdit for wanting some input.