[Circle-dev] Progress and Updates - tabcomplete, terminal FE

Paul LeoNerd Evans leonerd at leonerd.org.uk
Tue Sep 15 19:08:08 BST 2009


Hi all,

Since I haven't written in a while I thought it about time to send a
general update on progress, and open a discussion a little on where to
aim next.

As to current progress, the way the FE/BE interaction works has been
redone, such that now each window item presents a widget tree to the
frontend. This has good benefits, because it gives the backend a much
closer way to control the UI feel of things, putting widgets in roughly
the right parts in the abstract tree, to represent whatever data it has
on that object. The frontend no longer needs special support to notice
the topic bar of an IRC channel, etc... This arrangement should be more
ameanable to extending the widget types individually and gaining the
most benefit from them...


Which brings me to my next topic. Next "not too big" thing on the TODO
list; tab-complete. The idea here being that the backend objects can
provide sets of strings to form completion groups attached to the entry
widget. Some amount of sharing might be needed, so for example the set
of joined channels can be shared across all the window items on a single
IRC server. I haven't yet fully thought through the model on how it will
all work. There's such issues as:

 * Completing a nick at the start of the line should suffix ": "

 * If at the start of a line, consider completing on command names

    + If we're completing command names, how far should we go? Offer
      completions on option names? Knowledge of the types of option
      values or positional arguments - e.g. nicks, channel names..?

 * How do we store a user preference on behaviour - first-match,
   longest-match, show a menu to choose? This is a decidedly FE-based
   configuration option; so far we don't really have any of these.


The other (bigger) TODO item is the ongoing issue of the terminal-based
frontend. This has stalled entirely for the moment. The existing code is
utterly unstartable, due to the complete change in FE/BE interaction
[see above]. To make the terminal FE useable again, this will need
completely rewriting...

At which point this becomes a larger task of putting in more work on
Tickit, the underlying terminal UI layer. This is a larger body of work
than the tabcomplete logic above. It's also something that's going to
take quite a bit of time before anything becomes useable again; it's not
particularly incremental. And finally it's something that's big enough
and with as many vague questions that need answering, that I can't
really just jump into it and Do It. It needs quite a bit of thought and
discussion and involvement from youlot... Volunteers welcomed...

-- 
Paul "LeoNerd" Evans

leonerd at leonerd.org.uk
ICQ# 4135350       |  Registered Linux# 179460
http://www.leonerd.org.uk/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://mail.leonerd.org.uk/pipermail/circle-dev/attachments/20090915/0b12858e/attachment.pgp>


More information about the Circle-dev mailing list