bongo-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bongo-devel] Re: I want to make `f' and `b' move point


From: Daniel Jensen
Subject: [bongo-devel] Re: I want to make `f' and `b' move point
Date: Tue, 01 May 2007 21:52:00 +0200
User-agent: Gnus/5.110006 (No Gnus v0.6) Emacs/22.0.99 (gnu/linux)

Daniel Brockman <address@hidden> writes:

> address@hidden (Daniel Jensen) writes:
>
>> So why not a menu for the areas that are not object lines?
>> That could be the main mode menu, for example.
>
> I like this idea (I hope that doesn't disappoint you).

Not at all.

> We could designate some part of the buffer to the mark, save and
> kill functionality (right now, the indentation space immediately
> to the right of the left fringe still has that binding).
>
> In addition, of course, we should have a customizable
> setting for disabling the context menu altogether and for
> changing its binding to the more conventional <C-mouse-3>.

I think it's best to keep `mouse-save-then-kill' from clashing with the
menu. That is, when menus are on mouse-3, only menus are on mouse-3. The
C-mouse-3 idea is OK.

That way we stay away from having special rules for areas in the buffer,
rules that would at best be compromises. I believe what you wrote about
mouse users and menu haters supports this.

>> The point of presentations is to present types of objects
>> to the user, for direct manipulation.
>
> Types of objects?  Do you mean "objects of various types"?

I guess that's what I meant. It only extends so far in the simplified
presentations system in SLIME.

>> You don't think of it as text, it is the very object
>> right there.
>
> I guess at least a printed representation of it. :-)

No, at least it is also linked to that object! Otherwise it wouldn't
make sense to think of it as the very object. Like characters in an
Emacs buffer, they represent the bytes in memory, but can also be
manipulated in real time as we edit the buffer.

>> you click the presentation.
>
> I see.  Kind of like how in Shell mode (and other comint
> derivatives) you can <mouse-2> previous input to re-insert
> it at the prompt?

It is kind of like that, but that's only one aspect of it. Let me give
you an example:

    CL-USER> (defclass point ()
               ((x :accessor point-x)
                (y :accessor point-y)))
    #<STANDARD-CLASS POINT>
    CL-USER> (make-instance 'point)
    #<POINT {AB5C971}>

The return values are presentations in the buffer. I can click mouse-2
on them to copy to the input line, and use them like this:

    CL-USER> (setf (point-x #<POINT {AB5C971}>) 12
                   (point-y #<POINT {AB5C971}>) 34)

But note that #<...> is not readable, SLIME does some magic to allow
this. The presentation menu also has commands for inspecting and so on.

>> SLIME is of course limited to using only text for this, since it's
>> nothing more than a glorified comint mode, but on the Lisp machines (and
>> also in the Common Lisp Interface Manager, the heir to the Lisp machine
>> GUI system) it was a general construct for programs to use and build
>> user interfaces.
>
> Hmm, that sounds pretty damn cool.  I want to read about it.

Here's an article about CLIM and user interface design. It starts
talking about presentations somewhere along the middle:

    http://www.sts.tu-harburg.de/~r.f.moeller/uims-clim/clim-intro.html


I had to snip your thoughts on the deep nature of stuff, because I don't
have much to add. Good stuff!





reply via email to

[Prev in Thread] Current Thread [Next in Thread]