Re: Waterfront - The Clojure-based editor for Clojure

2009-03-04 Thread aperotte

Michael, Itay,

I apologize, that was actually an intermediate script.  I also
incorporated Michael's suggestion. The only thing that's different
from Michael's is the addition of the bin directory.  Also, my script
assumes that you've set a CLASSPATH environment variable to contain
the clojure jar file. This is my current script:

#!/bin/bash

DP="${0%/*}"
java -cp "$CLASSPATH:${DP}/clj:${DP}/java:${DP}/bin" -
Dnet.sourceforge.waterfront.plugins="${DP}/clj/net/sourceforge/
waterfront/ide/plugins" clojure.main "${DP}/clj/net/sourceforge/
waterfront/ide/main.clj" "$@"

-Adler

On Mar 4, 1:14 am, Michael Wood  wrote:
> On Tue, Mar 3, 2009 at 9:14 PM, aperotte  wrote:
>
> > Hi,
>
> > I'm using linux (Ubuntu) and none of the above scripts worked for me.
> > I added the ${DP}/bin directory to the classpath list to get it to
> > work.
>
> > #!/bin/sh
> > DP="${0%/*}"
> > java -cp ~/src/clojure/clojure.jar:${DP}/clj:${DP}/java -
> > Dnet.sourceforge.waterfront.plugins=${DP}/clj/net/sourceforge/
> > waterfront/ide/plugins clojure.main ${DP}/clj/net/sourceforge/
> > waterfront/ide/main.clj $*
>
> There are some bugs in your script.  See my post in this thread from a
> few days ago for 
> details:http://groups.google.com/group/clojure/browse_thread/thread/d5ce5ddb6...
>
> > P.S. - The text editor you are using for the shell script is encoding
> > DOS style newlines and doesn't work on linux.  I copied the text to a
> > new file to get around it.
>
> --
> Michael Wood 
--~--~-~--~~~---~--~~
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
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
-~--~~~~--~~--~--~---



Re: Waterfront - The Clojure-based editor for Clojure

2009-03-04 Thread aperotte

Michael, Itay,

I apologize, that was actually an intermediate script.  I also
incorporated Michael's suggestion. The only thing that's different
from Michael's is the addition of the bin directory.  This is my
current script:

#!/bin/bash

DP="${0%/*}"
java -cp "$CLASSPATH:${DP}/clj:${DP}/java:${DP}/bin" -
Dnet.sourceforge.waterfront.plugins="${DP}/clj/net/sourceforge/
waterfront/ide/plugins" clojure.main "${DP}/clj/net/sourceforge/
waterfront/ide/main.clj" "$@"


-Adler

On Mar 4, 1:14 am, Michael Wood  wrote:
> On Tue, Mar 3, 2009 at 9:14 PM, aperotte  wrote:
>
> > Hi,
>
> > I'm using linux (Ubuntu) and none of the above scripts worked for me.
> > I added the ${DP}/bin directory to the classpath list to get it to
> > work.
>
> > #!/bin/sh
> > DP="${0%/*}"
> > java -cp ~/src/clojure/clojure.jar:${DP}/clj:${DP}/java -
> > Dnet.sourceforge.waterfront.plugins=${DP}/clj/net/sourceforge/
> > waterfront/ide/plugins clojure.main ${DP}/clj/net/sourceforge/
> > waterfront/ide/main.clj $*
>
> There are some bugs in your script.  See my post in this thread from a
> few days ago for 
> details:http://groups.google.com/group/clojure/browse_thread/thread/d5ce5ddb6...
>
> > P.S. - The text editor you are using for the shell script is encoding
> > DOS style newlines and doesn't work on linux.  I copied the text to a
> > new file to get around it.
>
> --
> Michael Wood 
--~--~-~--~~~---~--~~
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
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
-~--~~~~--~~--~--~---



Re: Waterfront - The Clojure-based editor for Clojure

2009-03-03 Thread Michael Wood

On Tue, Mar 3, 2009 at 9:14 PM, aperotte  wrote:
>
> Hi,
>
> I'm using linux (Ubuntu) and none of the above scripts worked for me.
> I added the ${DP}/bin directory to the classpath list to get it to
> work.
>
> #!/bin/sh
> DP="${0%/*}"
> java -cp ~/src/clojure/clojure.jar:${DP}/clj:${DP}/java -
> Dnet.sourceforge.waterfront.plugins=${DP}/clj/net/sourceforge/
> waterfront/ide/plugins clojure.main ${DP}/clj/net/sourceforge/
> waterfront/ide/main.clj $*

There are some bugs in your script.  See my post in this thread from a
few days ago for details:
http://groups.google.com/group/clojure/browse_thread/thread/d5ce5ddb679cb8f9/79919526bf401a08?lnk=gst#79919526bf401a08

> P.S. - The text editor you are using for the shell script is encoding
> DOS style newlines and doesn't work on linux.  I copied the text to a
> new file to get around it.

-- 
Michael Wood 

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



Waterfront 148 (was: Waterfront - The Clojure-based editor for Clojure)

2009-03-03 Thread Itay Maman

Adler, Konard:

Thank you guys for the patches.
-Itay


