Dear list members,
There has been considerable progress since the last update. Not least of
which is that we have arranged for Robert to be transferred to an
isolated location on the other side of the planet where he will have
nothing to do but think about single-address operating systems and
improve climacs' mcclim infrastructure. (That is, Robert is on
sabbatical in Auckland, NZ, for a year.)
Significant developments include:
* Robert has factored out some base climacs functionality into a
separate ESA (for 'Emacs-Style Application') package, which should make
building applications using emacs/climacs interaction (a combination of
key-chords and minibuffer commands) relatively simple. An example is
included in the esa.lisp file. Among the goodies you get for free by
using ESA are keyboard macros and nested command tables.
* In preparation for buffer/syntax/view-customized commands
pane-specific command tables have been introduced.
* Aleksandar Bakic has added cl-automaton (derived from
dk.brics.automaton by Anders Møller) as a basis for regular expression
searching. New commands Regex Search Forward and Regex Search Backward
should allow you to experiment with this. See the comments at the
beginning of cl-automaton/regexp.lisp for an explanation of the regex
syntax, which can be subtly different from Emacs or Perl regexps, and
which includes some intriguing new constructs.
* Robert's LR lisp parser (used in the 'Lisp', as opposed to the old
'Common Lisp', syntax) has been filled out a bit, and some preliminary
use made to exploit the parse. For example lisp tokens are now presented
as symbols and strings (enabling you to click to choose strings for, say
M-% Query Replace) and inapplicable reader-conditionalized forms are now
greyed out (there is a *climacs-features* variable to customize this).
Try M-x Accept String and mousing around in the buffer; now press the
Meta key while mousing - note the different treatment of
double-quote-delimited strings.
* But one of the big uses of the lisp parse is in indentation. Based on
Robert's indentation infrastructure a large number of lisp forms are now
indented correctly (many thanks to Christophe Rhodes), in a number of
cases far better than emacs. By basing indentation on syntactic rather
than textual structure things like ignoring comments are fairly easy.
Check out the code towards the end of lisp-syntax.lisp and add
indentation for your own favourite forms!
* There is a new 'Fundamental' syntax destined to replace the
unfortunately-named 'Basic' syntax.
* The climacs.asd system definition has been reworked to reflect real
dependencies by Andreas Fuchs (with Taylor R. Campbell diagnosing an
issue with slidemacs).
* A number of new commands have been added, including: Zap to Character
and Zap to Object (thanks to Dwight Holman), Mark Word, Mark Whole
Buffer, Mark Expression, Comment Region, Uncomment Region, Beginning of
Definition, End of Definition, Backward Sentence, Forward Sentence, Not
Modified, Set Fill Column, Kill Word, Backward Kill Word, Forward Page,
Backward Page, Count Lines Page, Count Lines Region, What Cursor
Position, Delete Horizontal Space, Scroll Other Window, Kill Sentence,
Backward Kill Sentence, Mark Page, Forward List, Backward List, Up List,
Backward Up List, Down List, Backward Kill Expression, Kill Expression,
Just One Space, Scroll Other Window Up, Append Next Kill, Set Visited
File Name and Revert Buffer. These are, in general, bound to the usual
emacs keys. Some commands have had numeric argument handling additions,
and some have been renamed (eg. Cut Out -> Kill Region) for consistency
with emacs practice. A comparison of some climacs, Gnu Emacs, TI
Explorer Zmacs, Hemlock and TECO EMACS commands is available at
http://perso.wanadoo.fr/a.d.m/climacs-commands.html .
Less significant developments include:
* A simple backups feature has been added (when saving a file, an
existing file will be renamed with an appended '~').
* Read-only buffers have been added, with Find File Read Only and Toggle
Read Only to act on them.
* The display cursor functionality has been factored out of each syntax
(so cursors are now drawn the same everywhere), and the ability to
display the mark has been added - use Toggle Visible Mark to make the
mark appear and disappear.
The future holds the possibility of (yet) another parsing
infrastructure, making it even simpler to add certain types of syntaxes
to climacs; a help system; interaction with swank; and (further out,
perhaps) interaction with other (Mc)Clim applications.
Best regards,
JQS/a.d.m