Hi Lee, Again, thanks for a thourough and constructive feedback !
2010/7/8 Lee Spector <lspec...@hampshire.edu> > > 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". > Yes, currently I've taken the simple (and reproducible) approach of doing indentation based only on structure. () forms are considered calls, [] and {} forms are considered data. The '(()) form or `(()) form are special cases: sometimes they will mean calls (call templates in macros), sometimes they will mean data. Having hard-coded specific lists of different behaviours for certain kinds of calls (e.g.) is not excluded for the future. Added this issue to remind us of this: http://code.google.com/p/counterclockwise/issues/detail?id=122 (so you can star it) - 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. > Yeah, I definitely recon that the "automatically add the closing bracket" must work with "jump after the closing bracket", "forward-delete" and "backward-delete" as a whole, or not at all. So the insertion of the closing bracket will probably be removed from the "default" mode in the next release : http://code.google.com/p/counterclockwise/issues/detail?id=123 - 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_completionbut > this doesn't actually tell you how to invoke it.) If not then it should > probably be added. Here the default behaviour offered by Eclipse on your platform will take place. Documentation updated. > 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? > There is already a "Clojure" menu and a contextual menu (when in an editor) with a "Clojure" menu entry, which list available "commands" (those that are considered commands by Eclipse, and are customizable by you the user via Window > General > Keys menu). If you were talking about this menu and find it incomplete, I would appreciated if you could take the time to precisely list the missing pieces, so that I can concentrate on adding them, and not hunting them :-) > - 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. > Of course, this is possible in Eclipse, just not done yet. Added a specific issue for tracking this particular feature ( which I recon is super practical ! ) : http://code.google.com/p/counterclockwise/issues/detail?id=124 > 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<clojure%2bunsubscr...@googlegroups.com> > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > -- 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