I spent a bunch of time today in CCW 0.0.59.RC2, in "default" mode, and thought
I'd report my experience:
- Lots of very nice features and I really appreciate having this -- please
don't take my criticisms below in the wrong way!
- There are some cases in which the indentation doesn't follow the rules that
I'd expect, e.g. from emacs and other lisp editors. For example, if you
auto-indent this:
(def a1 '((2 1 2)
(1 0 0)
(0 0 1)))
then I think the "(1" should align under the "(2" but it doesn't. Other
problematic cases include indentation after a line like "(list foo", which I
think should align under the "f", and indentation under "(cond x y" which I
think should align under the "x".
- The automatic insertion of closing brackets has been driving me crazy,
although I realize that others will differ on this. I type the closing brackets
without thinking and then I have lots of extra closes, indentation breaks
(because it currently only works when everything is matched), etc. I also tend
to type sloppily with a lot of backspaces to clean up as I go, and if I try to
do this after typing an opening bracket or even a quotation mark (") my
backspace only erases one character, leaving the other. So a lot of my typing
produces a mess that I don't immediately notice and then have to go back and
clean up. In addition, I often want to wrap an existing form with another call
and while I know CCW provides structure-oriented ways to do this I often just
want to type "(wrapper " before it and ")" after -- but then I end up with an
extra ")" in the before part that has to be deleted in a somewhat awkward
way... Again, I know CCW supports a whole different and perhaps better way to
do this stuff once one commits to it and internalizes it, but as somebody who
has been typing in a more free-form way for many years I'm really finding this
cumbersome. On a couple of occasions I found myself typing code into a plain
text editor to avoid these issues and then pasting it into eclipse... surely a
bad sign.
- Symbol completion: It took me a while and some digging to figure out that
this is invoked with control-. (on a mac, anyway), and that one hits that
multiple times to cycle through the matches. Did I miss that being mentioned in
introductory materials, or is this another place where Eclipse experience is
assumed? (I see the text at
http://code.google.com/p/counterclockwise/wiki/Documentation#Code_completion
but this doesn't actually tell you how to invoke it.) If not then it should
probably be added. BTW, is there a way to get a popup menu of the options, or
some other listing of them without going through them one by one?
- Arglist-on-space: This is something I've mentioned in other threads, with
respect to other editors, but I really found myself longing for it today as I
worked in Eclipse and it seemed like it might be possible given the other
infrastructure that is there. The idea is that when you type something like
"(nth " a mini-buffer somewhere shows the argument list(s) like "([coll index]
[coll index not-found])". In the feature as it existed in MCL (among other
systems, I think) you didn't have to hit any other keys or do anything else --
as soon as you hit a space after the function name the arglist would appear in
another buffer, and a quick glance jogged the memory about the arguments and
their order. It may be that Clojure's flexibility with argument lists makes
this unusually difficult to do correctly all of the time, but I'd find it
really useful even if it didn't perform flawlessly. I currently find (as a new
user, still) that I keep having to go to the repl to type things like "(doc
nth)" to remember the order of arguments. While "doc" is great this does
require me to switch to the repl and type/eval a form, and it's really nice to
avoid that by having arglists appear automatically all of the time.
Again, I offer these as what I hope are constructive suggestions...
Thanks, -Lee
--
Lee Spector, Professor of Computer Science
School of Cognitive Science, Hampshire College
893 West Street, Amherst, MA 01002-3359
[email protected], http://hampshire.edu/lspector/
Phone: 413-559-5352, Fax: 413-559-5438
Check out Genetic Programming and Evolvable Machines:
http://www.springer.com/10710 - http://gpemjournal.blogspot.com/
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en