[Openmcl-devel] Hemlock text display

alex crain alexcrain at mail2.widgetworks.com
Sun Aug 29 15:56:35 PDT 2004


On Aug 29, 2004, at 2:48 AM, Gary Byers wrote:

> Using a subclass of NSLayoutManager (and maybe some flavor of 
> NSTypeSetter)
> might enable us to optimize the fixed-width font case(s).
>
> I'm tempted to think that if suboptimal layout manager behavior isn't
> killing us anymore, this is less important than it might have seemed
> a few days ago.
>
> A lisp-aware NSLayoutManager might be good for other reasons; 
> background
> layout might be able to do syntax highlighting or other 
> "sectionization"
> activities.  (I'm not sure that this is the right place for that, but
> it might be.)
>
I'm inclined to think that most of the display oriented stuff: parent 
matching,
selection highlighting and maybe even completion could be done by the 
LayoutManager.
I don't see why the hemlock core should even know about paren matching, 
for example,
except that in the X implementation there was no other way to do it.

After spending a couple of days trying to figure out how to make the 
layout manager
smarter, I'm wondering if I'm not thinking about this all wrong. My 
first thought
was to teach the layout manager not to try to be smart because we're 
using fixed fonts
and therefore inserting a character can't have an effect on characters 
on different lines
(unless we're doing line wrap). Even under line wrap, the manager could 
just shift the
whole world down one line of we rolled over.

The more I get into it, however, the more I wonder if there isn't some 
really cool functionality
that couldn't be added. Historically, hemlock was designed for ttys and 
later X11, which
doesn't have much in the way of text management, and consequently the 
presentation
layer is pretty minimal. The COCOA text management system, however, 
offers lots of possibilities
that have never been practical before. I don't like proportional fonts 
for development myself,
but we can easily add all kinds of syntax formatting.

Sooo... free association time.

Aside from paren matching and syntax coloring, is there anything that 
we should think about
adding, like inline controls or something, that might be very useful? 
COCOA, for example, has
the ability to put attachments into the text stream. I can't think of a 
reason why that would be useful
in a lisp IDE, but it might.

:alex




More information about the Openmcl-devel mailing list