Re: [9fans] Acme without Flamage - Plan9

This is a discussion on Re: [9fans] Acme without Flamage - Plan9 ; On Wed, Aug 20, 2008 at 7:42 PM, David Leimbach wrote: > > > The only thing I'd miss in Acme vs emacs then, most likely, for lisp-like > languages is paren-matching. > And I'd miss it dearly. > > ...

+ Reply to Thread
Results 1 to 5 of 5

Thread: Re: [9fans] Acme without Flamage

  1. Re: [9fans] Acme without Flamage

    On Wed, Aug 20, 2008 at 7:42 PM, David Leimbach wrote:
    >
    >
    > The only thing I'd miss in Acme vs emacs then, most likely, for lisp-like
    > languages is paren-matching.
    > And I'd miss it dearly.
    >
    >


    Double click on the paren selects the area enclosed by the matching paren.



    --
    - curiosity sKilled the cat


  2. Re: [9fans] Acme without Flamage

    paurea@gmail.com (Gorka Guardiola) writes:

    > On Wed, Aug 20, 2008 at 7:42 PM, David Leimbach wrote:
    >>
    >>
    >> The only thing I'd miss in Acme vs emacs then, most likely, for lisp-like
    >> languages is paren-matching.
    >> And I'd miss it dearly.
    >>
    >>

    >
    > Double click on the paren selects the area enclosed by the matching paren.
    >
    >
    >
    > --
    > - curiosity sKilled the cat


    I don't know if posts to usenet (where I lurk this list) go through to
    the mailing list, but I've found Acme's paren matching to be
    sufficient. The bear is indentation, since to make it work out it's
    necessary to use a fixed-width font (something I'd rather not do) and
    adjust it by hand, which needs to happen more often and by greater
    degrees than in a language like C. The chief issues being:

    (list (list 'a 'b 'c)
    (list 1 2 3))
    ; ^
    ; These need to line up.

    ; These need to line up.
    ; V
    (let ((a 3)
    (b 4))
    (+ a b))
    ; ^
    ; Should be two spaces or so.

  3. Re: [9fans] Acme without Flamage

    On Thu, Aug 21, 2008 at 2:06 AM, Paul Donnelly
    wrote:

    > paurea@gmail.com (Gorka Guardiola) writes:
    >
    > > On Wed, Aug 20, 2008 at 7:42 PM, David Leimbach

    > wrote:
    > >>
    > >>
    > >> The only thing I'd miss in Acme vs emacs then, most likely, for

    > lisp-like
    > >> languages is paren-matching.
    > >> And I'd miss it dearly.
    > >>
    > >>

    > >
    > > Double click on the paren selects the area enclosed by the matching

    > paren.
    > >
    > >
    > >
    > > --
    > > - curiosity sKilled the cat

    >
    > I don't know if posts to usenet (where I lurk this list) go through to
    > the mailing list, but I've found Acme's paren matching to be
    > sufficient. The bear is indentation, since to make it work out it's
    > necessary to use a fixed-width font (something I'd rather not do) and
    > adjust it by hand, which needs to happen more often and by greater
    > degrees than in a language like C. The chief issues being:
    >
    > (list (list 'a 'b 'c)
    > (list 1 2 3))
    > ; ^
    > ; These need to line up.
    >
    > ; These need to line up.
    > ; V
    > (let ((a 3)
    > (b 4))
    > (+ a b))
    > ; ^
    > ; Should be two spaces or so.
    >
    >

    Yeah I guess I'm spoiled by the hotkey visual cues I get from Emacs when
    typing in code, that automatically show me the matching parens as I type.
    Perhaps I really don't *need* that. I'll try Plan 9 Port acme again for
    some Scheme Shell or something and see how it goes. (Emacs screws up Scheme
    Shell pretty badly, due to it's not accepting | characters in it's syntax
    definition, and as I said before, customizing emacs is not the same as me
    getting my work done)

    Dave


  4. Re: [9fans] Acme without Flamage

    On Thu, Aug 21, 2008 at 5:06 PM, Paul Donnelly
    wrote:
    > The bear is indentation, since to make it work out it's
    > necessary to use a fixed-width font (something I'd rather not do) and
    > adjust it by hand, which needs to happen more often and by greater
    > degrees than in a language like C. The chief issues being:
    >
    > (list (list 'a 'b 'c)
    > (list 1 2 3))
    > ; ^
    > ; These need to line up.
    >
    > ; These need to line up.
    > ; V
    > (let ((a 3)
    > (b 4))
    > (+ a b))
    > ; ^
    > ; Should be two spaces or so.


    Huh. I always thought lisp had a couple of simple indentation rules,
    but after spending a little time on fmtsexp.c it has become apparent
    that the "two spaces or so" is a special case for let! Not sure I care
    to try and deal with such cases, but maybe it is still somewhat
    useful: http://sqweek.dnsdojo.org/plan9/fmtsexp.c
    -sqweek


  5. Re: [9fans] Acme without Flamage

    sqweek@gmail.com (sqweek) writes:

    > On Thu, Aug 21, 2008 at 5:06 PM, Paul Donnelly
    > wrote:
    >> The bear is indentation, since to make it work out it's
    >> necessary to use a fixed-width font (something I'd rather not do) and
    >> adjust it by hand, which needs to happen more often and by greater
    >> degrees than in a language like C. The chief issues being:
    >>
    >> (list (list 'a 'b 'c)
    >> (list 1 2 3))
    >> ; ^
    >> ; These need to line up.
    >>
    >> ; These need to line up.
    >> ; V
    >> (let ((a 3)
    >> (b 4))
    >> (+ a b))
    >> ; ^
    >> ; Should be two spaces or so.

    >
    > Huh. I always thought lisp had a couple of simple indentation rules,
    > but after spending a little time on fmtsexp.c it has become apparent
    > that the "two spaces or so" is a special case for let! Not sure I care
    > to try and deal with such cases, but maybe it is still somewhat
    > useful: http://sqweek.dnsdojo.org/plan9/fmtsexp.c
    > -sqweek


    A fairly complete description of the rules is that forms line up with
    other forms at the same level of nesting (the binding forms in the LET
    or the arguments to LIST), but anything using &BODY FOO in its lambda
    list (&BODY collects trailing arguments into FOO) gets two-space
    indentation for the body. Indeed, this is the reason &BODY
    exists. DEFMETHOD, though, needs to be specially recognized. LOOP has
    special needs. It's easier to indent with a program running in or
    communing with your Lisp, since there's no other way to know, short of
    reading every file in a project, whether a given macro uses &BODY or
    not.

+ Reply to Thread