On Mar 3, 9:14 pm, aperotte  wrote:
> Hi,
>
> I'm using linux (Ubuntu) and none of the above scripts worked for me.
> I added the ${DP}/bin directory to the classpath list to get it to
> work.
>
> #!/bin/sh
> DP="${0%/*}"
> java -cp ~/src/clojure/clojure.jar:${DP}/clj:${DP}/java -
> Dnet.sourceforge.waterfront.plugins=${DP}/clj/net/sourceforge/
> waterfront/ide/plugins clojure.main ${DP}/clj/net/sourceforge/
> waterfront/ide/main.clj $*
>
> P.S. - The text editor you are using for the shell script is encoding
> DOS style newlines and doesn't work on linux.  I copied the text to a
> new file to get around it.
>
> -Adler
>
> On Feb 25, 4:32 am, Itay Maman  wrote:
>
> > On Feb 25, 11:08 am, bOR_  wrote:
>
> > > I'm trying to rewrite the wf.bat to a linux version, but I was a bit
> > > puzzled what all the ;%~dp0 's mean.
>
> > In .bat files %~dp0 specifies the directory where the .bat file is
> > located.
> > In sh scripts, it should be `dirname $0`.
>
> > >Apparently the bash version of it
> > > is ${0%/*}
>
> > > java -cp ~/src/clojure/clojure.jar;${0%/*}clj;${0%/*}java -
> > > Dnet.sourceforge.waterfront.plugins=${0%/*}clj/net/sourceforge/
> > > waterfront/ide/plugins clojure.main ${0%/*}clj/net/sourceforge/
> > > waterfront/ide/main.clj %*
>
> > > It seems like you're also assuming 'clj' to exist?
>
> > clj and java are the subdirectories in the Waterfront installation
> > directory. So if the zip was unzipped
> > successfully, it is safe to assume they exist.
>
> > I don't have a Linux machine. Could you send me this script (one it is
> > up and running)
> > so that I will put it inside the .zip file?
>
> > Thanks,
> > -Itay
>
> > > On Feb 25, 2:57 am, Kevin Albrecht  wrote:
>
> > > > Itay,
>
> > > > I took a look at Waterfront and it seems to have a lot of potential.
> > > > Keep me and the group updated on your future work.
>
> > > > I have also been working on a GUI application in Clojure and I share
> > > > your perspective on the challenges of designing a functional GUI.  I
> > > > am definitely intrigued by the application context pattern and I am
> > > > going to take a look at it for incorporation in my design.
>
> > > > Thanks,
> > > > Kevin Albrecht
>
> > > > On Feb 24, 6:04 am, Itay Maman  wrote:
>
> > > > > I've been silently following Clojure (and this group) for several
> > > > > months now.Somewhere around December I started working on a Clojure
> > > > > editor/REPL written in Clojure. This effort evolved into the
> > > > > Waterfront project which is now available on sourceforge (http://
> > > > > sourceforge.net/project/showfiles.php?group_id=249246).
>
> > > > > Waterfront's Highlights:
>
> > > > > * CTRL+E: Eval current selection, or the whole file if the selection
> > > > > is empty
> > > > > * Edit -> Eval as you type: When turned on (default) periodically
> > > > > evaluates your code. Boosts productivity as many errors are detected
> > > > > on the spot.
> > > > > * Eval-ed code can inspect/mutate Waterfront by accessing the *app*
> > > > > variable. For instance, if you eval this expression,
> > > > > ((*app* :change) :font-name "Arial"), you will choose "Arial" as the
> > > > > UI font.
> > > > > * Eval-ed code can inspect the currently edited Clojure program. For
> > > > > instance, if you eval this expression, ((*app* :visit) #(when (= (str
> > > > > (first %1)) "cons") (println %1))), the output window will show all
> > > > > calls, made by your code, to the cons function.
> > > > > * Syntax and Evaluation errors are displayed on: (1) The Problems
> > > > > window; (2) The line-number panel, as red markers.
> > > > > * Source -> Generate -> Proxy: Generates a proxy for the given list of
> > > > > super-types, with stub implementations for all abstract methods.
> > > > > * F1: Shows the doc (as per Clojure's (doc x) function) of the
> > > > > identifier under the caret.
> > > > > * Source -> Reflect: Shows the synopsis of a Java class when the caret
> > > > > stands on a class symbol (e.g.: java.awt.Color).
> > > > > * CTRL+Space: Token-based auto completion.
> > > > > * Full parenthesis matching.
> > > > > * An extensible plugin architecture.
> > > > > * Other goodies such as undo/redo, toggle comment, recently opened
> > > > > files, indent/unindent, Tab is *always* two spaces, ...
>
> > > > > In order to get started, you need to
> > > > >   (1) Download the waterfront zip file 
> > > > > from:http://sourceforge.net/project/showfiles.php?group_id=249246.
> > > > >   (2) Unpack it into a local directory.
> > > > >   (3) Edit wf.bat: fix the path to clojure.jar according to its
> > > > > location on your machine.
>
> > > > > Personally, this effort was quite interesting. Writing GUI
> > > > > applications in a functional language is sometimes a challenging task
> > > > > (at least if you want your Clojure code not to be a transliteration of
> > > > > Java code…).  I used a pattern the "application context" pattern: an
> 

Re: Waterfront - The Clojure-based editor for Clojure

2009-03-03 Thread aperotte

Hi,

I'm using linux (Ubuntu) and none of the above scripts worked for me.
I added the ${DP}/bin directory to the classpath list to get it to
work.

#!/bin/sh
DP="${0%/*}"
java -cp ~/src/clojure/clojure.jar:${DP}/clj:${DP}/java -
Dnet.sourceforge.waterfront.plugins=${DP}/clj/net/sourceforge/
waterfront/ide/plugins clojure.main ${DP}/clj/net/sourceforge/
waterfront/ide/main.clj $*

P.S. - The text editor you are using for the shell script is encoding
DOS style newlines and doesn't work on linux.  I copied the text to a
new file to get around it.

-Adler

On Feb 25, 4:32 am, Itay Maman  wrote:
> On Feb 25, 11:08 am, bOR_  wrote:
>
> > I'm trying to rewrite the wf.bat to a linux version, but I was a bit
> > puzzled what all the ;%~dp0 's mean.
>
> In .bat files %~dp0 specifies the directory where the .bat file is
> located.
> In sh scripts, it should be `dirname $0`.
>
> >Apparently the bash version of it
> > is ${0%/*}
>
> > java -cp ~/src/clojure/clojure.jar;${0%/*}clj;${0%/*}java -
> > Dnet.sourceforge.waterfront.plugins=${0%/*}clj/net/sourceforge/
> > waterfront/ide/plugins clojure.main ${0%/*}clj/net/sourceforge/
> > waterfront/ide/main.clj %*
>
> > It seems like you're also assuming 'clj' to exist?
>
> clj and java are the subdirectories in the Waterfront installation
> directory. So if the zip was unzipped
> successfully, it is safe to assume they exist.
>
> I don't have a Linux machine. Could you send me this script (one it is
> up and running)
> so that I will put it inside the .zip file?
>
> Thanks,
> -Itay
>
> > On Feb 25, 2:57 am, Kevin Albrecht  wrote:
>
> > > Itay,
>
> > > I took a look at Waterfront and it seems to have a lot of potential.
> > > Keep me and the group updated on your future work.
>
> > > I have also been working on a GUI application in Clojure and I share
> > > your perspective on the challenges of designing a functional GUI.  I
> > > am definitely intrigued by the application context pattern and I am
> > > going to take a look at it for incorporation in my design.
>
> > > Thanks,
> > > Kevin Albrecht
>
> > > On Feb 24, 6:04 am, Itay Maman  wrote:
>
> > > > I've been silently following Clojure (and this group) for several
> > > > months now.Somewhere around December I started working on a Clojure
> > > > editor/REPL written in Clojure. This effort evolved into the
> > > > Waterfront project which is now available on sourceforge (http://
> > > > sourceforge.net/project/showfiles.php?group_id=249246).
>
> > > > Waterfront's Highlights:
>
> > > > * CTRL+E: Eval current selection, or the whole file if the selection
> > > > is empty
> > > > * Edit -> Eval as you type: When turned on (default) periodically
> > > > evaluates your code. Boosts productivity as many errors are detected
> > > > on the spot.
> > > > * Eval-ed code can inspect/mutate Waterfront by accessing the *app*
> > > > variable. For instance, if you eval this expression,
> > > > ((*app* :change) :font-name "Arial"), you will choose "Arial" as the
> > > > UI font.
> > > > * Eval-ed code can inspect the currently edited Clojure program. For
> > > > instance, if you eval this expression, ((*app* :visit) #(when (= (str
> > > > (first %1)) "cons") (println %1))), the output window will show all
> > > > calls, made by your code, to the cons function.
> > > > * Syntax and Evaluation errors are displayed on: (1) The Problems
> > > > window; (2) The line-number panel, as red markers.
> > > > * Source -> Generate -> Proxy: Generates a proxy for the given list of
> > > > super-types, with stub implementations for all abstract methods.
> > > > * F1: Shows the doc (as per Clojure's (doc x) function) of the
> > > > identifier under the caret.
> > > > * Source -> Reflect: Shows the synopsis of a Java class when the caret
> > > > stands on a class symbol (e.g.: java.awt.Color).
> > > > * CTRL+Space: Token-based auto completion.
> > > > * Full parenthesis matching.
> > > > * An extensible plugin architecture.
> > > > * Other goodies such as undo/redo, toggle comment, recently opened
> > > > files, indent/unindent, Tab is *always* two spaces, ...
>
> > > > In order to get started, you need to
> > > >   (1) Download the waterfront zip file 
> > > > from:http://sourceforge.net/project/showfiles.php?group_id=249246.
> > > >   (2) Unpack it into a local directory.
> > > >   (3) Edit wf.bat: fix the path to clojure.jar according to its
> > > > location on your machine.
>
> > > > Personally, this effort was quite interesting. Writing GUI
> > > > applications in a functional language is sometimes a challenging task
> > > > (at least if you want your Clojure code not to be a transliteration of
> > > > Java code…).  I used a pattern the "application context" pattern: an
> > > > immutable map describing the application's current state that is
> > > > passed around. This made it possible for most of Waterfront's code to
> > > > be purely functional. Consequently, plugins can accomplish a lot with
> > > > just a handful of lines. Many plugins span

Re: Waterfront 148 (was: Waterfront - The Clojure-based editor for Clojure)

2009-03-03 Thread Konrad Hinsen

Itay,

> Alternatively hoping that this is the only Java6-only dependency in
> the code, you can also apply this patch to clj/net/sourceforge/
> waterfront/ide/plugins/file.clj (I didn't test is though - I am away
> from my machine, so no warranty...)

Thanks for the quick fix, it works!

I can now start Waterfront and work with it, but there are still some  
error messages at startup concerning certain plugins:

Can't load plugin undo.clj. Reason: java.lang.Exception: LazySeq used  
in 'if' (lexer.clj:0)
Can't load plugin comments.clj. Reason: java.lang.Exception: Unable  
to resolve symbol: create-undo-transaction in this context  
(comments.clj:48)
Can't load plugin find.clj. Reason: java.lang.Exception: Unable to  
resolve symbol: create-undo-transaction in this context (find.clj:117)
Can't load plugin check-syntax.clj. Reason: java.lang.Exception:  
LazySeq used in 'if' (lexer.clj:0)
Can't load plugin indent.clj. Reason: java.lang.Exception: Unable to  
resolve symbol: create-undo-transaction in this context (indent.clj:125)
Can't load plugin paren-matching.clj. Reason: java.lang.Exception:  
LazySeq used in 'if' (lexer.clj:0)
Can't load plugin eval-as-you-type.clj. Reason: java.lang.Exception:  
LazySeq used in 'if' (lexer.clj:0)


I applied two fixes in lexer.clj that get rid of all these messages:

1) Replace first-is by

(defn first-is
   { :test (fn []
 (assert-eq false (first-is \a (seq "")))
 (assert-eq true (first-is :nothing (seq "")))
 (assert-eq true (first-is \a (seq "a")))
 (assert-eq false (first-is :nothing (seq "a")))
 (assert-eq true (first-is \a (seq "ab")))
 (assert-eq false (first-is :nothing (seq "ab")))
 (assert-eq false (first-is \a (seq "ba")))
 (assert-eq false (first-is :nothing (seq "ba"))) )}
   [e es]
   (if (seq es)
 (= e (first es))
 (= e :nothing) ))


2) Replace get-mate-from-pairs by

(defn get-mate-from-pairs
   { :test (fn []
 (assert-eq [:match 4] (get-mate-from-pairs (compute- 
paren-matching-pairs  "01[3]5") 2)) )}
   [pairs offset]
   (let [pair (filter (fn [x] (= offset (second x))) pairs)]
 (if (seq pair)
   [(nth (first pair) 0) (nth (first pair) 2)]
   nil )))


Konrad.


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



Re: Waterfront 148 (was: Waterfront - The Clojure-based editor for Clojure)

2009-03-03 Thread Itay Maman

Konrad,

Your installation is probably fine. The problem lies in the
FileNameExtensionFilter  class. It was only introduced in Java6.
Therefore, despite the fact
that you now have binaries that are compatible with your JVM, the
program does not run. I'll try to fix this soon. I'll post a message
when a new revision is up.

Alternatively hoping that this is the only Java6-only dependency in
the code, you can also apply this patch to clj/net/sourceforge/
waterfront/ide/plugins/file.clj (I didn't test is though - I am away
from my machine, so no warranty...)

Replace lines 169..173 with this:

(defn add-chooser [app]
  (let [chooser (javax.swing.JFileChooser. (. System getProperty
"user.dir"))]
(assoc app :file-chooser chooser) ))


Hope that helps.
-Itay


On Mar 3, 5:21 pm, Konrad Hinsen  wrote:
> On Mar 3, 2009, at 11:46, Tom Ayerst wrote:
>
> > If you pull trunk out of subversion you can build it locally with  
> > Ant.  Would that do it?
>
> Definitely, thanks!  I pulled the latest revision and built it by  
> typing "ant". No compilation errors, but I can't run it either:
>
> Can't load plugin custom-editor.clj. Reason:  
> java.lang.ClassNotFoundException:  
> javax.swing.filechooser.FileNameExtensionFilter (file.clj:171)
> Can't load plugin context-menu.clj. Reason: nil
> Can't load plugin file.clj. Reason: java.lang.ClassNotFoundException:  
> javax.swing.filechooser.FileNameExtensionFilter (file.clj:171)
> Can't load plugin problem-window.clj. Reason: nil
> Can't load plugin undo.clj. Reason: java.lang.Exception: LazySeq used  
> in 'if' (lexer.clj:0)
> Can't load plugin comments.clj. Reason: java.lang.Exception: Unable  
> to resolve symbol: create-undo-transaction in this context  
> (comments.clj:48)
> Can't load plugin line-column.clj. Reason: nil
> Can't load plugin find.clj. Reason: java.lang.Exception: Unable to  
> resolve symbol: create-undo-transaction in this context (find.clj:117)
> Can't load plugin indicator.clj. Reason: nil
> Can't load plugin output-window.clj. Reason: nil
> Can't load plugin check-syntax.clj. Reason: java.lang.Exception:  
> LazySeq used in 'if' (lexer.clj:0)
> Can't load plugin indent.clj. Reason: java.lang.Exception: Unable to  
> resolve symbol: create-undo-transaction in this context (indent.clj:125)
> Can't load plugin paren-matching.clj. Reason: java.lang.Exception:  
> LazySeq used in 'if' (lexer.clj:0)
> Can't load plugin eval-as-you-type.clj. Reason: java.lang.Exception:  
> LazySeq used in 'if' (lexer.clj:0)
> java.lang.NullPointerException
>         at clojure.lang.Reflector.invokeInstanceMethod(Reflector.java:26)
>         at net.sourceforge.waterfront.ide.plugins$set_font__1700.invoke(font-
> observer.clj:20)
>         at net.sourceforge.waterfront.ide.plugins$set_fonts__1703.invoke
> (font-observer.clj:26)
>         at net.sourceforge.waterfront.ide$dispatcher__550$fn__554.invoke
> (ui.clj:85)
> ...
>
> It looks as if my installation lacks parts of Swing, but there also  
> seem to be some lazy-seq-related bugs in Waterfront itself (my  
> Clojure is compiled with clojure.assert-if-lazy-seq=true).
>
> Is anyone running Waterfront successfully on a Mac with Java 1.5?
>
> Konrad.
--~--~-~--~~~---~--~~
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
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
-~--~~~~--~~--~--~---



Re: Waterfront 148 (was: Waterfront - The Clojure-based editor for Clojure)

2009-03-03 Thread Konrad Hinsen

On Mar 3, 2009, at 11:46, Tom Ayerst wrote:

> If you pull trunk out of subversion you can build it locally with  
> Ant.  Would that do it?

Definitely, thanks!  I pulled the latest revision and built it by  
typing "ant". No compilation errors, but I can't run it either:

Can't load plugin custom-editor.clj. Reason:  
java.lang.ClassNotFoundException:  
javax.swing.filechooser.FileNameExtensionFilter (file.clj:171)
Can't load plugin context-menu.clj. Reason: nil
Can't load plugin file.clj. Reason: java.lang.ClassNotFoundException:  
javax.swing.filechooser.FileNameExtensionFilter (file.clj:171)
Can't load plugin problem-window.clj. Reason: nil
Can't load plugin undo.clj. Reason: java.lang.Exception: LazySeq used  
in 'if' (lexer.clj:0)
Can't load plugin comments.clj. Reason: java.lang.Exception: Unable  
to resolve symbol: create-undo-transaction in this context  
(comments.clj:48)
Can't load plugin line-column.clj. Reason: nil
Can't load plugin find.clj. Reason: java.lang.Exception: Unable to  
resolve symbol: create-undo-transaction in this context (find.clj:117)
Can't load plugin indicator.clj. Reason: nil
Can't load plugin output-window.clj. Reason: nil
Can't load plugin check-syntax.clj. Reason: java.lang.Exception:  
LazySeq used in 'if' (lexer.clj:0)
Can't load plugin indent.clj. Reason: java.lang.Exception: Unable to  
resolve symbol: create-undo-transaction in this context (indent.clj:125)
Can't load plugin paren-matching.clj. Reason: java.lang.Exception:  
LazySeq used in 'if' (lexer.clj:0)
Can't load plugin eval-as-you-type.clj. Reason: java.lang.Exception:  
LazySeq used in 'if' (lexer.clj:0)
java.lang.NullPointerException
at clojure.lang.Reflector.invokeInstanceMethod(Reflector.java:26)
at net.sourceforge.waterfront.ide.plugins$set_font__1700.invoke(font- 
observer.clj:20)
at net.sourceforge.waterfront.ide.plugins$set_fonts__1703.invoke 
(font-observer.clj:26)
at net.sourceforge.waterfront.ide$dispatcher__550$fn__554.invoke 
(ui.clj:85)
...

It looks as if my installation lacks parts of Swing, but there also  
seem to be some lazy-seq-related bugs in Waterfront itself (my  
Clojure is compiled with clojure.assert-if-lazy-seq=true).

Is anyone running Waterfront successfully on a Mac with Java 1.5?

Konrad.


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



Re: Waterfront 148 (was: Waterfront - The Clojure-based editor for Clojure)

2009-03-03 Thread Tom Ayerst
If you pull trunk out of subversion you can build it locally with Ant.
Would that do it?

https://waterfront.svn.sourceforge.net/svnroot/waterfront/trunk

Cheers

Tom


2009/3/3 Konrad Hinsen 

>
> On 27.02.2009, at 15:14, Itay Maman wrote:
>
> > Revision 148 is available for download at
> > http://sourceforge.net/project/platformdownload.php?group_id=249246
> > It addresses some of the requests that were raised in this discussion:
> >
> > * Changed default location of the divider
> > * Fixed the "command-key" issue on Macs.
> > * Java 1.5 compilance (prev. 1.6)
>
> I still can't run it with Java 1.5:
>
> java.lang.UnsupportedClassVersionError: Bad version number in .class
> file (kit.clj:247)
>
> Is there a simple way to recompile everything on my machine?
>
> Konrad.
>
>
> >
>

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



Re: Waterfront 148 (was: Waterfront - The Clojure-based editor for Clojure)

2009-03-03 Thread Konrad Hinsen

On 27.02.2009, at 15:14, Itay Maman wrote:

> Revision 148 is available for download at
> http://sourceforge.net/project/platformdownload.php?group_id=249246
> It addresses some of the requests that were raised in this discussion:
>
> * Changed default location of the divider
> * Fixed the "command-key" issue on Macs.
> * Java 1.5 compilance (prev. 1.6)

I still can't run it with Java 1.5:

java.lang.UnsupportedClassVersionError: Bad version number in .class  
file (kit.clj:247)

Is there a simple way to recompile everything on my machine?

Konrad.


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



Re: Waterfront 148 (was: Waterfront - The Clojure-based editor for Clojure)

2009-02-28 Thread Dan

On Sat, Feb 28, 2009 at 4:31 AM, Itay Maman  wrote:
>
> Dan, Marko,
>
> I wonder whether you have the time to do a little experiment. The L&F
> is set at line 182 of net/sourceforge/waterfront/ide/ui.clj. Could you
> please try to see which L&F works on your machine or, otherwise,
> understand why an exception is thrown there?
>
> Thanks,
> -Itay

I'm not at home right now but as soon as I return (should be Monday), I'll check

My guess is that it has to do with KDE being based on Qt. Java only
has a GTK+ look and feel for Linux so it probably consider it doesn't
have my native look and feel available and defaults to metal.

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



Re: Waterfront 148 (was: Waterfront - The Clojure-based editor for Clojure)

2009-02-28 Thread Itay Maman

Dan, Marko,

I wonder whether you have the time to do a little experiment. The L&F
is set at line 182 of net/sourceforge/waterfront/ide/ui.clj. Could you
please try to see which L&F works on your machine or, otherwise,
understand why an exception is thrown there?

Thanks,
-Itay


On Feb 28, 12:58 am, Dan  wrote:
> > I'm not sure I understand. Are you referring to
> > UIManager.getSystemLookAndFeelClassName() ?
> > This is the L&F that Waterfront is using. If you don't get this L&F
> > then perhaps the call to setLookAndFeel() fails on your machine. I'll
> > add a piece of code to log the exception.
>
> > -Itay
>
> It also has the ugly default swing L&F on my machine too. I'm using Linux / 
> KDE.
--~--~-~--~~~---~--~~
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
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
-~--~~~~--~~--~--~---



Re: Waterfront - The Clojure-based editor for Clojure

2009-02-28 Thread Itay Maman



On Feb 28, 1:57 am, zoltar  wrote:
> On Feb 25, 6:02 pm, "Stephen C. Gilardi"  wrote:
>
>
>
> > - When using waterfront on Mac OS X, it appears that the control  
> > characters intended to trigger menu selections (e.g. ^E) are being  
> > intercepted before they reach the menus. In the specific case of ^E,  
> > it is being interpreted by the text input field as "move to end of  
> > line" which is a common meaning for it in Mac OS X. I suspect there is  
> > a way to trigger menu items using the "command-key" on the Mac (while  
> > still using the control key on Windows) and people using waterfront on  
> > Mac OS X would benefit from a change to using that mechanism.
>
> Indeed. Instead of hard-coding modifier keys, you should use the
> Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(). This will
> return control for windows and META (or command) for Mac.
>
> Curtis

Curtis,

Yes, that's exactly what I did in rev. 148, already available at
sf.net.

Thanks,
-Itay

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



Re: Waterfront - The Clojure-based editor for Clojure

2009-02-27 Thread zoltar

On Feb 25, 6:02 pm, "Stephen C. Gilardi"  wrote:
>
> - When using waterfront on Mac OS X, it appears that the control  
> characters intended to trigger menu selections (e.g. ^E) are being  
> intercepted before they reach the menus. In the specific case of ^E,  
> it is being interpreted by the text input field as "move to end of  
> line" which is a common meaning for it in Mac OS X. I suspect there is  
> a way to trigger menu items using the "command-key" on the Mac (while  
> still using the control key on Windows) and people using waterfront on  
> Mac OS X would benefit from a change to using that mechanism.

Indeed. Instead of hard-coding modifier keys, you should use the
Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(). This will
return control for windows and META (or command) for Mac.

Curtis

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



Re: Waterfront 148 (was: Waterfront - The Clojure-based editor for Clojure)

2009-02-27 Thread Dan

> I'm not sure I understand. Are you referring to
> UIManager.getSystemLookAndFeelClassName() ?
> This is the L&F that Waterfront is using. If you don't get this L&F
> then perhaps the call to setLookAndFeel() fails on your machine. I'll
> add a piece of code to log the exception.
>
> -Itay

It also has the ugly default swing L&F on my machine too. I'm using Linux / KDE.

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



Re: Waterfront 148 (was: Waterfront - The Clojure-based editor for Clojure)

2009-02-27 Thread Itay Maman



On Feb 27, 5:22 pm, Marko Kocić  wrote:
> Nice work.
>
> I have a couple of (mostly cosmetic but important suggestions):
> - Set look and feel to NativeLookAndFeel

I'm not sure I understand. Are you referring to
UIManager.getSystemLookAndFeelClassName() ?
This is the L&F that Waterfront is using. If you don't get this L&F
then perhaps the call to setLookAndFeel() fails on your machine. I'll
add a piece of code to log the exception.

-Itay


> - Allow user to increase application fonts, not just editor fonts.
>
> Regards,
> Marko Kocić
--~--~-~--~~~---~--~~
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
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
-~--~~~~--~~--~--~---



Re: Waterfront 148 (was: Waterfront - The Clojure-based editor for Clojure)

2009-02-27 Thread Marko Kocić

Nice work.

I have a couple of (mostly cosmetic but important suggestions):
- Set look and feel to NativeLookAndFeel
- Allow user to increase application fonts, not just editor fonts.

Regards,
Marko Kocić

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



Waterfront 148 (was: Waterfront - The Clojure-based editor for Clojure)

2009-02-27 Thread Itay Maman

Revision 148 is available for download at
http://sourceforge.net/project/platformdownload.php?group_id=249246
It addresses some of the requests that were raised in this discussion:

* Changed default location of the divider
* Fixed the "command-key" issue on Macs.
* Java 1.5 compilance (prev. 1.6)
* Added a space in the execution time between the digits and "ms".
E.g., "34ms" --> "34 ms"
* Source -> Doc and Source -> Reflect consolidated into a single menu
item triggered by F1
* wf.sh file added
* wf.bat handles spaces in the path

Thanks you Stephen, Tom, Mike and all the other for the feedback.

Also, for those interested in the "application context pattern",
please see a post with that title published earlier today.

-Itay



On Feb 26, 4:25 pm, Itay Maman  wrote:
> > What ? You used Eclipse, and still wanted to get rid of it and of clojuredev
> > ! How sad I am ... ;-)
>
> :))
>
>
>
> > I've taken a look at what you've done, wow !
>
> > How long did it take to realize that ? Were you working on it daily, or
> > nightly ?
>
> I had a couple of weeks off at Dec. Since Jan. it is mostly night-
> time.
>
>
>
> > Keep up the good work !
>
> Thanks.
--~--~-~--~~~---~--~~
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
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
-~--~~~~--~~--~--~---



Re: Waterfront - The Clojure-based editor for Clojure

2009-02-26 Thread Itay Maman

>
> What ? You used Eclipse, and still wanted to get rid of it and of clojuredev
> ! How sad I am ... ;-)

:))

>
> I've taken a look at what you've done, wow !
>
> How long did it take to realize that ? Were you working on it daily, or
> nightly ?

I had a couple of weeks off at Dec. Since Jan. it is mostly night-
time.

>
> Keep up the good work !

Thanks.

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



Re: Waterfront - The Clojure-based editor for Clojure

2009-02-26 Thread Laurent PETIT
2009/2/26 Itay Maman 

>
>
>
> On Feb 26, 2:02 pm, Konrad Hinsen  wrote:
> > On Feb 26, 2009, at 12:30, Itay Maman wrote:
> >
> > > In Java6 @Override can also be attached to a method that overrides an
> > > interface-declared method. So, the code is not supposed to compile w/
> > > a Java5 compiler. As for the Java6 compiler, my guess is that your
> > > compile is configured to be Java5 complaint. So I would suggest to
> > > specify "-source 1.6" in the javac command line. Anyway, I will add it
> > > to the build.xml file.
> >
> > Do you need Java 1.6 features? Clojure itself works fine with 1.5,
> > and there are still machines around for which there is no 1.6 (my PPC
> > Mac running MacOS 10.4, for example), so it would be nice if
> > Waterfront could work with Java 1.5 as well.
>
> No I don't need Java6. My Eclipse is configured to be Java6-compliant
> so it generates


What ? You used Eclipse, and still wanted to get rid of it and of clojuredev
! How sad I am ... ;-)

I've taken a look at what you've done, wow !

How long did it take to realize that ? Were you working on it daily, or
nightly ?

Keep up the good work !

-- 
Laurent



>
> these @Overrides annotations automatically. I agree with your point.
> I'll get rid of those.
>
> Coming to think about it, I don't even need the Java code so much. It
> is just a few classes
> which realize some low-level UI stuff which seemed to be more natural
> in Java than in Clojure.
> I do want to translate them to Clojure at some point. This will solve
> this issue altogether.
>
> -Itay
>
> >
>

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



Re: Waterfront - The Clojure-based editor for Clojure

2009-02-26 Thread Itay Maman



On Feb 26, 2:02 pm, Konrad Hinsen  wrote:
> On Feb 26, 2009, at 12:30, Itay Maman wrote:
>
> > In Java6 @Override can also be attached to a method that overrides an
> > interface-declared method. So, the code is not supposed to compile w/
> > a Java5 compiler. As for the Java6 compiler, my guess is that your
> > compile is configured to be Java5 complaint. So I would suggest to
> > specify "-source 1.6" in the javac command line. Anyway, I will add it
> > to the build.xml file.
>
> Do you need Java 1.6 features? Clojure itself works fine with 1.5,  
> and there are still machines around for which there is no 1.6 (my PPC  
> Mac running MacOS 10.4, for example), so it would be nice if  
> Waterfront could work with Java 1.5 as well.

No I don't need Java6. My Eclipse is configured to be Java6-compliant
so it generates
these @Overrides annotations automatically. I agree with your point.
I'll get rid of those.

Coming to think about it, I don't even need the Java code so much. It
is just a few classes
which realize some low-level UI stuff which seemed to be more natural
in Java than in Clojure.
I do want to translate them to Clojure at some point. This will solve
this issue altogether.

-Itay

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



Re: Waterfront - The Clojure-based editor for Clojure

2009-02-26 Thread Timothy Pratley

super slick, I love it!
--~--~-~--~~~---~--~~
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
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
-~--~~~~--~~--~--~---



Re: Waterfront - The Clojure-based editor for Clojure

2009-02-26 Thread Konrad Hinsen

On Feb 26, 2009, at 12:30, Itay Maman wrote:

> In Java6 @Override can also be attached to a method that overrides an
> interface-declared method. So, the code is not supposed to compile w/
> a Java5 compiler. As for the Java6 compiler, my guess is that your
> compile is configured to be Java5 complaint. So I would suggest to
> specify "-source 1.6" in the javac command line. Anyway, I will add it
> to the build.xml file.

Do you need Java 1.6 features? Clojure itself works fine with 1.5,  
and there are still machines around for which there is no 1.6 (my PPC  
Mac running MacOS 10.4, for example), so it would be nice if  
Waterfront could work with Java 1.5 as well.

Konrad.


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



Re: Waterfront - The Clojure-based editor for Clojure

2009-02-26 Thread Itay Maman



On Feb 26, 3:02 am, "Stephen C. Gilardi"  wrote:
> On Feb 24, 2009, at 6:47 PM, Itay Maman wrote:
>
> > This version is fully functional and so far I didn't encounter any
> > bugs.
> > I guess that over the course of the next few days, as people start
> > using this version,
> > a few issues may come up. I'd be glad to fix these.
>
> > I also took Mike's suggestion, Waterfromt's main window is now using
> > a side-by-side layout.
>
> Hi Itay,
>
> Very nice work on waterfront! I gave it a try on Mac OS X. It worked  
> well and showcases many cool ideas.
>
> I had a couple of issues:
>
> - when building on Mac OS X with Java 6 64-bit or Java 5 32-bit, I got  
> errors like this one:
>
>      [javac] Compiling 1 source file to /sq/ext/waterfront/waterfront/
> bin
>      [javac] /sq/ext/waterfront/lab/src/net/sourceforge/waterfront/ide/
> services/Main.java:92: method does not override a method from its  
> superclass
>      [javac]     @Override
>      [javac]      ^
>      [javac] 1 error
>
> in every case where @Override was present in the waterfront source.

In Java6 @Override can also be attached to a method that overrides an
interface-declared method. So, the code is not supposed to compile w/
a Java5 compiler. As for the Java6 compiler, my guess is that your
compile is configured to be Java5 complaint. So I would suggest to
specify "-source 1.6" in the javac command line. Anyway, I will add it
to the build.xml file.


>
> I was able to build successfully by commenting all of them out.
>
> - When using waterfront on Mac OS X, it appears that the control  
> characters intended to trigger menu selections (e.g. ^E) are being  
> intercepted before they reach the menus. In the specific case of ^E,  
> it is being interpreted by the text input field as "move to end of  
> line" which is a common meaning for it in Mac OS X. I suspect there is  
> a way to trigger menu items using the "command-key" on the Mac (while  
> still using the control key on Windows) and people using waterfront on  
> Mac OS X would benefit from a change to using that mechanism.

Sure.

>
> Thanks very much for waterfront!


You're very welcome.
>
> --Steve
>
>  smime.p7s
> 3KViewDownload
--~--~-~--~~~---~--~~
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
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
-~--~~~~--~~--~--~---



Re: Waterfront - The Clojure-based editor for Clojure

2009-02-25 Thread Michael Wood

On Wed, Feb 25, 2009 at 8:27 PM, Mark Colburn  wrote:
>
> #!/bin/sh
> DP="${0%/*}"
> java -cp ~/src/clojure/clojure.jar:${DP}/clj:${DP}/java -
> Dnet.sourceforge.waterfront.plugins=${DP}/clj/net/sourceforge/
> waterfront/ide/plugins clojure.main ${DP}/clj/net/sourceforge/
> waterfront/ide/main.clj $*

You almost always want to use "$@" (including quotes) instead of $*.

See this thread for why:

http://groups.google.com/group/clojure/browse_thread/thread/769e5bf19e6636ea/a1b2a836ca229384?lnk=gst#a1b2a836ca229384

You'll also run into trouble if ${DP} contains spaces, unless you
quote those arguments too:

#!/bin/sh
DP="${0%/*}"
java -cp "~/src/clojure/clojure.jar:${DP}/clj:${DP}/java"
-Dnet.sourceforge.waterfront.plugins="${DP}/clj/net/sourceforge/waterfront/ide/plugins"
clojure.main "${DP}/clj/net/sourceforge/waterfront/ide/main.clj" "$@"

-- 
Michael Wood 

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



Re: Waterfront - The Clojure-based editor for Clojure

2009-02-25 Thread Onorio Catenacci

On Feb 25, 9:17 am, Itay Maman  wrote:
> For those of you who tried one of Waterfront's earlier revisions and
> then switched to revision 147 (latest):
>
> In 147 there was a change in the plugin loading order (due to plugin
> dependencies). If you ran earlier versions you will get the following
> message as Waterfront is launching:
>    Can't load plugin output-window.clj. Reason: nil
>    Can't load plugin eval-as-you-type.clj. Reason: nil
>
> Here's the fix: close all Waterfront windows. Go to the directory
> indicated by Java's user.home property (typically: c:\windows
> \documents and settings\ or your Unix/Linux home
> directory) and delete the file ".waterfront.config.clj".
>

I guess my eyes aren't as sharp as they used to be Itay :-) but if we
find a bug in Waterfront, is there a place on Sourceforge to let you
know about it?  I didn't see anything resembling a defect tracking
system under the Waterfront project.

--
Onorio Catenacci III
--~--~-~--~~~---~--~~
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
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
-~--~~~~--~~--~--~---



Re: Waterfront - The Clojure-based editor for Clojure

2009-02-25 Thread Stuart Sierra

On Feb 24, 6:47 pm, Itay Maman  wrote:
> After a few hours of intense work I managed to port Waterfront's code
> to Clojure's latest snapshot. This version is now available for
> download as "RC1-147" at the same location

Very impressive, Itay.  This strikes me as a good candidate for a
"Clojure in a Box" type of download, filling the role that IDLE does
for Python.  One could easily package Waterfront, Clojure core, and
contrib in a single JAR that runs with a simple "java -jar", to help
newcomers get started with the language quickly.  I can help with the
build files.

-Stuart Sierra
--~--~-~--~~~---~--~~
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
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
-~--~~~~--~~--~--~---



Re: Waterfront - The Clojure-based editor for Clojure

2009-02-25 Thread Stephen C. Gilardi


On Feb 24, 2009, at 6:47 PM, Itay Maman wrote:


This version is fully functional and so far I didn't encounter any
bugs.
I guess that over the course of the next few days, as people start
using this version,
a few issues may come up. I'd be glad to fix these.

I also took Mike's suggestion, Waterfromt's main window is now using
a side-by-side layout.



Hi Itay,

Very nice work on waterfront! I gave it a try on Mac OS X. It worked  
well and showcases many cool ideas.


I had a couple of issues:

- when building on Mac OS X with Java 6 64-bit or Java 5 32-bit, I got  
errors like this one:


[javac] Compiling 1 source file to /sq/ext/waterfront/waterfront/ 
bin
[javac] /sq/ext/waterfront/lab/src/net/sourceforge/waterfront/ide/ 
services/Main.java:92: method does not override a method from its  
superclass

[javac] @Override
[javac]  ^
[javac] 1 error

in every case where @Override was present in the waterfront source.

I was able to build successfully by commenting all of them out.

- When using waterfront on Mac OS X, it appears that the control  
characters intended to trigger menu selections (e.g. ^E) are being  
intercepted before they reach the menus. In the specific case of ^E,  
it is being interpreted by the text input field as "move to end of  
line" which is a common meaning for it in Mac OS X. I suspect there is  
a way to trigger menu items using the "command-key" on the Mac (while  
still using the control key on Windows) and people using waterfront on  
Mac OS X would benefit from a change to using that mechanism.


Thanks very much for waterfront!

--Steve



smime.p7s
Description: S/MIME cryptographic signature


Re: CLOJURE_HOME (was Re: Waterfront - The Clojure-based editor for Clojure)

2009-02-25 Thread Laurent PETIT
2009/2/26 Stephen C. Gilardi 

>
> On Feb 25, 2009, at 6:50 PM, Telman Yusupov wrote:
>
>  +1 on setting a sane CLASSPATH and not depending on other environment
>> variables.
>>
>> Then there is no need to specify a custom -cp for every Clojure/Java
>> program/script either...
>>
>
> The problem I see with using CLASSPATH this way is that it (potentially)
> affects the classpath for every JVM instance you launch, not just the ones
> associated with Clojure. It seems to me that it's desirable for there be a
> more focused way to express/maintain the concept of "When I deal with a
> Clojure REPL, these are the jars I want to be available to it."'
>

Just to make clear that I don't always disagree with you :-), I would say +1
on that.

Setting a global CLASSPATH, while useful, can lead to awkward bugs sometimes
...


>
> My most recent effort along those lines is at
> clojure-contrib/launchers/bash/clj-env-dir.
>
> --Steve
>
>  P.S. My very simple CLASSPATH setup detailed here:
>> http://yusupov.com/blog/2009/basic-clojure-setup-part-1/
>>
>
> Cool! Thanks for writing that up.
>
> --Steve
>
>

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



Re: CLOJURE_HOME (was Re: Waterfront - The Clojure-based editor for Clojure)

2009-02-25 Thread Stephen C. Gilardi


On Feb 25, 2009, at 6:50 PM, Telman Yusupov wrote:


+1 on setting a sane CLASSPATH and not depending on other environment
variables.

Then there is no need to specify a custom -cp for every Clojure/Java
program/script either...


The problem I see with using CLASSPATH this way is that it  
(potentially) affects the classpath for every JVM instance you launch,  
not just the ones associated with Clojure. It seems to me that it's  
desirable for there be a more focused way to express/maintain the  
concept of "When I deal with a Clojure REPL, these are the jars I want  
to be available to it."'


My most recent effort along those lines is at clojure-contrib/ 
launchers/bash/clj-env-dir.


--Steve


P.S. My very simple CLASSPATH setup detailed here:
http://yusupov.com/blog/2009/basic-clojure-setup-part-1/


Cool! Thanks for writing that up.

--Steve



smime.p7s
Description: S/MIME cryptographic signature


Re: CLOJURE_HOME (was Re: Waterfront - The Clojure-based editor for Clojure)

2009-02-25 Thread Telman Yusupov

+1 on setting a sane CLASSPATH and not depending on other environment
variables.

Then there is no need to specify a custom -cp for every Clojure/Java
program/script either...

Cheers,

Telman

P.S. My very simple CLASSPATH setup detailed here:
http://yusupov.com/blog/2009/basic-clojure-setup-part-1/


On Feb 25, 5:43 pm, Meikel Brandmeyer  wrote:
> Hi,
>
> Am 25.02.2009 um 23:39 schrieb Laurent PETIT:
>
> > No, please, don't mix projects directory hierarchies,
>
> +1
>
> Where is the problem to tell the people: "Set up a sane CLASSPATH
> containing the clojure.jar and clojure-contrib.jar you want!" and then
> just use that? Maybe there isn't even a "CLOJURE_HOME"? People
> don't need the source installed
>
> Sincerely
> Meikel
>
>  smime.p7s
> 5KViewDownload
--~--~-~--~~~---~--~~
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
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
-~--~~~~--~~--~--~---



Re: CLOJURE_HOME (was Re: Waterfront - The Clojure-based editor for Clojure)

2009-02-25 Thread Stephen C. Gilardi


On Feb 25, 2009, at 6:14 PM, Laurent PETIT wrote:

I've already answered to the external stuff in another message (and  
sorry for having been so crude, but I really think it's not a so  
good idea. In that particular case : clojure does not depend on  
clojure contrib. So clojure svn must not depend on clojure-contrib  
svn).


Thanks for the discussion. I understand your objections and in the  
face of them I estimate the probability of any of these changes being  
adopted to be 0. The status quo, where there is a complete separation  
of clojure and clojure-contrib, is in some ways (perhaps many ways)  
simpler than using a feature of svn to combine them. Simplicity is a  
high value and I'm sure it will win the day. I have no objection to  
that.


For my own education, I just re-read the documentation at red-bean and  
there is nothing mentioned there in the externals section about  
dependencies. What they talk about is keeping code that's logically  
part of one thing in separate repositories (or separate locations  
within one repository). That's exactly the case with clojure and  
clojure-contrib.


It seems to me that the dependency scenario you describe is one use of  
externals, but not necessarily the only one.


clojure-contrib is logically part of Clojure:

	- The contrib namespaces live in a namespace under the "clojure."  
umbrella.

- The licensing and contribution requirements are exactly the same.
- Code can (and has) flowed from clojure-contrib into clojure.

My understanding is that the primary reason contrib code was put in a  
separate svn repository is that doing so provides a clean way to have  
a few more committers for clojure-contrib than the one committer for  
clojure. Another benefit of having them separate (which would be  
preserved in a clojure/contrib setup) is that it's clear which parts  
of Clojure have Rich's full support and which parts don't.


This external mechanism in svn looks like it would allow all the  
benefits of keeping them separate while avoiding some of the minor  
annoyances that come with them being separate--like knowing where  
clojure is installed doesn't give you any info about where clojure- 
contrib is installed.


Concerning the https vs http problem, I haven't checked svn redbook  
recently (and I don't know exactly which svn version googlecode is  
running), but at some time in the past, it was tricky (if not  
impossible) to do edits and commits in an external.


Thanks for that info.

--Steve



smime.p7s
Description: S/MIME cryptographic signature


Re: Waterfront - The Clojure-based editor for Clojure

2009-02-25 Thread Jeff Rose

Stephen C. Gilardi wrote:
> 
> On Feb 25, 2009, at 1:27 PM, Mark Colburn wrote:
> 
>> #!/bin/sh
>> DP="${0%/*}"
>> java -cp ~/src/clojure/clojure.jar:${DP}/clj:${DP}/java -
>> Dnet.sourceforge.waterfront.plugins=${DP}/clj/net/sourceforge/
>> waterfront/ide/plugins clojure.main ${DP}/clj/net/sourceforge/
>> waterfront/ide/main.clj $*
> 
> I propose that we Clojure-using folks adopt CLOJURE_HOME as our 
> "standard" environment variable that can be used to find clojure.jar and 
> other interesting bits of Clojure. The proposed value of CLOJURE_HOME is 
> an absolute path to the top level of an svn checkout or binary 
> distribution of Clojure.
> 
> Scripts would use $CLOJURE_HOME/clojure.jar (or its equivalent on 
> Windows) as the path to the current environment's preferred clojure.jar.

What's wrong with just putting the jars in your CLASSPATH and not 
requiring anything explicit in scripts?  I just put all the jars I want 
to use with Clojure in a single directory, clojure/jars, and they get 
added automatically by my .bash_profile along with all the system 
installed jars:

CLJ=$PROJECTS/clojure
CLJ_DIR=$CLJ/jars
CLJ_JARS=$(find $CLJ_DIR -name "*.jar" -exec printf {}: \;)
SYS_DIR=/usr/share/java
SYS_JARS=$(find $SYS_DIR -name "*.jar" -exec printf {}: \;)
export CLASSPATH=$CLJ_LIBS:$HOME/sw/java:$SYS_JARS:$CLJ_JARS:.

Seems to work pretty well.

-Jeff

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



Re: CLOJURE_HOME (was Re: Waterfront - The Clojure-based editor for Clojure)

2009-02-25 Thread Laurent PETIT
I've already answered to the external stuff in another message (and sorry
for having been so crude, but I really think it's not a so good idea. In
that particular case : clojure does not depend on clojure contrib. So
clojure svn must not depend on clojure-contrib svn).

Concerning the https vs http problem, I haven't checked svn redbook recently
(and I don't know exactly which svn version googlecode is running), but at
some time in the past, it was tricky (if not impossible) to do edits and
commits in an external.

-- 
Laurent

2009/2/26 Stephen C. Gilardi 

>
> On Feb 25, 2009, at 5:51 PM, Achim Passen wrote:
>
>  Another way to do this is to add contrib as an svn external:
>> http://svnbook.red-bean.com/en/1.0/ch07s03.html
>> Set up like this, an "svn update" in the root directory would update both
>> projects.
>>
>
> Very cool. I saw this kind of thing in action for the first time yesterday
> when checking out Clozure Common Lisp via svn. I had no idea how they did
> that.
>
> I just tried it with clojure and clojure-contrib and it worked very
> smoothly. One potential glitch is that the external reference for contrib
> would presumably be:
>
>contrib http://clojure-contrib.googlecode.com/svn/trunk/
>
> However, for a member of clojure-contrib, the correct entry would be:
>
>contrib https://clojure-contrib.googlecode.com/svn/trunk/
>
> (https vs. http)
>
> Have the svn folks come up with a neat solution for that case or would a
> clojure-contrib member simply propedit his local clojure svn checkout to
> give the correct URL for him?
>
> Thanks for the pointer to the info about external!
>
> --Steve
>
>

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



Re: CLOJURE_HOME (was Re: Waterfront - The Clojure-based editor for Clojure)

2009-02-25 Thread Laurent PETIT
2009/2/25 Achim Passen 

> Hi!Am 25.02.2009 um 23:14 schrieb Stephen C. Gilardi:
>
> (If this flies, at some point it would be good to add "contrib" to the
> svn-ignore list for Clojure's top level directory so it wouldn't even show
> up as an untracked node.)
>
>
> Another way to do this is to add contrib as an svn external:
> http://svnbook.red-bean.com/en/1.0/ch07s03.html
> Set up like this, an "svn update" in the root directory would update both
> projects.
>

Again, please, nothing like that.
An external is a way to set a dependency from the project that uses the
external to the project the external refers to.

I think clojure (core) should not depend on clojure-contrib. If so, then
they really should be the same project.

Externals should be used with care, e.g. you have to consider if you want to
depend on the current head of the other project, or on a particular
revision.
If you use the "always depend on the most recent (head) revision of the
other project", when you make a "tag" (either explicitly by copying in a new
directory in the tags directory, either implicitly by giving others a rev
number), you will have to remember to first "freeze" the external to a
particular revision before committing your "tag" revision (and you will then
just commit another revision just after that to re-enable the external to
point at the head of the other project).

So it is error prone, and, in the case of clojure having an external on
clojure-contrib, I think it would be the opposite of the dependency graph.

Turned in the other side, if you want to be consistent concerning
clojure-contrib development, you could use an external in the
clojure-contrib project, pointing at a particular revision of clojure.
But really, this would be interesting in maintenance mode, but not really
now. And it is complex and error prone.

My 0,02€ again,

-- 
Laurent



>
> Kind regards,
> achim
>
> >
>

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



Re: CLOJURE_HOME (was Re: Waterfront - The Clojure-based editor for Clojure)

2009-02-25 Thread Stephen C. Gilardi


On Feb 25, 2009, at 5:51 PM, Achim Passen wrote:


Another way to do this is to add contrib as an svn external: 
http://svnbook.red-bean.com/en/1.0/ch07s03.html
Set up like this, an "svn update" in the root directory would update  
both projects.


Very cool. I saw this kind of thing in action for the first time  
yesterday when checking out Clozure Common Lisp via svn. I had no idea  
how they did that.


I just tried it with clojure and clojure-contrib and it worked very  
smoothly. One potential glitch is that the external reference for  
contrib would presumably be:


contrib http://clojure-contrib.googlecode.com/svn/trunk/

However, for a member of clojure-contrib, the correct entry would be:

contrib https://clojure-contrib.googlecode.com/svn/trunk/

(https vs. http)

Have the svn folks come up with a neat solution for that case or would  
a clojure-contrib member simply propedit his local clojure svn  
checkout to give the correct URL for him?


Thanks for the pointer to the info about external!

--Steve



smime.p7s
Description: S/MIME cryptographic signature


Re: CLOJURE_HOME (was Re: Waterfront - The Clojure-based editor for Clojure)

2009-02-25 Thread Achim Passen
Hi!

Am 25.02.2009 um 23:14 schrieb Stephen C. Gilardi:

> (If this flies, at some point it would be good to add "contrib" to  
> the svn-ignore list for Clojure's top level directory so it wouldn't  
> even show up as an untracked node.)

Another way to do this is to add contrib as an svn external: 
http://svnbook.red-bean.com/en/1.0/ch07s03.html
Set up like this, an "svn update" in the root directory would update  
both projects.

Kind regards,
achim
--~--~-~--~~~---~--~~
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
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
-~--~~~~--~~--~--~---



Re: CLOJURE_HOME (was Re: Waterfront - The Clojure-based editor for Clojure)

2009-02-25 Thread Meikel Brandmeyer

Hi,

Am 25.02.2009 um 23:39 schrieb Laurent PETIT:


No, please, don't mix projects directory hierarchies,


+1

Where is the problem to tell the people: "Set up a sane CLASSPATH
containing the clojure.jar and clojure-contrib.jar you want!" and then
just use that? Maybe there isn't even a "CLOJURE_HOME"? People
don't need the source installed

Sincerely
Meikel



smime.p7s
Description: S/MIME cryptographic signature


Re: CLOJURE_HOME (was Re: Waterfront - The Clojure-based editor for Clojure)

2009-02-25 Thread Laurent PETIT
No, please, don't mix projects directory hierarchies,

Since clojure-contrib has such a great visibility that it's almost
impossible to depend on a lib and not to depend on clojure-contrib also, I
would stick to something simple, and say that the env variable for
clojure-contrib home should be CLOJURE_CONTRIB_HOME.

My 0,02€,

-- 
Laurent

2009/2/25 Stephen C. Gilardi 

>
> On Feb 25, 2009, at 4:52 PM, Phil Hagelberg wrote:
>
>  I like the idea, but does this imply that clojure-contrib.jar should be
>> in the same directory? Or should it look in
>> $CLOJURE_HOME/../clojure-contrib/clojure-contrib.jar.
>>
>
> That would work in my setup, but it seems clumsy. Perhaps Rich would
> consider blessing a standard location for contrib within the Clojure top
> level directory. I just tried that locally and it seems to work fine with
> svn--no interference between clojure, an svn checkout directory for clojure
> and clojure/contrib, a separate svn checkout directory for clojure-contrib.
>
> I think:
>
>$CLOJURE_HOME/contrib
>
> would be a good standard location for clojure-contrib and if that becomes
> common practice, then the contrib jar will be at:
>
>$CLOJURE_HOME/contrib/clojure-contrib.jar
>
> (If this flies, at some point it would be good to add "contrib" to the
> svn-ignore list for Clojure's top level directory so it wouldn't even show
> up as an untracked node.)
>
>  Can I also suggest that if CLOJURE_HOME isn't set that it defaults to
>> $HOME/src/clojure? This is what clojure-mode.el's M-x clojure-install
>> uses, and folks seem to find that useful.
>>
>
>
> That seems like a great default. I like it.
>
> --Steve
>
>

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



CLOJURE_HOME (was Re: Waterfront - The Clojure-based editor for Clojure)

2009-02-25 Thread Stephen C. Gilardi


On Feb 25, 2009, at 4:52 PM, Phil Hagelberg wrote:

I like the idea, but does this imply that clojure-contrib.jar should  
be

in the same directory? Or should it look in
$CLOJURE_HOME/../clojure-contrib/clojure-contrib.jar.


That would work in my setup, but it seems clumsy. Perhaps Rich would  
consider blessing a standard location for contrib within the Clojure  
top level directory. I just tried that locally and it seems to work  
fine with svn--no interference between clojure, an svn checkout  
directory for clojure and clojure/contrib, a separate svn checkout  
directory for clojure-contrib.


I think:

$CLOJURE_HOME/contrib

would be a good standard location for clojure-contrib and if that  
becomes common practice, then the contrib jar will be at:


$CLOJURE_HOME/contrib/clojure-contrib.jar

(If this flies, at some point it would be good to add "contrib" to the  
svn-ignore list for Clojure's top level directory so it wouldn't even  
show up as an untracked node.)



Can I also suggest that if CLOJURE_HOME isn't set that it defaults to
$HOME/src/clojure? This is what clojure-mode.el's M-x clojure-install
uses, and folks seem to find that useful.



That seems like a great default. I like it.

--Steve



smime.p7s
Description: S/MIME cryptographic signature


Re: Waterfront - The Clojure-based editor for Clojure

2009-02-25 Thread Phil Hagelberg

"Stephen C. Gilardi"  writes:

> I propose that we Clojure-using folks adopt CLOJURE_HOME as our
> "standard" environment variable that can be used to find clojure.jar
> and other interesting bits of Clojure. The proposed value of
> CLOJURE_HOME is an absolute path to the top level of an svn checkout
> or binary distribution of Clojure.

I like the idea, but does this imply that clojure-contrib.jar should be
in the same directory? Or should it look in
$CLOJURE_HOME/../clojure-contrib/clojure-contrib.jar.

Can I also suggest that if CLOJURE_HOME isn't set that it defaults to
$HOME/src/clojure? This is what clojure-mode.el's M-x clojure-install
uses, and folks seem to find that useful.

-Phil

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



Re: Waterfront - The Clojure-based editor for Clojure

2009-02-25 Thread Mark Volkmann

On Wed, Feb 25, 2009 at 2:47 PM, Stephen C. Gilardi  wrote:
>
> On Feb 25, 2009, at 1:27 PM, Mark Colburn wrote:
>
>> #!/bin/sh
>> DP="${0%/*}"
>> java -cp ~/src/clojure/clojure.jar:${DP}/clj:${DP}/java -
>> Dnet.sourceforge.waterfront.plugins=${DP}/clj/net/sourceforge/
>> waterfront/ide/plugins clojure.main ${DP}/clj/net/sourceforge/
>> waterfront/ide/main.clj $*
>
> I propose that we Clojure-using folks adopt CLOJURE_HOME as our "standard"
> environment variable that can be used to find clojure.jar and other
> interesting bits of Clojure. The proposed value of CLOJURE_HOME is an
> absolute path to the top level of an svn checkout or binary distribution of
> Clojure.
>
> Scripts would use $CLOJURE_HOME/clojure.jar (or its equivalent on Windows)
> as the path to the current environment's preferred clojure.jar.
>
> The script above would become:
>
>> #!/bin/sh
>> DP="${0%/*}"
>> java -cp $CLOJURE_HOME/clojure.jar:${DP}/clj:${DP}/java -
>> Dnet.sourceforge.waterfront.plugins=${DP}/clj/net/sourceforge/
>> waterfront/ide/plugins clojure.main ${DP}/clj/net/sourceforge/
>> waterfront/ide/main.clj $*

I already use that so it would be fine with me!

-- 
R. Mark Volkmann
Object Computing, Inc.

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



Re: Waterfront - The Clojure-based editor for Clojure

2009-02-25 Thread Dave Griffith

There is a small but particularly nasty corner of the third circle of
Hell reserved for people who mandate environment variables.  Don't go
there.


On Feb 25, 3:47 pm, "Stephen C. Gilardi"  wrote:
> On Feb 25, 2009, at 1:27 PM, Mark Colburn wrote:
>
> > #!/bin/sh
> > DP="${0%/*}"
> > java -cp ~/src/clojure/clojure.jar:${DP}/clj:${DP}/java -
> > Dnet.sourceforge.waterfront.plugins=${DP}/clj/net/sourceforge/
> > waterfront/ide/plugins clojure.main ${DP}/clj/net/sourceforge/
> > waterfront/ide/main.clj $*
>
> I propose that we Clojure-using folks adopt CLOJURE_HOME as our
> "standard" environment variable that can be used to find clojure.jar
> and other interesting bits of Clojure. The proposed value of
> CLOJURE_HOME is an absolute path to the top level of an svn checkout
> or binary distribution of Clojure.
>
> Scripts would use $CLOJURE_HOME/clojure.jar (or its equivalent on
> Windows) as the path to the current environment's preferred clojure.jar.
>
> The script above would become:
>
> > #!/bin/sh
> > DP="${0%/*}"
> > java -cp $CLOJURE_HOME/clojure.jar:${DP}/clj:${DP}/java -
> > Dnet.sourceforge.waterfront.plugins=${DP}/clj/net/sourceforge/
> > waterfront/ide/plugins clojure.main ${DP}/clj/net/sourceforge/
> > waterfront/ide/main.clj $*
>
> --Steve
>
>  smime.p7s
> 3KViewDownload
--~--~-~--~~~---~--~~
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
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
-~--~~~~--~~--~--~---



Re: Waterfront - The Clojure-based editor for Clojure

2009-02-25 Thread Stephen C. Gilardi


On Feb 25, 2009, at 1:27 PM, Mark Colburn wrote:


#!/bin/sh
DP="${0%/*}"
java -cp ~/src/clojure/clojure.jar:${DP}/clj:${DP}/java -
Dnet.sourceforge.waterfront.plugins=${DP}/clj/net/sourceforge/
waterfront/ide/plugins clojure.main ${DP}/clj/net/sourceforge/
waterfront/ide/main.clj $*


I propose that we Clojure-using folks adopt CLOJURE_HOME as our  
"standard" environment variable that can be used to find clojure.jar  
and other interesting bits of Clojure. The proposed value of  
CLOJURE_HOME is an absolute path to the top level of an svn checkout  
or binary distribution of Clojure.


Scripts would use $CLOJURE_HOME/clojure.jar (or its equivalent on  
Windows) as the path to the current environment's preferred clojure.jar.


The script above would become:


#!/bin/sh
DP="${0%/*}"
java -cp $CLOJURE_HOME/clojure.jar:${DP}/clj:${DP}/java -
Dnet.sourceforge.waterfront.plugins=${DP}/clj/net/sourceforge/
waterfront/ide/plugins clojure.main ${DP}/clj/net/sourceforge/
waterfront/ide/main.clj $*




--Steve



smime.p7s
Description: S/MIME cryptographic signature


Re: Waterfront - The Clojure-based editor for Clojure

2009-02-25 Thread Mark Colburn

#!/bin/sh
DP="${0%/*}"
java -cp ~/src/clojure/clojure.jar:${DP}/clj:${DP}/java -
Dnet.sourceforge.waterfront.plugins=${DP}/clj/net/sourceforge/
waterfront/ide/plugins clojure.main ${DP}/clj/net/sourceforge/
waterfront/ide/main.clj $*


On Feb 25, 1:32 am, Itay Maman  wrote:
> On Feb 25, 11:08 am, bOR_  wrote:
>
> > I'm trying to rewrite the wf.bat to a linux version, but I was a bit
> > puzzled what all the ;%~dp0 's mean.
>
> In .bat files %~dp0 specifies the directory where the .bat file is
> located.
> In sh scripts, it should be `dirname $0`.
>
> >Apparently the bash version of it
> > is ${0%/*}
>
> > java -cp ~/src/clojure/clojure.jar;${0%/*}clj;${0%/*}java -
> > Dnet.sourceforge.waterfront.plugins=${0%/*}clj/net/sourceforge/
> > waterfront/ide/plugins clojure.main ${0%/*}clj/net/sourceforge/
> > waterfront/ide/main.clj %*
>
> > It seems like you're also assuming 'clj' to exist?
>
> clj and java are the subdirectories in the Waterfront installation
> directory. So if the zip was unzipped
> successfully, it is safe to assume they exist.
>
> I don't have a Linux machine. Could you send me this script (one it is
> up and running)
> so that I will put it inside the .zip file?
>
> Thanks,
> -Itay
>
>
>
> > On Feb 25, 2:57 am, Kevin Albrecht  wrote:
>
> > > Itay,
>
> > > I took a look at Waterfront and it seems to have a lot of potential.
> > > Keep me and the group updated on your future work.
>
> > > I have also been working on a GUI application in Clojure and I share
> > > your perspective on the challenges of designing a functional GUI.  I
> > > am definitely intrigued by the application context pattern and I am
> > > going to take a look at it for incorporation in my design.
>
> > > Thanks,
> > > Kevin Albrecht
>
> > > On Feb 24, 6:04 am, Itay Maman  wrote:
>
> > > > I've been silently following Clojure (and this group) for several
> > > > months now.Somewhere around December I started working on a Clojure
> > > > editor/REPL written in Clojure. This effort evolved into the
> > > > Waterfront project which is now available on sourceforge (http://
> > > > sourceforge.net/project/showfiles.php?group_id=249246).
>
> > > > Waterfront's Highlights:
>
> > > > * CTRL+E: Eval current selection, or the whole file if the selection
> > > > is empty
> > > > * Edit -> Eval as you type: When turned on (default) periodically
> > > > evaluates your code. Boosts productivity as many errors are detected
> > > > on the spot.
> > > > * Eval-ed code can inspect/mutate Waterfront by accessing the *app*
> > > > variable. For instance, if you eval this expression,
> > > > ((*app* :change) :font-name "Arial"), you will choose "Arial" as the
> > > > UI font.
> > > > * Eval-ed code can inspect the currently edited Clojure program. For
> > > > instance, if you eval this expression, ((*app* :visit) #(when (= (str
> > > > (first %1)) "cons") (println %1))), the output window will show all
> > > > calls, made by your code, to the cons function.
> > > > * Syntax and Evaluation errors are displayed on: (1) The Problems
> > > > window; (2) The line-number panel, as red markers.
> > > > * Source -> Generate -> Proxy: Generates a proxy for the given list of
> > > > super-types, with stub implementations for all abstract methods.
> > > > * F1: Shows the doc (as per Clojure's (doc x) function) of the
> > > > identifier under the caret.
> > > > * Source -> Reflect: Shows the synopsis of a Java class when the caret
> > > > stands on a class symbol (e.g.: java.awt.Color).
> > > > * CTRL+Space: Token-based auto completion.
> > > > * Full parenthesis matching.
> > > > * An extensible plugin architecture.
> > > > * Other goodies such as undo/redo, toggle comment, recently opened
> > > > files, indent/unindent, Tab is *always* two spaces, ...
>
> > > > In order to get started, you need to
> > > >   (1) Download the waterfront zip file 
> > > > from:http://sourceforge.net/project/showfiles.php?group_id=249246.
> > > >   (2) Unpack it into a local directory.
> > > >   (3) Edit wf.bat: fix the path to clojure.jar according to its
> > > > location on your machine.
>
> > > > Personally, this effort was quite interesting. Writing GUI
> > > > applications in a functional language is sometimes a challenging task
> > > > (at least if you want your Clojure code not to be a transliteration of
> > > > Java code…).  I used a pattern the "application context" pattern: an
> > > > immutable map describing the application's current state that is
> > > > passed around. This made it possible for most of Waterfront's code to
> > > > be purely functional. Consequently, plugins can accomplish a lot with
> > > > just a handful of lines. Many plugins span about 60 lines of code.
> > > > Vast majority of them are less than 200 LOC. The main module, ui.clj,
> > > > that implements the underlying engine is also less than 200 LOC. I
> > > > think this is a very good indication to Clojure's power.
>
> > > > Hope you'll find it useful. I'd be happy if anyone would like to jo

Re: Waterfront - The Clojure-based editor for Clojure

2009-02-25 Thread Itay Maman

For those of you who tried one of Waterfront's earlier revisions and
then switched to revision 147 (latest):

In 147 there was a change in the plugin loading order (due to plugin
dependencies). If you ran earlier versions you will get the following
message as Waterfront is launching:
   Can't load plugin output-window.clj. Reason: nil
   Can't load plugin eval-as-you-type.clj. Reason: nil

Here's the fix: close all Waterfront windows. Go to the directory
indicated by Java's user.home property (typically: c:\windows
\documents and settings\ or your Unix/Linux home
directory) and delete the file ".waterfront.config.clj".

-Itay


On Feb 25, 3:49 pm, Jeffrey Straszheim 
wrote:
> Count me interested also.
>
> On Wed, Feb 25, 2009 at 7:49 AM, Itay Maman  wrote:
>
> > On Feb 25, 11:48 am, linh  wrote:
> > > where can i read about "application context" pattern?
> > It is something I had occasionally used in the past. As I started
> > working on Waterfront, I realized it is well suited for GUI apps in
> > a functional language. I am not sure where you can find information
> > about
> > it, it is just something that was sitting there in my head.
>
> > Anyway, I plan to write a more detailed description of this pattern
> > as it addresses a concrete need of Clojure developers. Hope to get
> > to that within the next few days.
>
> > -Itay
>
> > > i this the idiomatic way to write GUI in functional languages?
> > > i'm writing a small swing based app in clojure, and i have problems
> > > wirting the gui, because the gui code tends to be very imperative and
> > > messy.
>
> > > On 24 Feb, 15:04, Itay Maman  wrote:
>
> > > > I've been silently following Clojure (and this group) for several
> > > > months now.Somewhere around December I started working on a Clojure
> > > > editor/REPL written in Clojure. This effort evolved into the
> > > > Waterfront project which is now available on sourceforge (http://
> > > > sourceforge.net/project/showfiles.php?group_id=249246).
>
> > > > Waterfront's Highlights:
>
> > > > * CTRL+E: Eval current selection, or the whole file if the selection
> > > > is empty
> > > > * Edit -> Eval as you type: When turned on (default) periodically
> > > > evaluates your code. Boosts productivity as many errors are detected
> > > > on the spot.
> > > > * Eval-ed code can inspect/mutate Waterfront by accessing the *app*
> > > > variable. For instance, if you eval this expression,
> > > > ((*app* :change) :font-name "Arial"), you will choose "Arial" as the
> > > > UI font.
> > > > * Eval-ed code can inspect the currently edited Clojure program. For
> > > > instance, if you eval this expression, ((*app* :visit) #(when (= (str
> > > > (first %1)) "cons") (println %1))), the output window will show all
> > > > calls, made by your code, to the cons function.
> > > > * Syntax and Evaluation errors are displayed on: (1) The Problems
> > > > window; (2) The line-number panel, as red markers.
> > > > * Source -> Generate -> Proxy: Generates a proxy for the given list of
> > > > super-types, with stub implementations for all abstract methods.
> > > > * F1: Shows the doc (as per Clojure's (doc x) function) of the
> > > > identifier under the caret.
> > > > * Source -> Reflect: Shows the synopsis of a Java class when the caret
> > > > stands on a class symbol (e.g.: java.awt.Color).
> > > > * CTRL+Space: Token-based auto completion.
> > > > * Full parenthesis matching.
> > > > * An extensible plugin architecture.
> > > > * Other goodies such as undo/redo, toggle comment, recently opened
> > > > files, indent/unindent, Tab is *always* two spaces, ...
>
> > > > In order to get started, you need to
> > > >   (1) Download the waterfront zip file from:
> >http://sourceforge.net/project/showfiles.php?group_id=249246.
> > > >   (2) Unpack it into a local directory.
> > > >   (3) Edit wf.bat: fix the path to clojure.jar according to its
> > > > location on your machine.
>
> > > > Personally, this effort was quite interesting. Writing GUI
> > > > applications in a functional language is sometimes a challenging task
> > > > (at least if you want your Clojure code not to be a transliteration of
> > > > Java code…).  I used a pattern the "application context" pattern: an
> > > > immutable map describing the application's current state that is
> > > > passed around. This made it possible for most of Waterfront's code to
> > > > be purely functional. Consequently, plugins can accomplish a lot with
> > > > just a handful of lines. Many plugins span about 60 lines of code.
> > > > Vast majority of them are less than 200 LOC. The main module, ui.clj,
> > > > that implements the underlying engine is also less than 200 LOC. I
> > > > think this is a very good indication to Clojure's power.
>
> > > > Hope you'll find it useful. I'd be happy if anyone would like to join
> > > > and contribute to Waterfront. Your feedback, either on-line or
> > > > offline, will be highly appreciated.
>
> > > > --
> > > > Itay Mamanhttp://javadots.bl

Re: Waterfront - The Clojure-based editor for Clojure

2009-02-25 Thread Jeffrey Straszheim
Count me interested also.

On Wed, Feb 25, 2009 at 7:49 AM, Itay Maman  wrote:

>
>
>
> On Feb 25, 11:48 am, linh  wrote:
> > where can i read about "application context" pattern?
> It is something I had occasionally used in the past. As I started
> working on Waterfront, I realized it is well suited for GUI apps in
> a functional language. I am not sure where you can find information
> about
> it, it is just something that was sitting there in my head.
>
> Anyway, I plan to write a more detailed description of this pattern
> as it addresses a concrete need of Clojure developers. Hope to get
> to that within the next few days.
>
> -Itay
>
>
> > i this the idiomatic way to write GUI in functional languages?
> > i'm writing a small swing based app in clojure, and i have problems
> > wirting the gui, because the gui code tends to be very imperative and
> > messy.
> >
> > On 24 Feb, 15:04, Itay Maman  wrote:
> >
> > > I've been silently following Clojure (and this group) for several
> > > months now.Somewhere around December I started working on a Clojure
> > > editor/REPL written in Clojure. This effort evolved into the
> > > Waterfront project which is now available on sourceforge (http://
> > > sourceforge.net/project/showfiles.php?group_id=249246).
> >
> > > Waterfront's Highlights:
> >
> > > * CTRL+E: Eval current selection, or the whole file if the selection
> > > is empty
> > > * Edit -> Eval as you type: When turned on (default) periodically
> > > evaluates your code. Boosts productivity as many errors are detected
> > > on the spot.
> > > * Eval-ed code can inspect/mutate Waterfront by accessing the *app*
> > > variable. For instance, if you eval this expression,
> > > ((*app* :change) :font-name "Arial"), you will choose "Arial" as the
> > > UI font.
> > > * Eval-ed code can inspect the currently edited Clojure program. For
> > > instance, if you eval this expression, ((*app* :visit) #(when (= (str
> > > (first %1)) "cons") (println %1))), the output window will show all
> > > calls, made by your code, to the cons function.
> > > * Syntax and Evaluation errors are displayed on: (1) The Problems
> > > window; (2) The line-number panel, as red markers.
> > > * Source -> Generate -> Proxy: Generates a proxy for the given list of
> > > super-types, with stub implementations for all abstract methods.
> > > * F1: Shows the doc (as per Clojure's (doc x) function) of the
> > > identifier under the caret.
> > > * Source -> Reflect: Shows the synopsis of a Java class when the caret
> > > stands on a class symbol (e.g.: java.awt.Color).
> > > * CTRL+Space: Token-based auto completion.
> > > * Full parenthesis matching.
> > > * An extensible plugin architecture.
> > > * Other goodies such as undo/redo, toggle comment, recently opened
> > > files, indent/unindent, Tab is *always* two spaces, ...
> >
> > > In order to get started, you need to
> > >   (1) Download the waterfront zip file from:
> http://sourceforge.net/project/showfiles.php?group_id=249246.
> > >   (2) Unpack it into a local directory.
> > >   (3) Edit wf.bat: fix the path to clojure.jar according to its
> > > location on your machine.
> >
> > > Personally, this effort was quite interesting. Writing GUI
> > > applications in a functional language is sometimes a challenging task
> > > (at least if you want your Clojure code not to be a transliteration of
> > > Java code…).  I used a pattern the "application context" pattern: an
> > > immutable map describing the application's current state that is
> > > passed around. This made it possible for most of Waterfront's code to
> > > be purely functional. Consequently, plugins can accomplish a lot with
> > > just a handful of lines. Many plugins span about 60 lines of code.
> > > Vast majority of them are less than 200 LOC. The main module, ui.clj,
> > > that implements the underlying engine is also less than 200 LOC. I
> > > think this is a very good indication to Clojure's power.
> >
> > > Hope you'll find it useful. I'd be happy if anyone would like to join
> > > and contribute to Waterfront. Your feedback, either on-line or
> > > offline, will be highly appreciated.
> >
> > > --
> > > Itay Mamanhttp://javadots.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
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
-~--~~~~--~~--~--~---



Re: Waterfront - The Clojure-based editor for Clojure

2009-02-25 Thread Itay Maman



On Feb 25, 11:48 am, linh  wrote:
> where can i read about "application context" pattern?
It is something I had occasionally used in the past. As I started
working on Waterfront, I realized it is well suited for GUI apps in
a functional language. I am not sure where you can find information
about
it, it is just something that was sitting there in my head.

Anyway, I plan to write a more detailed description of this pattern
as it addresses a concrete need of Clojure developers. Hope to get
to that within the next few days.

-Itay


> i this the idiomatic way to write GUI in functional languages?
> i'm writing a small swing based app in clojure, and i have problems
> wirting the gui, because the gui code tends to be very imperative and
> messy.
>
> On 24 Feb, 15:04, Itay Maman  wrote:
>
> > I've been silently following Clojure (and this group) for several
> > months now.Somewhere around December I started working on a Clojure
> > editor/REPL written in Clojure. This effort evolved into the
> > Waterfront project which is now available on sourceforge (http://
> > sourceforge.net/project/showfiles.php?group_id=249246).
>
> > Waterfront's Highlights:
>
> > * CTRL+E: Eval current selection, or the whole file if the selection
> > is empty
> > * Edit -> Eval as you type: When turned on (default) periodically
> > evaluates your code. Boosts productivity as many errors are detected
> > on the spot.
> > * Eval-ed code can inspect/mutate Waterfront by accessing the *app*
> > variable. For instance, if you eval this expression,
> > ((*app* :change) :font-name "Arial"), you will choose "Arial" as the
> > UI font.
> > * Eval-ed code can inspect the currently edited Clojure program. For
> > instance, if you eval this expression, ((*app* :visit) #(when (= (str
> > (first %1)) "cons") (println %1))), the output window will show all
> > calls, made by your code, to the cons function.
> > * Syntax and Evaluation errors are displayed on: (1) The Problems
> > window; (2) The line-number panel, as red markers.
> > * Source -> Generate -> Proxy: Generates a proxy for the given list of
> > super-types, with stub implementations for all abstract methods.
> > * F1: Shows the doc (as per Clojure's (doc x) function) of the
> > identifier under the caret.
> > * Source -> Reflect: Shows the synopsis of a Java class when the caret
> > stands on a class symbol (e.g.: java.awt.Color).
> > * CTRL+Space: Token-based auto completion.
> > * Full parenthesis matching.
> > * An extensible plugin architecture.
> > * Other goodies such as undo/redo, toggle comment, recently opened
> > files, indent/unindent, Tab is *always* two spaces, ...
>
> > In order to get started, you need to
> >   (1) Download the waterfront zip file 
> > from:http://sourceforge.net/project/showfiles.php?group_id=249246.
> >   (2) Unpack it into a local directory.
> >   (3) Edit wf.bat: fix the path to clojure.jar according to its
> > location on your machine.
>
> > Personally, this effort was quite interesting. Writing GUI
> > applications in a functional language is sometimes a challenging task
> > (at least if you want your Clojure code not to be a transliteration of
> > Java code…).  I used a pattern the "application context" pattern: an
> > immutable map describing the application's current state that is
> > passed around. This made it possible for most of Waterfront's code to
> > be purely functional. Consequently, plugins can accomplish a lot with
> > just a handful of lines. Many plugins span about 60 lines of code.
> > Vast majority of them are less than 200 LOC. The main module, ui.clj,
> > that implements the underlying engine is also less than 200 LOC. I
> > think this is a very good indication to Clojure's power.
>
> > Hope you'll find it useful. I'd be happy if anyone would like to join
> > and contribute to Waterfront. Your feedback, either on-line or
> > offline, will be highly appreciated.
>
> > --
> > Itay Mamanhttp://javadots.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
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
-~--~~~~--~~--~--~---



Re: Waterfront - The Clojure-based editor for Clojure

2009-02-25 Thread linh

where can i read about "application context" pattern?
i this the idiomatic way to write GUI in functional languages?
i'm writing a small swing based app in clojure, and i have problems
wirting the gui, because the gui code tends to be very imperative and
messy.

On 24 Feb, 15:04, Itay Maman  wrote:
> I've been silently following Clojure (and this group) for several
> months now.Somewhere around December I started working on a Clojure
> editor/REPL written in Clojure. This effort evolved into the
> Waterfront project which is now available on sourceforge (http://
> sourceforge.net/project/showfiles.php?group_id=249246).
>
> Waterfront's Highlights:
>
> * CTRL+E: Eval current selection, or the whole file if the selection
> is empty
> * Edit -> Eval as you type: When turned on (default) periodically
> evaluates your code. Boosts productivity as many errors are detected
> on the spot.
> * Eval-ed code can inspect/mutate Waterfront by accessing the *app*
> variable. For instance, if you eval this expression,
> ((*app* :change) :font-name "Arial"), you will choose "Arial" as the
> UI font.
> * Eval-ed code can inspect the currently edited Clojure program. For
> instance, if you eval this expression, ((*app* :visit) #(when (= (str
> (first %1)) "cons") (println %1))), the output window will show all
> calls, made by your code, to the cons function.
> * Syntax and Evaluation errors are displayed on: (1) The Problems
> window; (2) The line-number panel, as red markers.
> * Source -> Generate -> Proxy: Generates a proxy for the given list of
> super-types, with stub implementations for all abstract methods.
> * F1: Shows the doc (as per Clojure's (doc x) function) of the
> identifier under the caret.
> * Source -> Reflect: Shows the synopsis of a Java class when the caret
> stands on a class symbol (e.g.: java.awt.Color).
> * CTRL+Space: Token-based auto completion.
> * Full parenthesis matching.
> * An extensible plugin architecture.
> * Other goodies such as undo/redo, toggle comment, recently opened
> files, indent/unindent, Tab is *always* two spaces, ...
>
> In order to get started, you need to
>   (1) Download the waterfront zip file 
> from:http://sourceforge.net/project/showfiles.php?group_id=249246.
>   (2) Unpack it into a local directory.
>   (3) Edit wf.bat: fix the path to clojure.jar according to its
> location on your machine.
>
> Personally, this effort was quite interesting. Writing GUI
> applications in a functional language is sometimes a challenging task
> (at least if you want your Clojure code not to be a transliteration of
> Java code…).  I used a pattern the "application context" pattern: an
> immutable map describing the application's current state that is
> passed around. This made it possible for most of Waterfront's code to
> be purely functional. Consequently, plugins can accomplish a lot with
> just a handful of lines. Many plugins span about 60 lines of code.
> Vast majority of them are less than 200 LOC. The main module, ui.clj,
> that implements the underlying engine is also less than 200 LOC. I
> think this is a very good indication to Clojure's power.
>
> Hope you'll find it useful. I'd be happy if anyone would like to join
> and contribute to Waterfront. Your feedback, either on-line or
> offline, will be highly appreciated.
>
> --
> Itay Mamanhttp://javadots.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
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
-~--~~~~--~~--~--~---



Re: Waterfront - The Clojure-based editor for Clojure

2009-02-25 Thread Itay Maman


On Feb 25, 11:08 am, bOR_  wrote:
> I'm trying to rewrite the wf.bat to a linux version, but I was a bit
> puzzled what all the ;%~dp0 's mean.

In .bat files %~dp0 specifies the directory where the .bat file is
located.
In sh scripts, it should be `dirname $0`.

>Apparently the bash version of it
> is ${0%/*}
>
> java -cp ~/src/clojure/clojure.jar;${0%/*}clj;${0%/*}java -
> Dnet.sourceforge.waterfront.plugins=${0%/*}clj/net/sourceforge/
> waterfront/ide/plugins clojure.main ${0%/*}clj/net/sourceforge/
> waterfront/ide/main.clj %*
>
> It seems like you're also assuming 'clj' to exist?
>

clj and java are the subdirectories in the Waterfront installation
directory. So if the zip was unzipped
successfully, it is safe to assume they exist.

I don't have a Linux machine. Could you send me this script (one it is
up and running)
so that I will put it inside the .zip file?

Thanks,
-Itay


> On Feb 25, 2:57 am, Kevin Albrecht  wrote:
>
> > Itay,
>
> > I took a look at Waterfront and it seems to have a lot of potential.
> > Keep me and the group updated on your future work.
>
> > I have also been working on a GUI application in Clojure and I share
> > your perspective on the challenges of designing a functional GUI.  I
> > am definitely intrigued by the application context pattern and I am
> > going to take a look at it for incorporation in my design.
>
> > Thanks,
> > Kevin Albrecht
>
> > On Feb 24, 6:04 am, Itay Maman  wrote:
>
> > > I've been silently following Clojure (and this group) for several
> > > months now.Somewhere around December I started working on a Clojure
> > > editor/REPL written in Clojure. This effort evolved into the
> > > Waterfront project which is now available on sourceforge (http://
> > > sourceforge.net/project/showfiles.php?group_id=249246).
>
> > > Waterfront's Highlights:
>
> > > * CTRL+E: Eval current selection, or the whole file if the selection
> > > is empty
> > > * Edit -> Eval as you type: When turned on (default) periodically
> > > evaluates your code. Boosts productivity as many errors are detected
> > > on the spot.
> > > * Eval-ed code can inspect/mutate Waterfront by accessing the *app*
> > > variable. For instance, if you eval this expression,
> > > ((*app* :change) :font-name "Arial"), you will choose "Arial" as the
> > > UI font.
> > > * Eval-ed code can inspect the currently edited Clojure program. For
> > > instance, if you eval this expression, ((*app* :visit) #(when (= (str
> > > (first %1)) "cons") (println %1))), the output window will show all
> > > calls, made by your code, to the cons function.
> > > * Syntax and Evaluation errors are displayed on: (1) The Problems
> > > window; (2) The line-number panel, as red markers.
> > > * Source -> Generate -> Proxy: Generates a proxy for the given list of
> > > super-types, with stub implementations for all abstract methods.
> > > * F1: Shows the doc (as per Clojure's (doc x) function) of the
> > > identifier under the caret.
> > > * Source -> Reflect: Shows the synopsis of a Java class when the caret
> > > stands on a class symbol (e.g.: java.awt.Color).
> > > * CTRL+Space: Token-based auto completion.
> > > * Full parenthesis matching.
> > > * An extensible plugin architecture.
> > > * Other goodies such as undo/redo, toggle comment, recently opened
> > > files, indent/unindent, Tab is *always* two spaces, ...
>
> > > In order to get started, you need to
> > >   (1) Download the waterfront zip file 
> > > from:http://sourceforge.net/project/showfiles.php?group_id=249246.
> > >   (2) Unpack it into a local directory.
> > >   (3) Edit wf.bat: fix the path to clojure.jar according to its
> > > location on your machine.
>
> > > Personally, this effort was quite interesting. Writing GUI
> > > applications in a functional language is sometimes a challenging task
> > > (at least if you want your Clojure code not to be a transliteration of
> > > Java code…).  I used a pattern the "application context" pattern: an
> > > immutable map describing the application's current state that is
> > > passed around. This made it possible for most of Waterfront's code to
> > > be purely functional. Consequently, plugins can accomplish a lot with
> > > just a handful of lines. Many plugins span about 60 lines of code.
> > > Vast majority of them are less than 200 LOC. The main module, ui.clj,
> > > that implements the underlying engine is also less than 200 LOC. I
> > > think this is a very good indication to Clojure's power.
>
> > > Hope you'll find it useful. I'd be happy if anyone would like to join
> > > and contribute to Waterfront. Your feedback, either on-line or
> > > offline, will be highly appreciated.
>
> > > --
> > > Itay Mamanhttp://javadots.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
To unsubscribe from this group, send email to 
clojure+unsubscr...@g

Re: Waterfront - The Clojure-based editor for Clojure

2009-02-25 Thread bOR_

I'm trying to rewrite the wf.bat to a linux version, but I was a bit
puzzled what all the ;%~dp0 's mean. Apparently the bash version of it
is ${0%/*}

java -cp ~/src/clojure/clojure.jar;${0%/*}clj;${0%/*}java -
Dnet.sourceforge.waterfront.plugins=${0%/*}clj/net/sourceforge/
waterfront/ide/plugins clojure.main ${0%/*}clj/net/sourceforge/
waterfront/ide/main.clj %*

It seems like you're also assuming 'clj' to exist?

On Feb 25, 2:57 am, Kevin Albrecht  wrote:
> Itay,
>
> I took a look at Waterfront and it seems to have a lot of potential.
> Keep me and the group updated on your future work.
>
> I have also been working on a GUI application in Clojure and I share
> your perspective on the challenges of designing a functional GUI.  I
> am definitely intrigued by the application context pattern and I am
> going to take a look at it for incorporation in my design.
>
> Thanks,
> Kevin Albrecht
>
> On Feb 24, 6:04 am, Itay Maman  wrote:
>
> > I've been silently following Clojure (and this group) for several
> > months now.Somewhere around December I started working on a Clojure
> > editor/REPL written in Clojure. This effort evolved into the
> > Waterfront project which is now available on sourceforge (http://
> > sourceforge.net/project/showfiles.php?group_id=249246).
>
> > Waterfront's Highlights:
>
> > * CTRL+E: Eval current selection, or the whole file if the selection
> > is empty
> > * Edit -> Eval as you type: When turned on (default) periodically
> > evaluates your code. Boosts productivity as many errors are detected
> > on the spot.
> > * Eval-ed code can inspect/mutate Waterfront by accessing the *app*
> > variable. For instance, if you eval this expression,
> > ((*app* :change) :font-name "Arial"), you will choose "Arial" as the
> > UI font.
> > * Eval-ed code can inspect the currently edited Clojure program. For
> > instance, if you eval this expression, ((*app* :visit) #(when (= (str
> > (first %1)) "cons") (println %1))), the output window will show all
> > calls, made by your code, to the cons function.
> > * Syntax and Evaluation errors are displayed on: (1) The Problems
> > window; (2) The line-number panel, as red markers.
> > * Source -> Generate -> Proxy: Generates a proxy for the given list of
> > super-types, with stub implementations for all abstract methods.
> > * F1: Shows the doc (as per Clojure's (doc x) function) of the
> > identifier under the caret.
> > * Source -> Reflect: Shows the synopsis of a Java class when the caret
> > stands on a class symbol (e.g.: java.awt.Color).
> > * CTRL+Space: Token-based auto completion.
> > * Full parenthesis matching.
> > * An extensible plugin architecture.
> > * Other goodies such as undo/redo, toggle comment, recently opened
> > files, indent/unindent, Tab is *always* two spaces, ...
>
> > In order to get started, you need to
> >   (1) Download the waterfront zip file 
> > from:http://sourceforge.net/project/showfiles.php?group_id=249246.
> >   (2) Unpack it into a local directory.
> >   (3) Edit wf.bat: fix the path to clojure.jar according to its
> > location on your machine.
>
> > Personally, this effort was quite interesting. Writing GUI
> > applications in a functional language is sometimes a challenging task
> > (at least if you want your Clojure code not to be a transliteration of
> > Java code…).  I used a pattern the "application context" pattern: an
> > immutable map describing the application's current state that is
> > passed around. This made it possible for most of Waterfront's code to
> > be purely functional. Consequently, plugins can accomplish a lot with
> > just a handful of lines. Many plugins span about 60 lines of code.
> > Vast majority of them are less than 200 LOC. The main module, ui.clj,
> > that implements the underlying engine is also less than 200 LOC. I
> > think this is a very good indication to Clojure's power.
>
> > Hope you'll find it useful. I'd be happy if anyone would like to join
> > and contribute to Waterfront. Your feedback, either on-line or
> > offline, will be highly appreciated.
>
> > --
> > Itay Mamanhttp://javadots.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
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
-~--~~~~--~~--~--~---



Re: Waterfront - The Clojure-based editor for Clojure

2009-02-24 Thread Kevin Albrecht

Itay,

I took a look at Waterfront and it seems to have a lot of potential.
Keep me and the group updated on your future work.

I have also been working on a GUI application in Clojure and I share
your perspective on the challenges of designing a functional GUI.  I
am definitely intrigued by the application context pattern and I am
going to take a look at it for incorporation in my design.

Thanks,
Kevin Albrecht

On Feb 24, 6:04 am, Itay Maman  wrote:
> I've been silently following Clojure (and this group) for several
> months now.Somewhere around December I started working on a Clojure
> editor/REPL written in Clojure. This effort evolved into the
> Waterfront project which is now available on sourceforge (http://
> sourceforge.net/project/showfiles.php?group_id=249246).
>
> Waterfront's Highlights:
>
> * CTRL+E: Eval current selection, or the whole file if the selection
> is empty
> * Edit -> Eval as you type: When turned on (default) periodically
> evaluates your code. Boosts productivity as many errors are detected
> on the spot.
> * Eval-ed code can inspect/mutate Waterfront by accessing the *app*
> variable. For instance, if you eval this expression,
> ((*app* :change) :font-name "Arial"), you will choose "Arial" as the
> UI font.
> * Eval-ed code can inspect the currently edited Clojure program. For
> instance, if you eval this expression, ((*app* :visit) #(when (= (str
> (first %1)) "cons") (println %1))), the output window will show all
> calls, made by your code, to the cons function.
> * Syntax and Evaluation errors are displayed on: (1) The Problems
> window; (2) The line-number panel, as red markers.
> * Source -> Generate -> Proxy: Generates a proxy for the given list of
> super-types, with stub implementations for all abstract methods.
> * F1: Shows the doc (as per Clojure's (doc x) function) of the
> identifier under the caret.
> * Source -> Reflect: Shows the synopsis of a Java class when the caret
> stands on a class symbol (e.g.: java.awt.Color).
> * CTRL+Space: Token-based auto completion.
> * Full parenthesis matching.
> * An extensible plugin architecture.
> * Other goodies such as undo/redo, toggle comment, recently opened
> files, indent/unindent, Tab is *always* two spaces, ...
>
> In order to get started, you need to
>   (1) Download the waterfront zip file 
> from:http://sourceforge.net/project/showfiles.php?group_id=249246.
>   (2) Unpack it into a local directory.
>   (3) Edit wf.bat: fix the path to clojure.jar according to its
> location on your machine.
>
> Personally, this effort was quite interesting. Writing GUI
> applications in a functional language is sometimes a challenging task
> (at least if you want your Clojure code not to be a transliteration of
> Java code…).  I used a pattern the "application context" pattern: an
> immutable map describing the application's current state that is
> passed around. This made it possible for most of Waterfront's code to
> be purely functional. Consequently, plugins can accomplish a lot with
> just a handful of lines. Many plugins span about 60 lines of code.
> Vast majority of them are less than 200 LOC. The main module, ui.clj,
> that implements the underlying engine is also less than 200 LOC. I
> think this is a very good indication to Clojure's power.
>
> Hope you'll find it useful. I'd be happy if anyone would like to join
> and contribute to Waterfront. Your feedback, either on-line or
> offline, will be highly appreciated.
>
> --
> Itay Mamanhttp://javadots.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
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
-~--~~~~--~~--~--~---



Re: Waterfront - The Clojure-based editor for Clojure

2009-02-24 Thread Itay Maman

After a few hours of intense work I managed to port Waterfront's code
to Clojure's latest snapshot. This version is now available for
download as "RC1-147" at the same location (http://sourceforge.net/
project/showfiles.php?group_id=249246).

This version is fully functional and so far I didn't encounter any
bugs.
I guess that over the course of the next few days, as people start
using this version,
a few issues may come up. I'd be glad to fix these.

I also took Mike's suggestion, Waterfromt's main window is now using
a side-by-side layout.

--
Itay Maman
http://javadots.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
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
-~--~~~~--~~--~--~---



Re: Waterfront - The Clojure-based editor for Clojure

2009-02-24 Thread AlamedaMike

Thanks for the quick response Itay.

>> Thus, the workaround is this: highlight only the "Math" part and then choose 
>> Reflect.

Yup! Very nice feature.

A few further suggestions, if you're in the mood:

* a separate REPL tab would be very useful and save me from having to
enter code into the file, highlight and execute it, and then delete it
(leaving the file in a "dirty" state and me wondering what I changed
that caused that.)

* multiple source tabs in the source editor. Very useful to have.

* documentation for everything in the "generate" sub-menu. I'd write
it myself if I had any idea how it worked, but I don't have the time
to dig into the source code.

* trivia: add a space in the execution time between the digits and
"ms". E.g., "34ms" --> "34 ms"

* a function key for "reflect" to match that for "doc".

* capability to evaluate the form the cursor is currently in with,
say, Ctrl+E, using (say) Shift+Ctrl+E to eval the whole file. Or some
such. This will be a common operation and saves having to highlight
the text every time. Bonus points if it will evaluate the previous
form when it is not inside a form.

* smart indentation. On "enter key pressed", indent on the next line
to the first dark space on the previous line. Bonus points if detects
the end of a form and goes to the first column.

* documentation on plug-ins (lower priority for me and probably for
others). Could you give at least a high-level sense of what plug-ins
you're currently using and what for. This would give the users a sense
of what they may or may not be missing.

Thanks again for a great tool. I'm currently using Slime, but I'd love
to have a tool written in Clojure that I can configure. I'm busy with
other projects, but I hope to get some hacking on this at some point.

Mike



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



Re: Waterfront - The Clojure-based editor for Clojure

2009-02-24 Thread Itay Maman



On Feb 24, 10:22 pm, AlamedaMike  wrote:
> Thanks for this Itay.Very sweet.  I've been running it against the
> Dec. 17th download and it works fine on Vista SP1. I'm particularly
> impressed with the quality of the error messages.

Thanks

>
> A few suggestions / questions:
>
> * there's a lot of whitespace to the right even when I don't have the
> window maximized. Would you consider making the current top and bottom
> views side-by-side? Much less wasted space, I think.

I agree with you. Somewhere down the road I want the layout to be
completely flexible. Till then I will try to do something less
general.


>
> * I'm trying to get the reflect operation to work. Sample source code:
>
> (defn in-circle? [[x y]]
>   (<= (Math/sqrt (+ (* x x) (* y y))) 1))
>
> When I put the cursor anywhere on Math/sqrt or else highlight it and
> then select "reflect" from the source menu, I get "I could not
> evaluate the symbol 'Math/sqrt'". Ideas?
>

Yes. The symbol detection takes the whole thing, "Math/sqrt", as a
single token.
Reflect, OTOH, expects class symbols. Thus, the workaround is this:
highlight only the "Math" part and then choose Reflect.

--
Itay Maman
http://javadots.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
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
-~--~~~~--~~--~--~---



Re: Waterfront - The Clojure-based editor for Clojure

2009-02-24 Thread AlamedaMike

Thanks for this Itay.Very sweet.  I've been running it against the
Dec. 17th download and it works fine on Vista SP1. I'm particularly
impressed with the quality of the error messages.

A few suggestions / questions:

* there's a lot of whitespace to the right even when I don't have the
window maximized. Would you consider making the current top and bottom
views side-by-side? Much less wasted space, I think.

* I'm trying to get the reflect operation to work. Sample source code:

(defn in-circle? [[x y]]
  (<= (Math/sqrt (+ (* x x) (* y y))) 1))

When I put the cursor anywhere on Math/sqrt or else highlight it and
then select "reflect" from the source menu, I get "I could not
evaluate the symbol 'Math/sqrt'". Ideas?

Thanks again.

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



Re: Waterfront - The Clojure-based editor for Clojure

2009-02-24 Thread Itay Maman

All, thanks so much for the feedback.
I am working on adapting Waterfront to the Clojure's latest snapshot.
Will let you know when this process is complete. Till then it can be
tried with Clojure's previous version (Dec.17).

-Itay


On Feb 24, 6:32 pm, Itay Maman  wrote:
> I built it against the latest download 20081217 (SVN Revision: 1173)
>
> -Itay
>
> On Feb 24, 6:19 pm, Tom Ayerst  wrote:
>
> > This is an interesting idea and a lightweight IDE distributed in contrib
> > would be a great addition IMHO.
>
> > I have tried it (on Windows using a pre-lazy version of clojure) and it
> > doesn't react to any events (though it does repaint after other apps windows
> > are dragged over it).  What version of clojure did you build it agaisnt?
>
> > Thanks
>
> > Tom
--~--~-~--~~~---~--~~
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
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
-~--~~~~--~~--~--~---



Re: Waterfront - The Clojure-based editor for Clojure

2009-02-24 Thread Itay Maman

I built it against the latest download 20081217 (SVN Revision: 1173)

-Itay


On Feb 24, 6:19 pm, Tom Ayerst  wrote:
> This is an interesting idea and a lightweight IDE distributed in contrib
> would be a great addition IMHO.
>
> I have tried it (on Windows using a pre-lazy version of clojure) and it
> doesn't react to any events (though it does repaint after other apps windows
> are dragged over it).  What version of clojure did you build it agaisnt?
>
> Thanks
>
> Tom
>
--~--~-~--~~~---~--~~
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
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
-~--~~~~--~~--~--~---



Re: Waterfront - The Clojure-based editor for Clojure

2009-02-24 Thread Tom Ayerst
This is an interesting idea and a lightweight IDE distributed in contrib
would be a great addition IMHO.

I have tried it (on Windows using a pre-lazy version of clojure) and it
doesn't react to any events (though it does repaint after other apps windows
are dragged over it).  What version of clojure did you build it agaisnt?

Thanks

Tom

2009/2/24 Itay Maman 

>
> I've been silently following Clojure (and this group) for several
> months now.Somewhere around December I started working on a Clojure
> editor/REPL written in Clojure. This effort evolved into the
> Waterfront project which is now available on sourceforge (http://
> sourceforge.net/project/showfiles.php?group_id=249246).
>
> Waterfront's Highlights:
>
> * CTRL+E: Eval current selection, or the whole file if the selection
> is empty
> * Edit -> Eval as you type: When turned on (default) periodically
> evaluates your code. Boosts productivity as many errors are detected
> on the spot.
> * Eval-ed code can inspect/mutate Waterfront by accessing the *app*
> variable. For instance, if you eval this expression,
> ((*app* :change) :font-name "Arial"), you will choose "Arial" as the
> UI font.
> * Eval-ed code can inspect the currently edited Clojure program. For
> instance, if you eval this expression, ((*app* :visit) #(when (= (str
> (first %1)) "cons") (println %1))), the output window will show all
> calls, made by your code, to the cons function.
> * Syntax and Evaluation errors are displayed on: (1) The Problems
> window; (2) The line-number panel, as red markers.
> * Source -> Generate -> Proxy: Generates a proxy for the given list of
> super-types, with stub implementations for all abstract methods.
> * F1: Shows the doc (as per Clojure's (doc x) function) of the
> identifier under the caret.
> * Source -> Reflect: Shows the synopsis of a Java class when the caret
> stands on a class symbol (e.g.: java.awt.Color).
> * CTRL+Space: Token-based auto completion.
> * Full parenthesis matching.
> * An extensible plugin architecture.
> * Other goodies such as undo/redo, toggle comment, recently opened
> files, indent/unindent, Tab is *always* two spaces, ...
>
> In order to get started, you need to
>  (1) Download the waterfront zip file from:
> http://sourceforge.net/project/showfiles.php?group_id=249246.
>  (2) Unpack it into a local directory.
>  (3) Edit wf.bat: fix the path to clojure.jar according to its
> location on your machine.
>
> Personally, this effort was quite interesting. Writing GUI
> applications in a functional language is sometimes a challenging task
> (at least if you want your Clojure code not to be a transliteration of
> Java code…).  I used a pattern the "application context" pattern: an
> immutable map describing the application's current state that is
> passed around. This made it possible for most of Waterfront's code to
> be purely functional. Consequently, plugins can accomplish a lot with
> just a handful of lines. Many plugins span about 60 lines of code.
> Vast majority of them are less than 200 LOC. The main module, ui.clj,
> that implements the underlying engine is also less than 200 LOC. I
> think this is a very good indication to Clojure's power.
>
> Hope you'll find it useful. I'd be happy if anyone would like to join
> and contribute to Waterfront. Your feedback, either on-line or
> offline, will be highly appreciated.
>
> --
> Itay Maman
> http://javadots.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
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
-~--~~~~--~~--~--~---



Re: Waterfront - The Clojure-based editor for Clojure

2009-02-24 Thread Itay Maman

Ooops...
Sorry for the multiple posting. Seems to be some glitch.

-Itay

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



Waterfront - The Clojure-based editor for Clojure

2009-02-24 Thread Itay Maman

I've been silently following Clojure (and this group) for several
months now.Somewhere around December I started working on a Clojure
editor/REPL written in Clojure. This effort evolved into the
Waterfront project which is now available on sourceforge (http://
sourceforge.net/project/showfiles.php?group_id=249246).

Waterfront's Highlights:

* CTRL+E: Eval current selection, or the whole file if the selection
is empty
* Edit -> Eval as you type: When turned on (default) periodically
evaluates your code. Boosts productivity as many errors are detected
on the spot.
* Eval-ed code can inspect/mutate Waterfront by accessing the *app*
variable. For instance, if you eval this expression,
((*app* :change) :font-name "Arial"), you will choose "Arial" as the
UI font.
* Eval-ed code can inspect the currently edited Clojure program. For
instance, if you eval this expression, ((*app* :visit) #(when (= (str
(first %1)) "cons") (println %1))), the output window will show all
calls, made by your code, to the cons function.
* Syntax and Evaluation errors are displayed on: (1) The Problems
window; (2) The line-number panel, as red markers.
* Source -> Generate -> Proxy: Generates a proxy for the given list of
super-types, with stub implementations for all abstract methods.
* F1: Shows the doc (as per Clojure's (doc x) function) of the
identifier under the caret.
* Source -> Reflect: Shows the synopsis of a Java class when the caret
stands on a class symbol (e.g.: java.awt.Color).
* CTRL+Space: Token-based auto completion.
* Full parenthesis matching.
* An extensible plugin architecture.
* Other goodies such as undo/redo, toggle comment, recently opened
files, indent/unindent, Tab is *always* two spaces, ...

In order to get started, you need to
  (1) Download the waterfront zip file from:
http://sourceforge.net/project/showfiles.php?group_id=249246.
  (2) Unpack it into a local directory.
  (3) Edit wf.bat: fix the path to clojure.jar according to its
location on your machine.

Personally, this effort was quite interesting. Writing GUI
applications in a functional language is sometimes a challenging task
(at least if you want your Clojure code not to be a transliteration of
Java code…).  I used a pattern the "application context" pattern: an
immutable map describing the application's current state that is
passed around. This made it possible for most of Waterfront's code to
be purely functional. Consequently, plugins can accomplish a lot with
just a handful of lines. Many plugins span about 60 lines of code.
Vast majority of them are less than 200 LOC. The main module, ui.clj,
that implements the underlying engine is also less than 200 LOC. I
think this is a very good indication to Clojure's power.

Hope you'll find it useful. I'd be happy if anyone would like to join
and contribute to Waterfront. Your feedback, either on-line or
offline, will be highly appreciated.

--
Itay Maman
http://javadots.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
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
-~--~~~~--~~--~--~---