Reviews

Software Reviews
Book Reviews

Communities

Edmonton OS X Users

Other

Personal Info
Home



Using Visual SlickEdit 5.0

The hunt for the perfect IDE (Integrated Development Environment) continues. For Windows it's not too difficult to find. Every C or C++ compiler you buy for Windows comes with it's own IDE, whether it's a Microsoft product or Borland or anyone else. But what about the Linux programmers who want a good IDE? gcc doesn't come with anything so most people use a simple text editor like Emacs or VI to write their programs in.

While this works well for most people who have been using Linux for quite a while and are comfortable with it, this doesn't work well for people who are new to Linux and accustomed to high-quality commercial IDE's. While there are a number of open source IDE's available like Glade or latte, these IDE's are still relatively immature compared to their Windows counterparts.

Enter Visual SlickEdit. With their latest 5.0 release, MicroEdge Inc. have yet again made available a stunning IDE for Linux users. While Visual SlickEdit is not strictly for Linux (there are versions for Windows, OS/2, and many other platforms), the Linux version is native and very well written.

Some of the Features

There are many features to Visual SlickEdit. It is a comprehensive IDE and source code editor with an impressive array of features. To delve into all of the features would take far too long, so I will just list some of the more interesting features that may entice you into giving Visual SlickEdit a try.

This program is not simply an IDE or editor for C or C++ like many IDE's out there. Visual SlickEdit can handle an impressive array of languages including C, C++, Java, Visual Basic, HTML, Perl, Awk, Pascal, Fortran, dBASE, Modula-2, Assembly, Cobol, Ada, and many more. You can even add support for other languages by doing a little bit of extra work.

Many programmers use RCS (Revision Control System) or CVS (Concurrent Versioning System) to keep track of differences between various revisions of source code. For instance, you write your initial piece of code, check it into the RCS or CVS repository and that file will be saved. The next time you edit and check in the same file, the differences are stored so that at any time you can "check out" a specific revision of your program file. This allows you to view differences between versions, back up to previous versions, and so forth. Visual SlickEdit can handle various version control systems including RCS and PVCS, SourceSafe, SCCS, and a few others that are Windows-specific. For Linux users, you'll want to use RCS. Just make sure you have RCS installed on your system. If you use a distribution that uses RPM packages, you can easily find this out by issuing the following at a command prompt:

rpm -qa|grep rcs

This will tell you what version of RCS you have installed (if any). If you don't have RCS installed, you can install it off the installation CD-ROM that came with your distribution. Almost every distribution comes with RCS.

Visual SlickEdit also supports languages embedded in HTML like Perl and PHP. By default, however, PHP support does not come with Visual SlickEdit 5.0. You will need to get the 5.0b patch from the Visual SlickEdit website and install it to get the PHP support.

Aside from all of the other regular text-editing features you would expect from any good text editor like spell checking, syntax expansion, indentation and so forth, Visual SlickEdit also includes it's own FTP client so you can edit remote files transparently. It also includes a really cool feature called DIFFzilla which will let you view the differences between source trees. DIFFzilla also comes with a feature called "Dynamic Difference Editing" which color codes differences between files as you type.

Getting Visual SlickEdit

Unfortunately, Visual SlickEdit is not free. You can download a demo version from www.slickedit.com to try out, but if you decide you like it enough, you'll need to purchase it. The cost for Visual SlickEdit for Linux is $275.00 USD and it gets shipped electronically. On the website it looks as though you can only purchase a boxed copy with a manual for the Windows platform. To upgrade from a previous version of Visual SlickEdit, the cost is $99.00 USD. While this seems high in the age of open source free software, Visual SlickEdit seems worth the cost for a programming professional coming from a Windows IDE background. To put it bluntly, I don't think someone who has been programming on Windows for a while will appreciate having to do their programming in Emacs if they decide to write for Linux. Visual SlickEdit helps to ease the transition a little.

If you do purchase Visual SlickEdit, I highly recommend going back to the site and immediately downloading the upgrade patch. This is a must for anyone doing any work in PHP, as 5.0 does not support PHP out of the box. For those who want to look at the features of Visual SlickEdit, download the demo from the website. The Linux version is listed with the other versions for various UNIX platforms. The only restriction with the demo version is that it cannot save files. But it is otherwise unrestricted so you can spend some time fiddling around with it to decide whether or not to pay the steep purchase price.

Customizing Visual SlickEdit

Let's look at a few ways you can tailor Visual SlickEdit to your needs. It is quite a versatile program and once you begin to experiment with it I'm sure you will be as impressed as I am.

The first thing we'll look at is how to customize the keybindings in Visual SlickEdit. Since not everyone who will find it useful will come from a Windows background, MicroEdge intelligently decided to make a few different modes to emulate popular editors. These include Emacs and VI emulation modes, among others. To switch modes, go to the menu bar and select "Tools" and then "Configuration" and finally "Emulation". A dialog box will appear listing the various modes that can be selected. CUA is the default Visual SlickEdit mode, but you can select any mode that resembles what you are used to.

Most of what you can configure is selectable in the "Tools/Configuration" menu. This includes selecting different fonts, keybindings, syntax indenting, and so forth.

Supporting Different Languages

Visual SlickEdit supports an array of languages, as we've already mentioned. Right off the top, support for C, C++, Delphi, Java, HTML, Pascal, Assembly, and Slick-C are installed. Slick-C is the Visual SlickEdit macro language (more on this in a moment). In order to install support for other languages, you simply need to open up a file with the corresponding file extension. For instance, to include Perl support, open a file with the extension "pl". For AWK support, open a file ending in "awk" or for Cobol open a file ending in "cob" or "cbl". When you first open a file with an associated extension, the macros for that language will be loaded. You can view the details of the different file extension matching by going into "Tools/Configuration/File Extension Setup" from the menu bar. From the pull down list, you can select the many file extensions that Visual SlickEdit will recognize and the modes associated with them. You can even modify things like indentation values, margins, what characters should be considered part of a word, the tab size, the syntax color coding, and much more. You can even select your preference for begin/end styles. For instance, in PHP mode you can select from three different begin/end styles:

