New Features in Version 12

Contents  Previous  Next


Version 12 adds many new features to Boxer.  The most important of these features are listed below.  Visit our website for a more comprehensive list of changes.




Auto-Complete: a fast, powerful, highly customizable system for completing words and phrases as you type.


oComplete partially typed words by selecting from an optional pop-up list of suggestions, or by pressing a user-defined trigger key (Ctrl+Space, by default).
oSuggested completion phrases are drawn from four sources:
User-defined phrases
Existing text in the current document
The reserved word list for the current file type
An external, user-editable dictionary of 37,000 English words
oUser-defined phrases can be set to trigger automatically, when a delimiter is typed, or only when the trigger key is pressed.
oExpansion codes can be placed in user-defined phrases that will expand to various date/time strings, or to file/directory strings, at the time of insertion.
oAuto-Complete works intelligently on both ordinary text and program code, due in part to user-editable delimiter lists that control how words and phrases are harvested from the surrounding text.
oAuto-learn mode can add new phrases to the user-defined list automatically.
oExtensive options provide control over how words are harvested from the current document, how many should appear in the pop-up list, where/when/whether the list should appear, and much, much more.



Function and Variable Indexing: Boxer can display information for the function or variable at the mouse cursor in a popup tool tip. Function and variable information can also be displayed in a dialog box that can be left open for reference, or for easier navigation in your source files: just double-click on an indexed entry to jump to that function's declaration. Indexing is available for C, C++, C#, Java, Javascript, HTML, ASP, Perl, PHP, Ruby, Lisp, Eiffel, Assembler, Fortran, Cobol and several other languages.  To perform indexing, Boxer interfaces to the popular Exuberant Ctags utility program.  Exuberant Ctags is a fast, multi-language implementation of the original ctags and etags programs that are available on Unix.


Power Columns: an innovative editing mode that applies all edits made to each line within the selection.


Create a zero-width selection in columnar mode and start typing. The characters you type will be inserted into each line within the selected range. Hit backspace to correct a mistake: all lines are affected. The Delete key will delete characters to the right. Use the left and right arrow keys to move the insertion point to a different column. You can even Paste a short text string from the clipboard into each line.


Bookmark Manager: manage bookmarked lines more effectively.


Boxer's new Bookmark Manager dialog displays a list of the currently bookmarked lines, along with their filenames and line numbers. Double click or press Enter on an entry to jump immediately to that file and line number. Sort the display by bookmark number, filename, line number, or line text. Show bookmarks for all open files, or only for the current file. Clear any bookmark by pressing Delete. The Bookmark Manager can be left open while working in Boxer, so that it's available for reference or quick navigation.


Undo Cursor Motion: the Undo command has a new option that allows it to undo passive cursor motion commands.  Now, when you jump to start of file (for example) to review something, a single undo will return you to your place. The option is located on the Configure | Preferences | Editing dialog tab, in the Undo section, and its default setting is ON.


Web-based User Tools: enhancements have been made to the User Tools command to make it easier to define web-based resources as User Tools.


oUser Tools Macros can be placed in the Program field, making it possible to embed the word at the cursor--or a short text selection--into a URL. For example:$Word would search Google for the word at the text cursor.
oThe new 'Test Tool' option will simulate the running of a User Tool — expanding any macros that were used, and performing other translations — without actually running the defined program.
oIf the selected text macro, $Sel, is used within a URL, embedded spaces are automatically converted to plus signs, as required for a web-friendly URL.
oA new directive, $SelWord, will expand to either the current text selection, if present, or the word at the text cursor
oA Description field has been added for each User Tool, which will appear as a menu hint when cursoring over User Tools in the main menu.
oThe $BoxerDir macro returns the path of Boxer's installation directory.


Current File Tab in Bold: The filename on the active file tab will be displayed in boldface text. This was a small change (but oddly, not a simple one!) that has a surprisingly large impact on the editing experience.  Also: the filename displayed on the file tab can be shortened to a user-defined width.  This new option appears on the Configure | Preferences | Display options page.


The Duplicate and Increment command works like the Duplicate Line command, but it will increment any numeric values it finds in the line as it copies. For example, it will change a line like this:


  width1 = MainForm->WidthArray[0];




  width2 = MainForm->WidthArray[1];


Duplicate and Increment also recognizes and increments hexadecimal values in various formats (0xFF, FFh or $FF) and character constants ('A').


More User Tools: The number of User Tools has been doubled, from 12 to 24


Repeat Last Command can be used to execute the last non-cursor-motion command again. This new command is handy when you need to issue a command several times, and the command does not have a shortcut key assigned to it. The default key assignment for Repeat Last Command is F10.


Open Program at Cursor can be used to open the program, file or folder at the text cursor, in its associated application. For example, if a filepath to a PDF file appears at the text cursor, issue this command to open the file in Acrobat Reader.


Persistent Macro Variables: Macro variables can now persist from run to run, and even from edit session to edit session. A macro can also use the value of a variable computed and stored by another macro. Two new macro functions make this possible: WriteValue() and ReadValue() can be used to store and recall macro variables. EraseValue() can be used to delete a macro variable from storage.


Find Dialog Enhancement: When the Find dialog is used with its Incremental Search and Select Matched Text options on, the Find Next and Find Previous keyboard commands (F3 and Shift+F3 respectively), can now be issued while the Find dialog is still open to display and move among the matches to the partially typed search string.


