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
lspec...@hampshire.edu, 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 clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to