I am *very* excited to see this project, which I think could be a great 
addition to the Clojure world, particularly for newcomers and those of us who 
teach them.

First critical reactions:

- I put a high premium on auto-indendentation, and clooj seems to get this 
right when hitting return after typing some code (or in the middle of code) -- 
this is great and missing in some other Clojure editing environments. A big 
plus. But if one screws up the indentation I don't see how to say "indent this 
properly again, in the context of what comes above it." Tab moves it to the 
right, shift-tab moves it to the left, but is there a way to say "move it to 
the correct place"? Actually, yes: one can do this by deleting the previous 
newline and hitting return again, but that's awkward, particularly if you want 
to go through a block of code and see if the structure is what you thought it 
was... you'd have to delete and re-enter each newline.

- I just created a new project and I get a user prompt in the REPL pane but I 
can't type anything into that... so I can't actually try it... I click in there 
but I don't get a cursor there, and typing does nothing. In case it matters I'm 
running Mac OS 10.6.8 and java -version says:

java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03-384-10M3425)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02-384, mixed mode)

- How is one supposed to create a new .clj file and add it to the project? I 
see that you say that some stuff is to be done with lein or cake at the command 
line... and I guess some stuff like creating new files could be done with other 
OS-specific tools, and all of this is fine with me, but it's not clear to me 
what should be done how. I'm not suggesting that any more needs to be done 
within clooj itself -- just that it should be more clear what should be done 
where. I think that a "hello world" example that walks one through the process 
of creating a new project, adding a new, empty src file, adding code to that 
file, and running the code, would clear this up. Maybe also a second simple 
example that also adds one library... or something like that.

- It would be nice if all of the basic editor functionality was discoverable 
via menu items. For example the indentation commands are mentioned in the 
instructions in the posting to the list, but since they're not in the menus a 
user may not realize they're there. (These in particular could be under the 
Source menu, but as a general rule it would be nice if all major features are 
*somewhere* in the interface.)

- Longer term I agree with Shantanu that things like syntax highlighting and 
autocompletion would be great, and actually I'd put my all-time favorite 
feature even before those: arglist-on-space. I'm a total arglist-on-space 
fanatic and evangelist -- I think it's the greatest idea ever for 
supporting/speeding code editing and that it should be in every Lisp editor. 
AFAIK it is currently available for Clojure only in emacs and MCLIDE. If I were 
going to add one editor feature beyond robust auto-indenting it would be 
arglist-on-space.

Again, I love this project! I hope that the comments above are taken as 
constructive criticism.

 -Lee




On Jul 18, 2011, at 3:03 AM, Arthur Edelstein wrote:

> Hi Everyone,
> 
> I want to let you know about clooj, a small, simple IDE for clojure
> that I have been developing (in clojure). It's packaged as a single
> jar file (including clojure 1.2), here:
> https://github.com/downloads/arthuredelstein/clooj/clooj-0.1.0-standalone.jar
> Just download it and double-click. (I use clooj to develop clojure
> code every day at work.)
> 
> You can look at the source code here:
> https://github.com/arthuredelstein/clooj
> 
> clooj runs as a standalone application or you can embed it in other
> JVM programs. (See the README, below).
> 
> This is an alpha release and I plan to continue further development.
> Feedback of all kinds and code contributions are much appreciated! :)
> 
> Arthur Edelstein
> San Francisco
> 
> ------
> 
> clooj, a lightweight IDE for clojure
> 
> --- the application
> clooj is a small, simple IDE (integrated development environment) for
> the clojure programming language. clooj is written entirely in clojure
> and uses a swing-based GUI. It is cross-platform (assuming Java 1.6
> has been installed on your operating system), and runs as a standalone
> application or as a clojure editor embedded in another java or clojure
> application. The standalone version (containing the clojure core) is a
> single jar file that can be launched by double-clicking its file icon
> or by running
> java -jar clooj-XXX-STANDALONE.jar from the command line. To embed in
> java, call clooj.core.show().
> 
> --- the layout
> The clooj window contains three columns. The left-most column is a
> tree showing clojure projects and the source files they contain. The
> middle column is the source file editor. The right column displays
> inputs and outputs of clojure REPLs (read-evaluate-print loops).
> 
> --- the source editor
> The source code editor offers a few simple things to make writing
> clojure code easier:
> 
> *  A non-traditional bracket-matching feature highlights in gray
> those brackets that contain the innermost form you are currently
> editing.
> *  Mismatched or unmatched brackets are highlighted in pink.
> *  TAB indents, and shift+TAB unindents.
> *  Automatically comment-out (and un-comment-out) multiple lines.
> *  When newlines are entered, the next line is automatically
> indented.
> *  Press ctrl-ENTER to send either the nearest root form or the
> selected text to the REPL.
> *  Source files are continuously saved in the background to prevent
> accidental loss of your work in the event of a crash.
> 
> --- clojure projects
> Each clojure project corresponds to a project directory somewhere in
> the file system, containing a src directory. Inside the src directory
> is the source code hierarchy, composed of directories and .clj files.
> Note this directory structure is completely compatible with the lein
> and cake clojure build programs and you are encouraged to use one of
> these from the command line in conjunction with the clooj editor.
> Clicking different source files in the projects tree will
> automatically change the source file currently being edited, as well
> as switch the REPL to the appropriate namespace.
> 
> --- read-evaluate-print loops
> The upper part of clooj's REPL display column shows the REPL history
> (inputs and outputs) and the lower part is a text area for inputting
> forms into REPL. Each project gets its own REPL environment: when a
> project is first selected, a new clojure REPL is created behind the
> scenes and becomes the REPL in use. By choosing "Restart REPL" you
> cause a new REPL to be created for the currently selected project and
> the old one to be discarded, if possible. If the project directory
> contains directories named "lib" and/or "jars" and there are any jar
> files inside, these jars will be included in the classpath whenever
> the project REPL is launched. You can subsequently add further jar
> files to the classpath by placing them in the "lib" or "jars"
> directory and restarting the REPL.
> 
> --- more work needed
> clooj is a work in progress. Your suggestions, criticisms and code
> contributions are appreciated.
> 
> 
> -- 
> 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

--
Lee Spector, Professor of Computer Science
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

-- 
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