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

Re: DrScheme as Emacs-like kitchen sink



   Will we accept it? Sure, we will distribute it if you do a great
   job implementing it.

Matthias, I'm not anywhere near ready to give you anything to
distribute.    I'm a long way from being up-to-speed on DrScheme.  

How about we try something else: I come up with simple requests, and
you DrScheme folks tell me how to do it.  Idea being that I'm one
DrScheme user who is trying to use DrScheme to edit Latex files.  I'm
not at all sure that this is gonna be a successful venture.  Why not
crank out one paper on DrScheme before rewriting DrScheme?

I realized that I don't really need anything as grandiose as modes, or
even `-q -l' startup capability.   

It would suffice to run DrScheme and then be able to execute or load
the kind of code that goes into .mred.prefs.   I don't know how to do
this.   I bet someone can just tell me, though.

Here's a real kludge, that I *could* live with.    When I want to edit
a Latex file, I'll add this line in to the bottom of .mred.prefs:

 (framework:tabify ())

Actually the next-to-last line, so I don't have to worry about the
final paren to match.  

Then I can run DrScheme with most of the indentation features off, and
that should suffice for just plain text editing.


OK, and when I want to work on Scheme, I'll add this expression below
to the bottom of .mred.prefs.   This sorta crude toggling seems to
work.   What doesn't work is evaluating these expressions in
DrScheme.  I get error messages like

Welcome to DrScheme, version 103p1.
Language: Graphical Full Scheme (MrEd).
let: malformed expression

with this highlighted:

(let lambda)

So .mred.prefs code seems different from Scheme code.

[1] The last Emacs straw for me was Stallman ruling that a C book like
K&R was a "proprietary gcc manual", and so discussing K&R on gnu lists
violated the "free manuals policy".  I'm all for lots of Stallman's
free software revolution ideas, I loved his GNU Manifesto, and I could
deal with some kinda free manuals policy, but this is ridiculous.

 (framework:tabify
   ((let lambda)
    (parameterize lambda)
    (begin begin)
    (class/d* lambda)
    (begin0 begin)
    (syntax-case lambda)
    (let-enumerate lambda)
    (sequence begin)
    (with-handlers lambda)
    (override begin)
    (class*/names lambda)
    (send* lambda)
    (unit/lang lambda)
    (recur lambda)
    (interface lambda)
    (rec lambda)
    (shared lambda)
    (public begin)
    (private begin)
    (define-some lambda)
    (inherit begin)
    (let-values lambda)
    (mixin lambda)
    (match lambda)
    (compound-unit begin)
    (with-input-from-port lambda)
    (define-values define)
    (class/d lambda)
    (unit/sig lambda)
    (define-macro define)
    (let-syntax lambda)
    (cond begin)
    (letrec-syntax lambda)
    (let-macro lambda)
    (let*-values lambda)
    (case lambda)
    (do lambda)
    (class/d*/names lambda)
    (define define)
    (class-asi* lambda)
    (opt-lambda lambda)
    (local lambda)
    (letrec lambda)
    (delay begin)
    (call-with-output-file lambda)
    (let* lambda)
    (let/cc lambda)
    (catch lambda)
    (let/ec lambda)
    (define-record lambda)
    (class-asi lambda)
    (when lambda)
    (call-with-input-file lambda)
    (unless lambda)
    (define-signature define)
    (letcc lambda)
    (class lambda)
    (with-output-to-file lambda)
    (make-object lambda)
    (class* lambda)
    (let-struct lambda)
    (with-output-to-port lambda)
    (with-input-from-file lambda)
    (let-signature lambda)
    (compound-unit/sig begin)
    (unit begin)
    (defmacro define)
    (lambda lambda)
    (define-syntax define)
    (define-schema define)
    (fluid-let lambda)))