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
climacs-announce@common-lisp.net