All Manuals > LispWorks Delivery User Guide > 10 Delivery and Internal Systems


10.3 Editors for delivered applications

This section contains information on how to include the LispWorks editor in your delivered applications and how to control its behavior.

10.3.1 Form parsing and delivery

If the delivered image is used to edit LISP code, the parsing of forms will still not work properly. The deliver keyword :keep-editor can be used to keep the code for parsing forms in the editor.

10.3.2 Emulation and delivery

The editor in the delivered application can emulate Emacs style, and Microsoft Windows or Mac OS X style editing (depending on the platform). The deliver keyword :editor-style controls which emulation is used.

10.3.3 Editor command groups

If any part of the editor is present in the image, every editor command that has been loaded will be kept in the delivered image. Two deliver keywords allow you to specify which commands to keep and which commands to delete:

:editor-commands-to-keep (default nil)

:editor-commands-to-delete (default :all-groups)

The effect of these default values is that all the commands are deleted. If a command is both these lists, it is kept.

To get rid of editor commands, use the keyword argument :editor-commands-to-delete.

Deleting a command does not automatically delete the associated function. For example, the function editor:do-something-command could be called by the application even if the command "Do Something" has been deleted.

The function itself is only deleted if it is not referenced elsewhere in the application or if it is removed explicitly. Therefore, an application which uses the editor in a non-interactive or limited interactive manner can delete all or most of the editor commands. Note also that key bindings associate key sequences with commands and not functions, so if a command is deleted any sequences bound to it will no longer work. For consistency, the delivery process removes the bindings too.

The keyword :editor-commands-to-delete is processed in different ways depending on the sort of value passed:

List value

Process each element of the list. (Thus the list is traversed recursively.)

String value

The corresponding editor command is deleted.

Symbol value

Taken to specify a Command Group.

The available Command Groups are:


The simple editor contains basic mechanisms for editing text files, including regions, buffers and windows, movement, insertion and removal commands, key bindings, the echo area and extended commands (such as Alt+X), file handling commands, filling and indenting, and undo.


The full editor has all the facilities of the simple editor, and adds handling for Lisp forms, auto-save help and other documentation commands searching, including the system based search commands, tags support, and support for interactive modes.


The extended editor adds Lisp introspection to those features: argument lists, evaluate, trace, walk-form, symbol completion, dspecs, callers and callees, buffer changes, and hooks into the inspector and class, generic function, and system browsers.


Commands present in the standard LispWorks image only if they are demand loaded.


Commands supporting tools which must be explicitly loaded on top of the editor, for example the listener.


Commands always deleted by the delivery process, for example, compilation commands.

LispWorks Delivery User Guide - 10 Aug 2017