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