Style1:

	  if (){
         ++i;
      }

Style2:

      if ()
      {
        ++i;
      }
	  

Style 3:

      if ()
         {
            ++i;
         }
	  

The begin/end styles can be selected from the "Options" button once you have selected the language you want to modify. To save your changes, click on the "Update" button.

You can also use the Beautify Source function, which will clean up your source code a little. There are a few modes you can use with this function (which can be found in the "Tools/Beautify Source" menu). You can use C/C++, HTML, Java, Javascript, or Slick-C settings. There are certain values you can change, like the indent value for syntax indenting, case changing based on certain attributes, and so forth. While you can change some of the values, it doesn't look like you can add your own source "beautify" code, so if you wanted to beautify your Perl source code, you would have to select the C/C++ mode and make do with what you can customize. You can, however, make your own schemes within the Source Beautifier, so you only have to make those customizations once to use them again later.

DIFFzilla

DIFFzilla is the name of the graphical diff tool included with Visual SlickEdit. Many Linux programmers are accustomed to the command line diff tool, but DIFFzilla (as the name somewhat implies) is like diff on steroids.

DIFFzilla will let you compare the differences between two files, or a file and the current open buffer, or between a specified set of files in two different directories. For example, you can compare /usr/local/src/myprogram�]1.2/*.c to /usr/local/src/myprogram�]1.1/*.c and see which files differ and how.

To use DIFFzilla, click on "Tools" in the menu bar and then "File Difference". Or you can use the CTRL+= hotkey combination if you are using the default CUA emulation. The first thing you must do is select the files to diff. You can select files, buffers, or directories from the dialog box that will pop up. You can also specify certain options by clicking on "Options", such as ignoring case or white spaces. Once you have selected the two files, buffers, or directories you want to diff, click on "OK" and a new window will appear with the two selections side-by-side. Visual SlickEdit uses color highlighting to let you immediately spot the differences in files. It's even real-time so you can edit either file and see how they change in comparison to each other. You can merge the differences in files either way, from the first file to the second and vice versa. When you are performing a diff between two directories, you are able to select files to include in the "Filespecs" field, and files to exclude in the "Exclude filespecs" field. You can also indicate if you want to compare those directories alone or any sub-directories they may contain by selecting the "Recursive" check box.

Another handy feature is the ability for DIFFzilla to generate file lists. This is only useful if you're comparing multiple files, like two different source directories. When it has finished comparing files you will have a side-by-side list of files in each of the two directories. Click on "Save". Another dialog box will appear. When it does, select "Save Path1 Filelist" and then also check off the "Include different files" and "Include Files not in Path2". Then make sure all of the other check boxes are off. Now click on "OK" and give the list a filename, like myprog-source. The resulting filename will be myprog-source.lst. Once it has been saved you will have a list of files that differ between the two directories. You can use this list to archive just those specific files using tar, zip, or any other archiver that supports reading in a list of files from another file.

Macros and Slick-C

Visual SlickEdit comes with a very nice macro system that is based on it's own version of C, which they aptly call Slick-C. Where some programs use variations of BASIC or other similar languages for macros, MicroEdge decided to use something with a little more power and flexibility, without using C++ itself and some of the problems associated with it. The Slick-C language syntax is mostly C++ with a few major changes. With each new version of Visual SlickEdit, it seems that Slick-C is becoming more advanced. Even with version 5.0 they have plans for the future that include Java-like style classes, support for char and short types to save memory, and support for template classes. A feature that really interests me is the ability to generate C++ code from Slick-C source. In the future they plan to convert Slick-C code into C++ code that can be compiled by any C++ compiler.

But this doesn't mean that Slick-C is bad or incomplete as it stands right now. It is a very powerful language and some might think it overkill for a macro language. You can do anything from making simple little macros to full-fledged games written in Slick-C. However, you do need Visual SlickEdit in order to run any of these Slick-C programs. For some working macros and Slick-C programs, you should visit www.slickedit.com/macros.htm. There are macros from Visual SlickEdit users and MicroEdge employees available for free download. And if you write your own macros or Slick-C programs, you can share them with others by sending them to MicroEdge.

Conclusion

As you can see, Visual SlickEdit is an extremely powerful and flexible editor. I hesitate to call it a programmer's editor because it can do more than just that. It works as an exceptional text editor and a pretty decent HTML editor as well. But, to be fair, the majority of the features in Visual SlickEdit would only be interesting for programmers and developers. I don’t know too many people willing to part with a few hundred dollars simply for a GUI text editor or basic HTML editor. Due to the flexible nature of handling different languages, the incredible Slick�]C macro language, and DIFFzilla, Visual SlickEdit has a number of features that many programmers will really appreciate.

Although the cost is a little high and some may feel Visual SlickEdit not worth that kind of money, I think there are many others out there who do and use Visual SlickEdit religiously. I know that I find more and more uses for it daily. Unfortunately, I have only been able to touch the tip of the iceberg with this short introduction to Visual SlickEdit. To truly appreciate the elegance that Visual SlickEdit can provide to your programming, you really need to try it out yourself. I encourage you to try the demo and after seriously taking a look at it, decide whether or not it is for you. I think you may surprise yourself, especially if you're in the market for a good source code editor or IDE under Linux.