[plt-scheme] Inadequate indentation facility in MrEd/DrScheme

From: Dave Gurnell (d.j.gurnell at gmail.com)
Date: Fri Jun 20 04:28:08 EDT 2008

Dear all,

I work regular office hours developing commercial software using  
DrScheme. I find the indentation engine to be mostly fine. There are a  
couple of mildly annoying cases that I've noticed, which I've  
mentioned at the bottom of this email in case anyone is thinking of  
tackling the issue. However, I don't consider these issues to be show- 
stoppers by any means.

There are some features which I would like to see in DrScheme (in  
roughly this order):

   - add regular expression search and replace;
   - make pressing TAB in the "find" or "replace" boxes move you to  
the next box (rather than inserting a tab character);
   - make the tab list scroll or compress or show all the tabs when  
you have more tabs than the width of the window
       (or add a vertical tab list feature that can list more stuff);
   - make every entry on the "indenting" preference pane a regular  
expression (make it easier to add rules);
       (or maybe allow the definition of extra indentation rules in  
PLaneT packages).

I'd be happy to help out implementing some of these where I'm able. I  
tried the regular expression search and replace a while back but I  
didn't get very far (I may try again in the future). I personally have  
never been able to make Emacs more of a help rather than a hinderance  
(goodbye, programmer street cred), so I am very glad DrScheme exists  
and is such a viable editor for "real" programmers as well as being a  
teaching tool.

Cheers,

-- Dave

----- for/fold -----

   (for/fold ([accum null])
     ([i (in-range 1 10)])
     (cons i accum))

should probably be:

(for/fold ([accum null])
           ([i (in-range 1 10)])
      (cons i accum))

----- ->* with long lists of keyword arguments -----

(provide/contract
  [some-procedure (->* () (#:key1 integer?
                                  #:key2 integer?
                                  #:key3 integer?)
                       integer?)])

instead of:

(provide/contract
  [some-procedure (->* () (#:key1 integer?
                           #:key2 integer?
                           #:key3 integer?)
                       integer?)])

----- quasiquote when producing HTML output -----

`("Hi, my name is " ,name
                     "and I am " ,age "years old.")

would be better as:

`("Hi, my name is " ,name
   "and I am " ,age "years old.")

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20080620/b73cb2df/attachment.html>

Posted on the users mailing list.