Code Editor Features

Files and Editing


Multiple Document Group Interface

The MDI layout has been completely rewritten to support multiple groups of document tabs. Document tabs (and groups of tabs) can be floated as separate top-level windows, allowing better use of multiple monitors Files can be dragged and dropped to move between tab groups or to create new groups. The new document tabs offer much better performance than the previous File Tabs tool window, better supporting users who prefer to keep many files open.


Surround With

Use to surround existing lines of code with a new structure such as: if, for, while, and try. The existing code is automatically placed inside braces and indented. Additional structures can also be defined for Surround With.



Automatically formats line selections when pasted. The pasted code is formatted to match the indentation of the new location and the brace style adjusted to match your settings.


Dynamic Surround

Surround existing lines of code with block statements or tags. Dynamic Surround allows you to expand a block after syntax expansion, using the arrow keys to move the end of the block up or down. Surround With allows you to select lines and then choose a block structure or tag.



The built-in beautifier allows very fine-grained control over source formatting options for C++, Objective-C, Java, JavaScript, PHP, XML, or HTML. You can pick from one of several pre-existing profiles and save your modifications to create your own profiles. Source can be beautified on demand using any of the profiles and can be configured to beautify as you type using your preferred beautifier settings.


Beautify While Typing

When the "Beautify while typing" feature is enabled for C++, Object-C, Java, JavaScript, XML, or HTML, your code will be automatically beautified when you type ';', '{' or '}'. This improves the consistency of your code and produces more readable code with better spacing.

SlickEdit is the first product to beautify C++ as you type.  Even with the complexity and ambiguous syntax of C++, re-spacing options for all operators including * are supported.


Syntax Expansion

Expands common block structures (if, for, try, ...) when the initial keyword is typed. For example, when "if" is typed followed by a space, SlickEdit inserts the parentheses for the condition and the braces. You can define additional structures to be expanded.



Completions reduce keystrokes by automatically completing symbols as you type. After typing the first few characters of a symbol, a brief pause will pop up a list of possible completions. This list is comprised of matching symbols in the tag database and matching lines of code in the current buffer. If a line match is selected you can add successively more text from that line using the complete-more command (Ctrl+Shift+Space).


Word Completion

Complete the text at the cursor by matching existing text in your file. Use Ctrl+Shift+Comma to match backward from the current position, or Ctrl+Shift+Dot to match forward. Ctrl+Shift+Space completes more of the current match.


Code Templates

Use to automate the creation of common code elements, like a standard class implementation or design patterns. You can create templates for a whole file or multiple files.

Code Templates


Define short names that can be expanded to insert text into a file or directory path in SlickEdit, using (Ctrl+Space). Aliases can automatically insert the date, time, cursor placement, or prompt for parameters.


Multiple Cursors and Selections

Perform multiple edits at the same time on different lines/selections.


Comment Wrapping

Formats block comments as you edit them, automatically wrapping based on your settings. Comment wrapping preserves comment border characters.


Smart Line Selections

Line selections for single or multiple lines are pasted above or below the current line of code (depending upon "Line insert style" setting), saving you from tediously positioning the cursor at the beginning or end of a line prior to pasting the selected lines.

Symbol Analysis and Navigation


Code Navigation

Use (Ctrl+Dot) to jump from a symbol to its definition. Use (Ctrl+/) to list all of the references for the current symbol and optionally jump to the first reference. These operations set a bookmark that can be popped to return you to the previous location (Ctrl+Comma). Use (Ctrl+Dot) to jump from a symbol to the symbol definition.

Code Navigation

Preview Tool Window

Displays the definition of the current symbol and associated documentation in the editor window, allowing you to see the definition without having to open a separate buffer. The Preview window also shows information for other windows, including the Class, Defs, References, and Symbols tool windows. By default, Preview is docked into a tab group along the bottom of the editor. It can also be displayed by selecting View > Tool Windows > Preview.

Preview Tool Window

References View

Displays the list of references for a symbol. Use (Ctrl+/) to open the References view for the current symbol, or you can type or select a symbol in the Symbol drop-down list. Click on a reference to preview it. Double-click to jump to it.


List Members

