新手來Clojure和Eclipse,請耐心等待。在Eclipse中調試Clojure
我在逆時針(CCW)和Leiningen安裝的Eclipse Juno下運行Clojure 1.5.1,我正在測試在Eclipse調試器下運行Clojure代碼的過程。我使用以下文件:
(ns myproject.core)
(defn foo [str]
(println str "Hello, World!")
)
(defn hello [who]
(str "Hello " who "!"))
我設置的(println str "Hello, World!")
和(str "Hello " who "!"))
線斷點,在Package Explorer窗格中選擇「MyProject的」,點擊運行調試AS-Clojure的應用,以及REPL啓動。現在,這裏的問題/問題:如果我在REPL鍵入(hello "Fred")
我得到
CompilerException java.lang.RuntimeException: Unable to resolve symbol: hello
in this context, compiling:(NO_SOURCE_PATH:1:1)
我得到同樣的錯誤,如果我嘗試限定過程調用爲(myproject.core/hello "Fred")
。我得到它的唯一方法是首先發行(require 'myproject.core)
,然後發行(myproject.core/hello "Fred")
。一旦我這樣做了,斷點就會被識別出來,代碼會在適當的位置中斷,變量可見,而且生活是很好的。
如果我輸入的是(use 'myproject.core)
而不是(require 'myproject.core)
我不必完全限定函數名,但我的理解是不推薦使用use
的做法。另一方面:如果通過使用Ctrl-Alt-S(這在Windows上)將代碼「發送」到REPL來啓動REPL,我可以簡單地鍵入(hello "Fred")
並獲得預期的輸出。當然,這樣做並不會啓動調試器,也不會產生斷點等。
我的問題:有沒有一種方法可以在Eclipse調試器下運行代碼,讓命名空間自動識別,因爲它是在代碼通過Ctrl-Alt-S「發送」到REPL,而不必使用require
或use
,而不必使用命名空間完全限定函數名稱?