Channels ▼


Review of Two Editors: Sublime Text 2 and SlickEdit


Both editors claim to support numerous popular languages. In C++ and Java, Sublime supports syntax highlighting with limited code completion abilities for standard library functions. It indexes all user-created code and provides code completion for a few popular functions (like fprintf) and code blocks (if/then, try/catch, etc.).

SlickEdit does a better job, as it offers both syntactic and semantic support in C/C++ and Java. It provides a function list of objects and the parameters for functions for built-in types and user-generated code. SlickEdit can tag libraries for other languages, such as Ruby and Python, and provide semantic support. A list of supported languages is available.

In addition to C/C++ and Java, I did some limited semantic-support testing in Ruby and Python in SlickEdit. For both languages, the editor has completion for built-in functions — listing member variables and functions for objects, and showing function parameters. But Ruby wasn't quite right. The editor did not seem to track object types, so I did not get code completion on instantiated objects, but typing the class name followed by the dot operator did provide a list of the object's functions and variables.

I edit HTML and XML files regularly, so this is another feature I tested. Both editors provide highlighting for XML and HTML and auto completion for common HTML elements. Neither editor detected invalid XML or HTML.

SlickEdit was quite a bit more friendly with XML and HTML files than Sublime. It auto closes tags when "</" is typed and provides documentation for HTML elements as you type. And it offers dynamic surround when certain elements, such as a table, are used (dynamic surround will be discussed shortly).

In addition, both editors support scripts for at least one *nix shell.

File Handling

Both editors showed limitations in file handling. Neither one, for example, supports moving files between directories using drag-and-drop.

One annoying aspect of SlickEdit is the lack of a proper file manager. SlickEdit could benefit from a single tool window, where files and directories can be added and removed and files can be created from templates (such as .h and .cpp files for a class), renamed, or removed. SlickEdit has these features, but they're split among several tool windows and file menus. It would be handy if they were available from the same location with the addition of drag-and-drop.

Creating files from templates is a feature that Sublime is lacking, though this feature could be added through the Python plugin API. Sublime Text also has a curious limitation: There is no way to print a file from within the editor.

Interesting Features

Both editors have a number of unique features out of the box. Sublime supports plugins through an API and a Python macro language. SlickEdit also supports plugins, but this feature is used mainly by OEMs. Instead, SlickEdit users extend the functionality by writing Slick-C macros. One essential plugin is Sublime Package Control, which helps manage (find/install/remove) packages.

Slick-C macros use a C-like DSL and appear to be as powerful as the Sublime plugin API, but I did not find a community sharing Slick-C macros like the community that shares Sublime packages.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.