[climacs-devel] climacs-based application

Christophe Rhodes csr21 at cam.ac.uk
Wed Jan 26 18:32:20 UTC 2005


Hi,

As some of you will no doubt know, I've been working on an application
using climacs as the editor framework; the application is to provide
visual feedback and other nifty things for a text-based language for
lute tablature.

Today, I got it to a basically working state; I got incremental
parsing working early yesterday, incremental redisplay working late
yesterday, and ironed out some bugs during the course of the day
related to non-locality of various constructs -- in particular, the
comment delimiters #\{ and #\} are fully-nestable in tabcode, which
makes the incremental parsing aspect rather tricky.

The code is available at
<http://www-jcsu.jesus.cam.ac.uk/~csr21/tabcode-20050126.tar.gz>; if
anyone wants to give it a try, please do -- "simply" load the tabcode
and tabcode-gui systems, then
  (climacs-gui::climacs)
and either
  Set Syntax SPC Tabcode
or first load one of the .tc files in that source distribution, then
  Set Syntax SPC Tabcode
and start typing.

However, the questions I have relate more to infrastructural issues,
and relate to the tabcode-syntax.lisp and gui.lisp files in that
source distribution.  Those files are decorated with FIXMEs, but to
attempt to summarize the main issues that might be clarified here:

* I am aware that there is a separation between syntax and view in
  current Climacs, such that GUI elements are meant to be distinct
  from syntactical markup.  I don't really see how to implement this
  with my current model.  Please advise :-)

* Where are LOW-MARK and HIGH-MARK of a buffer positioned when all
  that has happened is that the point has moved?  Is this well-defined
  somewhere?

* I would like to draw the element near the cursor in a different
  colour.  This doesn't interact trivially with incremental-redisplay,
  at least as far as I can see; is there a way of selectively
  invalidating one updating output record so that it is forced to be
  redrawn?

* Presentations are not active / highlighted in the normal command
  loop.  I'm given to understand that this is because until recently
  mcclim defined a global presentation/command thing which would have
  made this too painful.  It would be good, however, to have the
  presentations in my graphical window active without having to type
  M-x (to establish a command input context (?))

* I have some specialized keybindings, which I'm currently putting in
  the global space; is there a mode-specific keybinding concept in
  Climacs yet, or is this the only place for them?

Notwithstanding all these comments and questions, thank you for
providing a lovely editor in such a short time!  All comments with
respect to the tabcode editor are very welcome, and I hope it provides
incentive to get an even better infrastructure.

Cheers,

Christophe



More information about the climacs-devel mailing list