Auto-Number Enhancements: Several enhancements have been made to the Auto-Number command:


oOptional prefix string to be placed before the number
oOptional suffix string to be placed after the number
oOptional user-defined field width to control the width of number
oOption to skip the numbering of blank lines
oPreview the numbering format in real-time, in a sample display window


Non-Modal Calculator: Boxer's Calculator can now be run alongside Boxer, and focus can be switched between the two windows as needed.


HTML Help: Boxer now uses HTML Help format help, which provides a modern, browser-like interface, full-text search capability and bookmarking of favorite topics.


Professional Icons: new, richly colored icons give Boxer 12 a fresher look, while retaining the meaning of all the earlier icons. (We've had very positive feedback from our testers on this change.)


Sort IP Addresses: The Sort dialog has a new option to sort IP Addresses, with proper consideration to the value appearing in each node of the address.


Many new macro functions have been added to Boxer's macro language, further extending its capability:



set the modify state of the current file to true

GetWindowNumber(string fn)

returns the window number associated with file 'fn'


returns 0 if selection mode is Stream, 1 if Columnar


returns 0 if edit mode is Insert, 1 if Typeover


get the current working directory

SetCurrentDirectory(string dir)

set the current working directory

UserToolWait(int n)

execute User Tool 'n' and wait before macro execution resumes

AppendToClipboard(string str, int n)

append string 'str' to Clipboard 'n'


These macro functions have been added to assist with disk file operations:


CopyFile(string old, new)

copy the file 'old' to 'new'

RenameFile(string old, new)

rename file 'old' to 'new'

DeleteFile(string fn)

delete file 'fn'

TouchFile(string fn)

update the timestamp of file 'fn'

CreateDirectory(string dir)

create the directory 'dir'


Several new macro functions provide control over the Perl Regular Expressions and Match Case options on the Find and

Replace dialogs:









These functions will force Perl Regular Expressions to ON before the operation is performed. The (existing) companion macro functions without the "RE" designator have been changed to force Perl Regular Expressions to OFF before operation. The trailing "i" indicates that a case insensitive search will be performed.


New: RunProgram() allows programs, documents and folders to be opened from within a macro. A 'wait' parameter provides the ability to suspend macro execution until the program has closed. RunProgram exposes the ShellExecuteEx Windows API call to Boxer macro users.


New: PressChar() prompts the user with a supplied string on the status bar, and places the next character pressed into a supplied variable. A popup dialog does not appear, as it does for GetChar().


Enhanced: The SubString() function has been extended to permit negative 'index' and 'len' parameters, in the flavor of Perl's substr() function: If 'index' is negative, and 'len' is positive, 'str1' will be filled with 'len' characters starting 'index' characters in from the end of 'str2'. If 'len' is negative, the value of 'index' is ignored, and 'str1' is filled with the rightmost 'len' characters from 'str2'.


An "Insert Tab" button has been added to various Find and Replace dialogs to make it easier to insert a tab character into the search string.


When a selection is present, the Find Mate command will extend the selection to the mate of the first character in the selected text.


Perl Regular Expressions Enhancement: references to named subpatterns [example: '(?P=name)'] will now be processed when they are found in the replace string. In the past, only numbered subpatterns [example: '$1'] were recognized in the replace string. Named subpatterns can be used in the Replace and Replace Line Enders dialogs, and with the ChangeStringRE() macro function.


Three new commands have been added to the Edit | Delete submenu to help delete lines of a given class:


Lines that do not Begin with

Lines that do not End with

Lines that do not Contain


Command Multiply Enhancements: The operating scope of the Command Multiply feature has been expanded beyond the most common cursor movement and text entry commands. Now, the execution of a wide variety of Boxer's other commands can also be multiplied: Reformat, Quote and Reformat, Unformat, Align Left/Right/Center/Smooth, Delete Previous Word, Duplicate Line, Find Previous/Next, Indent with Space/Tab, Unindent, Undo, Redo, Insert Filename, Cut, Append, Cut-Append, Paste Clipboard 'n', Insert Line Above/Below and Insert Short/Long Date/Time.


Active Line/Page Reporting: when dragging the vertical scroll bar up and down to scroll through a file, the line number of the top line of the view, and the page count, will be continuously updated on the Status Bar.


True ASCII Sort: an option has been added to the Sort dialog to perform a true ASCII alphabetic sort. (The existing alphabetic sort option performs a sort using locale tables provided by the operating system. These tables enforce regional conventions for sorting according to case, and for how accented characters are to be sorted.)


The Window menu and the File Tab context menu each have a Skip command that will cause the selected file to be skipped over by the Previous and Next Window commands. Use this option to control which files become active when using Previous/Next to cycle among open files. The skip status of each file is stored when an edit session is closed, so it will persist if the session is later resumed. The File Tab context menu also includes options to set or clear the skip status for all open files. Optionally, a skipped file can have its skip status released by clicking on its File Tab tab directly.


Sort File Tabs by Use: a new option has been added to the View File Tabs submenu to sort file tabs by order of use: whenever a file tab is clicked it is promoted to the first position.


Sort File Tabs by Extension: a new option has been added to the View File Tabs submenu to sort file tabs first by extension, and then by filename.


The ANSI Chart and OEM Chart have been enhanced to use a multi-column Listview control with grid lines. The ANSI Chart will use the same font and code page as the screen font; in the past the Western/Latin code page was always used.