Enhance Code Editing
by Don Kiely
June 29, 2007
Microsoft's Visual Studio has matured into a comprehensive development platform for the company's technologies. With maturity, however, has come some bloat and complexity that often gets in the way of efficient development. Sometimes, Visual Studio just tries to do too much.
SlickEdit is one of the oldest of the alternative development environments, one that goes well beyond simple text editing. It's almost infinitely configurable to match your development style, and it's able to handle almost any kind of development on any platform, including Windows, Linux, and the Mac. The tool is well worth considering if you develop using a variety of both Microsoft and other technologies, especially on a variety of platforms. SlickEdit doesn't include the wizards and myriad project types of Visual Studio, but it does make editing code far more productive.
There is a mind-boggling array of productivity features in the editor. Syntax Expansion creates a block of code based on typing a few characters, such as an if or for block in the appropriate programming language. Code navigation features let you jump around code to symbol definitions and back to the code you're working on. Context tagging displays symbol information when the mouse hovers over a symbol. And the list goes on: code formatting, refactoring, bookmarks, annotations, and so on. It includes utilities for differencing files, testing regular expressions, building projects, and interacting with version control systems. I come away with the strong impression that this product was created by developers who are tool happy!
The latest version, SlickEdit 2007 (sometimes labeled as version 12.0) has a long list of new features and enhancements. A new Class Tool window displays the members of the current class and the inheritance hierarchy of the current class. There is now rich support for formatting XML and HTML files. Dynamic surround can surround a group of statements with a block statement, properly indented. There is also a powerful Files Tool window you can use to view open buffers, project files, and workspace files, which are sortable by file name or path. The Documentation Comments Preview window uses XML comments in your code to display information about symbols (Figure 1). And, of course, SlickEdit now features Windows Vista support.
It's hard for me to imagine any features that might be missing from SlickEdit. But if you find any, you can code them yourself using the Slick-C language to enhance the environment. Much of SlickEdit itself is written in Slick-C, so you can use the same tools that its creators used to build the editor itself. You can record Slick-C macros or write them from scratch, then bind them to keys or menu items, or use them in custom dialog boxes. As the name implies, Slick-C is rooted in C, so you'll be familiar with the syntax if you know C#.
Despite generally great documentation and various kinds of help, the product is a bit intimidating for new users. The Quick Start section of online help is useful, but falls short of getting a new user up and running quickly. But once you learn the basics, the documentation is extremely useful.
SlickEdit is not trivial to learn to use productively, and is designed for hardcore programmers. But when you consider all the options for configuring it to work the way you do, along with its ability to automate various tasks and its support for just about all modern development technologies, the learning curve is worth it. VSM
SlickEdit 2007, version 12.0
Quick Facts: A feature rich, robust development environment for almost any modern technology on any platform, designed by developers for developers.
Pros: Highly configurable user interface, rich productivity features for writing code, strong support for editor emulations, generally great documentation.
Cons: Infinite flexibility and feature set makes product hard to learn, default interface is cluttered.
About the Author
Don Kiely is a senior technology consultant. When he isn't writing software, he's writing about it, speaking about it at conferences, and training developers in it. Reach him at email@example.com.
Back to top