Typing a member access operator (for example, '.' in Java' or "->" in C++) displays a list of the members for the corresponding object or symbol. To access this feature on demand, press Alt+Dot.

  • Show Comments - Comments are displayed in a mini HTML window which supports rendering Javadoc, Doxygen, and XMLdoc comments. When a symbol has multiple definitions or overloads, and multiple sets of comments, the comments will indicate that you are looking at item "< 1 of n >". Click on the arrows or use Ctrl+PgUp and Ctrl+PgDn to cycle through the comment sets.
  • Completion on Space - Pressing the spacebar when List Members is displayed will insert the longest unique matching prefix from the symbols in the list. For example, if the list contains FLAG_CHAR and FLAG_LONG, then typing FL followed by a space completes the line of code up to FLAG_.
List Members

Tools, Integration, Customization


Debugger Integration

You don't write bugs. We understand. But sometimes you have to debug somebody else's (not yours!) code.

SlickEdit's integrated debugging provides a convenient and easy to use front-end for many debuggers. Set breakpoints, step, inspect the stack, view variables/members - all the features you expect from a debugger. The following is a list of debuggers supported along with any special features unique to our integration:

  • GNU C/C++ GDB - Supports attaching to running process, core file, and remote.
  • Java JDWP
  • WinDbg - Supports attaching to running process, executable, and dump file.
  • Clang C/C++ LLDB
  • Google Go
  • Python pydbgp - Supports remote debugging.
  • Perl perldb - Supports remote debugging.
  • Ruby rdbgp - Supports remote debugging.
  • PHP (using Xdebug plugin) - Supports remote debugging.
  • Xcode
  • Android JVM and NDK (using gdb)


Version Control Integration

You shouldn't have to leave the comfort of your own editor simply to interact with your (or your team's) version control system.

SlickEdit integrates with popular version control systems including: Git, Mercurial, Subversion, CVS, Perforce, PVCS, and ClearCase. Common operations, like checkin and checkout, are of course integrated and just a click away. SlickEdit also leverages the power of DIFFzilla, its powerful file differencing tool, to make it easy to view differences between versions of a file, or even view all differences in the current project/workspace. More on version control.


DIFFzilla® - Editable, Dynamic Diff Tool

Use to compare directories and files. When comparing files, the diff highlights the lines and characters that do not match. You can edit the files in the diff view using many of the features available in the editor window. The diff is automatically updated as you edit. More on DIFFzilla.


Backup History

Each time a file is saved, the current version is added to the Backup History. You can view the list of versions and compare the current version against a previous version or restore a previous version. This creates a detailed history for versions that are not ready to be checked in.


Syntax-driven Searching

Use the Color Coding engine to reduce the number of false positives in your searches by restricting searches based on program syntax. For example, you can limit a search to find or omit comments, as well as restrict or omit string literals. Click the Color button on the Find and Replace tool window to configure search options.


Regex Evaluator

Allows you to type a regular expression and run it against test cases, highlighting matched expressions and groups.

Regex Evaluator


Choose from fifteen keyboard emulations, containing the key bindings and behaviors necessary to emulate other editors. Emulation charts are available in the "docs" subdirectory of your SlickEdit installation.


Recorded and Programmable Macros

Use macros to automate frequently repeated tasks. Recorded macros capture a sequence of operations as you apply them and can be replayed at a later time. Programmable macros use the SlickEdit Slick-C® programming language to customize and extend the functionality of SlickEdit.


Command Line

The command line provides instant access to the most powerful SlickEdit commands without ever touching the mouse. To activate the command line, press Escape (Ctrl+A in Vim emulation or Alt+X in GNU Emacs emulation).

Here is a top-20 list of SlickEdit commands:

  • e file Edit a file
  • sa file Save file as
  • number Go to line number
  • f symbol Find a symbol
  • /search_string/options Search for a string
  • c/search/replace/options Replace a string
  • gt/search/options Substring search for a symbol
  • sb name Set a bookmark
  • gb name Jump to a bookmark
  • help topic View help on topic
  • man command Show Unix man page
  • cd directory Change directory
  • dir directory Show directory in the file manager
  • list wildcards Show directory tree in the file manager
  • del filename Delete file
  • pushd directory Push directory
  • popd Pop directory
  • set env=value Set environment variable
  • dos command Execute command outside of editor
  • math expr Evaluate expression