[plt-scheme] Paren Paralysis Sufferers Unite
> 1) Unless your e-mailer messed it up, you're not letting drscheme indent
> your code. Here's what it looks like, indented:
I indented my own code, but it is relatively the same as yours, just you
inserted 4 spaces instead of 2 to offset the second 'if' and 'let'
expressions. I forgot how drscheme adds extra space to line up the other
arguments with the first.
I do use the lining up of arguments vertically to help find the context
sometimes. But like I said when I am faced with ))))))))) it's hard for
me to tell that I have to hit enter "))))))here)))" to get the
indentation (and lexical context) that I want. When the indentation
already exists it's relatively easy to understand, but when I just have
a blob of close parens, I have to delete them one at a time until
drscheme highlights to the expression I want, otherwise I'll never know
when to hit enter.
In that sense I like that one lisp paste website, where it highlights
matching parens simply by hovering your mouse over it. (or cursor would
be fine too). I don't think that's implemented in drscheme though.
I really don't have that much trouble with parentheses. It's just a
little tricky. I certainly don't think the solution is to go the XML way
and have (procedure argument argument argument /procedure)!
...maybe if /procedure) was treated as a comment, but... NO BAD
> 2) Use the s-expression navigation keys!
THANK you. I've been trying to get something like this working for a while!
When I hold Alt, right and left go from argument to argument in the
current s-exp, up goes into the context of that expression being an
argument of something else, and down goes into the current argument as
if it were an expression. That's very intuitive!
> Going
> whole hog, you can remap your left-paren to perform this operation, and
> you can get rid of the 'ESC'.
I like how emacs can do this (though not so much how they block what is
seen as improper deletion). How do I remap keys in drscheme? All I've
been able to do so far is show the keybindings, but not change any of them.